cc57dc57ec57fc580c581c582c583c584c585c586c587c588c589c58ac58bc58cc58dc58ec58fc590c591c592c593c594c595c596c597c598c599c59ac59bc59cc59dc59ec59fc5a0c5a1c5a2c5a3c5a4c5a5c5a6c5a7c5a8c5a9c5aac5abc5acc5adc5aec5afc5b0c5b1c5b2c5b3c5b4c5b5c5b6c5b7c5b8c5b9c5bac5bbc5bcc5bdc5bec5bfc5c0c5c1c5c2c5c3c5c4c5c5c5c6c5c7c5c8c5c9c5cac5cbc5ccc5cdc5cec5cfc5d0c5d1c5d2c5d3c5d4c5d5c5d6c5d7c5d8c5d9c5dac5dbc5dcc5ddc5dec5dfc5e0c5e1c5e2c5e3c5e4c5e5c5e6c5e7c5e8c5e9c5eac5ebc5ecc5edc5eec5efc5f0c5f1c5f2c5f3c5f4c5f5c5f6c5f7c5f8c5f9c5fac5fbc5fcc5fdc5fec5ffc500c601c602c603c604c605c606c607c608c609c60ac60bc60cc60dc60ec60fc610c611c612c613c614c615c616c617c618c619c61ac61bc61cc61dc61ec61fc620c621c622c623c624c625c626c627c628c629c62ac62bc62cc62dc62ec62fc630c631c632c633c634c635c636c637c638c639c63ac63bc63cc63dc63ec63fc640c641c642c643c644c645c646c647c648c649c64ac64bc64cc64dc64ec64fc650c651c652c653c654c655c656c657c658c659c65ac65bc65cc65dc65ec65fc660c661c662c663c664c665c666c667c668c669c66ac66bc66cc66dc66ec66fc670c671c672c673c674c675c676c677c678c679c67ac67bc67cc67dc67ec67fc680c681c682c683c684c685c686c687c688c689c68ac68bc68cc68dc68ec68fc690c691c692c693c694c695c696c697c698c699c69ac69bc69cc69dc69ec69fc6a0c6a1c6a2c6a3c6a4c6a5c6a6c6a7c6a8c6a9c6aac6abc6acc6adc6aec6afc6b0c6b1c6b2c6b3c6b4c6b5c6b6c6b7c6b8c6b9c6bac6bbc6bcc6bdc6bec6bfc6c0c6c1c6c2c6c3c6c4c6c5c6c6c6c7c6c8c6c9c6cac6cbc6ccc6cdc6cec6cfc6d0c6d1c6d2c6d3c6d4c6d5c6d6c6d7c6d8c6d9c6dac6dbc6dcc6ddc6dec6dfc6e0c6e1c6e2c6e3c6e4c6e5c6e6c6e7c6e8c6e9c6eac6ebc6ecc6edc6eec6efc6f0c6f1c6f2c6f3c6f4c6f5c6f6c6f7c6f8c6f9c6fac6fbc6fcc6fdc6fec6ffc600c701c702c703c704c705c706c707c708c709c70ac70bc70cc70dc70ec70fc710c711c712c713c714c715c716c717c718c719c71ac71bc71cc71dc71ec71fc720c721c722c723c724c725c726c727c728c729c72ac72bc72cc72dc72ec72fc730c731c732c733c734c735c736c737c738c739c73ac73bc73cc73dc73ec73fc740c741c742c743c744c745c746c747c748c749c74ac74bc74cc74dc74ec74fc750c751c752c753c754c755c756c757c758c759c75ac75bc75cc75dc75ec75fc760c761c762c763c764c765c766c767c768c769c76ac76bc76cc76dc76ec76fc770c771c772c773c774c775c776c777c778c779c77ac77bc77cc77dc77ec77fc780c781c782c783c784c785c786c787c788c789c78ac78bc78cc78dc78ec78fc790c791c792c793c794c795c796c797c798c799c79ac79bc79cc79dc79ec79fc7a0c7a1c7a2c7a3c7a4c7a5c7a6c7a7c7a8c7a9c7aac7abc7acc7adc7aec7afc7b0c7b1c7b2c7b3c7b4c7b5c7b6c7b7c7b8c7b9c7bac7bbc7bcc7bdc7bec7bfc7c0c7c1c7c2c7c3c7c4c7c5c7c6c7c7c7c8c7c9c7cac7cbc7ccc7cdc7cec7cfc7d0c7d1c7d2c7d3c7d4c7d5c7d6c7d7c7d8c7d9c7dac7dbc7dcc7ddc7dec7dfc7e0c7e1c7e2c7e3c7e4c7e5c7e6c7e7c7e8c7e9c7eac7ebc7ecc7edc7eec7efc7f0c7f1c7f2c7f3c7f4c7f5c7f6c7f7c7f8c7f9c7fac7fbc7fcc7fdc7fec7ffc700c801c802c803c804c805c806c807c808c809c80ac80bc80cc80dc80ec80fc810c811c812c813c814c815c816c817c818c819c81ac81bc81cc81dc81ec81fc820c821c822c823c824c825c826c827c828c829c82ac82bc82cc82dc82ec82fc830c831c832c833c834c835c836c837c838c839c83ac83bc83cc83dc83ec83fc840c841c842c843c844c845c846c847c848c849c84ac84bc84cc84dc84ec84fc850c851c852c853c854c855c856c857c858c859c85ac85bc85cc85dc85ec85fc860c861c862c863c864c865c866c867c868c869c86ac86bc86cc86dc86ec86fc870c871c872c873c874c875c876c877c878c879c87ac87bc87cc87dc87ec87fc880c881c882c883c884c885c886c887c888c889c88ac88bc88cc88dc88ec88fc890c891c892c893c894c895c896c897c898c899c89ac89bc89cc89dc89ec89fc8a0c8a1c8a2c8a3c8a4c8a5c8a6c8a7c8a8c8a9c8aac8abc8acc8adc8aec8afc8b0c8b1c8b2c8b3c8b4c8b5c8b6c8b7c8b8c8b9c8bac8bbc8bcc8bdc8bec8bfc8c0c8c1c8c2c8c3c8c4c8c5c8c6c8c7c8c8c8c9c8cac8cbc8ccc8cdc8cec8cfc8d0c8d1c8d2c8d3c8d4c8d5c8d6c8d7c8d8c8d9c8dac8dbc8dcc8ddc8dec8dfc8e0c8e1c8e2c8e3c8e4c8e5c8e6c8e7c8e8c8e9c8eac8ebc8ecc8edc8eec8efc8f0c8f1c8f2c8f3c8f4c8f5c8f6c8f7c8f8c8f9c8fac8fbc8fcc8fdc8fec8ffc800c901c902c903c904c905c906c907c908c909c90ac90bc90cc90dc90ec90fc910c911c912c913c914c915c916c917c918c919c91ac91bc91cc91dc91ec91fc920c921c922c923c924c925c926c927c928c929c92ac92bc92cc92dc92ec92fc930c931c932c933c934c935c936c937c938c939c93ac93bc93cc93dc93ec93fc940c941c942c943c944c945c946c947c948c949c94ac94bc94cc94dc94ec94fc950c951c952c953c954c955c956c957c958c959c95ac95bc95cc95dc95ec95fc960c961c962c963c964c965c966c967c968c969c96ac96bc96cc96dc96ec96fc970c971c972c973c974c975c976c977c978c979c97ac97bc97cc97dc97ec97fc980c981c982c983c984c985c986c987c988c989c98ac98bc98cc98dc98ec98fc990c991c992c993c994c995c996c997c998c999c99ac99bc99cc99dc99ec99fc9a0c9a1c9a2c9a3c9a4c9a5c9a6c9a7c9a8c9a9c9aac9abc9acc9adc9aec9afc9b0c9b1c9b2c9b3c9b4c9b5c9b6c9b7c9b8c9b9c9bac9bbc9bcc9bdc9bec9bfc9c0c9c1c9c2c9c3c9c4c9c5c9c6c9c7c9c8c9c9c9cac9cbc9ccc9cdc9cec9cfc9d0c9d1c9d2c9d3c9d4c9d5c9d6c9d7c9d8c9d9c9dac9dbc9dcc9ddc9dec9dfc9e0c9e1c9e2c9e3c9e4c9e5c9e6c9e7c9e8c9e9c9eac9ebc9ecc9edc9eec9efc9f0c9f1c9f2c9f3c9f4c9f5c9f6c9f7c9f8c9f9c9fac9fbc9fcc9fdc9fec9ffc900ca01ca02ca03ca04ca05ca06ca07ca08ca09ca0aca0bca0cca0dca0eca0fca10ca11ca12ca13ca14ca15ca16ca17ca18ca19ca1aca1bca1cca1dca1eca1fca20ca21ca22ca23ca24ca25ca26ca27ca28ca29ca2aca2bca2cca2dca2eca2fca30ca31ca32ca33ca34ca35ca36ca37ca38ca39ca3aca3bca3cca3dca3eca3fca40ca41ca42ca43ca44ca45ca46ca47ca48ca49ca4aca4bca4cca4dca4eca4fca50ca51ca52ca53ca54ca55ca56ca57ca58ca59ca5aca5bca5cca5dca5eca5fca60ca61ca62ca63ca64ca65ca66ca67ca68ca69ca6aca6bca6cca6dca6eca6fca70ca71ca72ca73ca74ca75ca76ca77ca78ca79ca7aca7bca7cca7dca7eca7fca80ca81ca82ca83ca84ca85ca86ca87ca88ca89ca8aca8bca8cca8dca8eca8fca90ca91ca92ca93ca94ca95ca96ca97ca98ca99ca9aca9bca9cca9dca9eca9fcaa0caa1caa2caa3caa4caa5caa6caa7caa8caa9caaacaabcaaccaadcaaecaafcab0cab1cab2cab3cab4cab5cab6cab7cab8cab9cabacabbcabccabdcabecabfcac0cac1cac2cac3cac4cac5cac6cac7cac8cac9cacacacbcacccacdcacecacfcad0cad1cad2cad3cad4cad5cad6cad7cad8cad9cadacadbcadccaddcadecadfcae0cae1cae2cae3cae4cae5cae6cae7cae8cae9caeacaebcaeccaedcaeecaefcaf0caf1caf2caf3caf4caf5caf6caf7caf8caf9cafacafbcafccafdcafecaffca00cb01cb02cb03cb04cb05cb06cb07cb08cb09cb0acb0bcb0ccb0dcb0ecb0fcb10cb11cb12cb13cb14cb15cb16cb17cb18cb19cb1acb1bcb1ccb1dcb1ecb1fcb20cb21cb22cb23cb24cb25cb26cb27cb28cb29cb2acb2bcb2ccb2dcb2ecb2fcb30cb31cb32cb33cb34cb35cb36cb37cb38cb39cb3acb3bcb3ccb3dcb3ecb3fcb40cb41cb42cb43cb44cb45cb46cb47cb48cb49cb4acb4bcb4ccb4dcb4ecb4fcb50cb51cb52cb53cb54cb55cb56cb57cb58cb59cb5acb5bcb5ccb5dcb5ecb5fcb60cb61cb62cb63cb64cb65cb66cb67cb68cb69cb6acb6bcb6ccb6dcb6ecb6fcb70cb71cb72cb73cb74cb75cb76cb77cb78cb79cb7acb7bcb7ccb7dcb7ecb7fcb80cb81cb82cb83cb84cb85cb86cb87cb88cb89cb8acb8bcb8ccb8dcb8ecb8fcb90cb91cb92cb93cb94cb95cb96cb97cb98cb99cb9acb9bcb9ccb9dcb9ecb9fcba0cba1cba2cba3cba4cba5cba6cba7cba8cba9cbaacbabcbaccbadcbaecbafcbb0cbb1cbb2cbb3cbb4cbb5cbb6cbb7cbb8cbb9cbbacbbbcbbccbbdcbbecbbfcbc0cbc1cbc2cbc3cbc4cbc5cbc6cbc7cbc8cbc9cbcacbcbcbcccbcdcbcecbcfcbd0cbd1cbd2cbd3cbd4cbd5cbd6cbd7cbd8cbd9cbdacbdbcbdccbddcbdecbdfcbe0cbe1cbe2cbe3cbe4cbe5cbe6cbe7cbe8cbe9cbeacbebcbeccbedcbeecbefcbf0cbf1cbf2cbf3cbf4cbf5cbf6cbf7cbf8cbf9cbfacbfbcbfccbfdcbfecbffcb00cc01cc02cc03cc04cc05cc06cc07cc08cc09cc0acc0bcc0ccc0dcc0ecc0fcc10cc11cc12cc13cc14cc15cc16cc17cc18cc19cc1acc1bcc1ccc1dcc1ecc1fcc20cc21cc22cc23cc24cc25cc26cc27cc28cc29cc2acc2bcc2ccc2dcc2ecc2fcc30cc31cc32cc33cc34cc35cc36cc37cc38cc39cc3acc3bcc3ccc3dcc3ecc3fcc40cc41cc42cc43cc44cc45cc46cc47cc48cc49cc4acc4bcc4ccc4dcc4ecc4fcc50cc51cc52cc53cc54cc55cc56cc57cc58cc59cc5acc5bcc5ccc5dcc5ecc5fcc60cc61cc62cc63cc64cc65cc66cc67cc68cc69cc6acc6bcc6ccc6dcc6ecc6fcc70cc71cc72cc73cc74cc75cc76cc77cc78cc79cc7acc7bcc7ccc7dcc7ecc7fcc80cc81cc82cc83cc84cc85cc86cc87cc88cc89cc8acc8bcc8ccc8dcc8ecc8fcc90cc91cc92cc93cc94cc95cc96cc97cc98cc99cc9acc9bcc9ccc9dcc9ecc9fcca0cca1cca2cca3cca4cca5cca6cca7cca8cca9ccaaccabccacccadccaeccafccb0ccb1ccb2ccb3ccb4ccb5ccb6ccb7ccb8ccb9ccbaccbbccbcccbdccbeccbfccc0ccc1ccc2ccc3ccc4ccc5ccc6ccc7ccc8ccc9cccacccbcccccccdcccecccfccd0ccd1ccd2ccd3ccd4ccd5ccd6ccd7ccd8ccd9ccdaccdbccdcccddccdeccdfcce0cce1cce2cce3cce4cce5cce6cce7cce8cce9cceaccebccecccedcceeccefccf0ccf1ccf2ccf3ccf4ccf5ccf6ccf7ccf8ccf9ccfaccfbccfcccfdccfeccffcc00cd01cd02cd03cd04cd05cd06cd07cd08cd09cd0acd0bcd0ccd0dcd0ecd0fcd10cd11cd12cd13cd14cd15cd16cd17cd18cd19cd1acd1bcd1ccd1dcd1ecd1fcd20cd21cd22cd23cd24cd25cd26cd27cd28cd29cd2acd2bcd2ccd2dcd2ecd2fcd30cd31cd32cd33cd34cd35cd36cd37cd38cd39cd3acd3bcd3ccd3dcd3ecd3fcd40cd41cd42cd43cd44cd45cd46cd47cd48cd49cd4acd4bcd4ccd4dcd4ecd4fcd50cd51cd52cd53cd54cd55cd56cd57cd58cd59cd5acd5bcd5ccd5dcd5ecd5fcd60cd61cd62cd63cd64cd65cd66cd67cd68cd69cd6acd6bcd6ccd6dcd6ecd6fcd70cd71cd72cd73cd74cd75cd76cd77cd78cd79cd7acd7bcd7ccd7dcd7ecd7fcd80cd81cd82cd83cd84cd85cd86cd87cd88cd89cd8acd8bcd8ccd8dcd8ecd8fcd90cd91cd92cd93cd94cd95cd96cd97cd98cd99cd9acd9bcd9ccd9dcd9ecd9fcda0cda1cda2cda3cda4cda5cda6cda7cda8cda9cdaacdabcdaccdadcdaecdafcdb0cdb1cdb2cdb3cdb4cdb5cdb6cdb7cdb8cdb9cdbacdbbcdbccdbdcdbecdbfcdc0cdc1cdc2cdc3cdc4cdc5cdc6cdc7cdc8cdc9cdcacdcbcdcccdcdcdcecdcfcdd0cdd1cdd2cdd3cdd4cdd5cdd6cdd7cdd8cdd9cddacddbcddccdddcddecddfcde0cde1cde2cde3cde4cde5cde6cde7cde8cde9cdeacdebcdeccdedcdeecdefcdf0cdf1cdf2cdf3cdf4cdf5cdf6cdf7cdf8cdf9cdfacdfbcdfccdfdcdfecdffcd00ce01ce02ce03ce04ce05ce06ce07ce08ce09ce0ace0bce0cce0dce0ece0fce10ce11ce12ce13ce14ce15ce16ce17ce18ce19ce1ace1bce1cce1dce1ece1fce20ce21ce22ce23ce24ce25ce26ce27ce28ce29ce2ace2bce2cce2dce2ece2fce30ce31ce32ce33ce34ce35ce36ce37ce38ce39ce3ace3bce3cce3dce3ece3fce40ce41ce42ce43ce44ce45ce46ce47ce48ce49ce4ace4bce4cce4dce4ece4fce50ce51ce52ce53ce54ce55ce56ce57ce58ce59ce5ace5bce5cce5dce5ece5fce60ce61ce62ce63ce64ce65ce66ce67ce68ce69ce6ace6bce6cce6dce6ece6fce70ce71ce72ce73ce74ce75ce76ce77ce78ce79ce7ace7bce7cce7dce7ece7fce80ce81ce82ce83ce84ce85ce86ce87ce88ce89ce8ace8bce8cce8dce8ece8fce90ce91ce92ce93ce94ce95ce96ce97ce98ce99ce9ace9bce9cce9dce9ece9fcea0cea1cea2cea3cea4cea5cea6cea7cea8cea9ceaaceabceacceadceaeceafceb0ceb1ceb2ceb3ceb4ceb5ceb6ceb7ceb8ceb9cebacebbcebccebdcebecebfcec0cec1cec2cec3cec4cec5cec6cec7cec8cec9cecacecbcecccecdcecececfced0ced1ced2ced3ced4ced5ced6ced7ced8ced9cedacedbcedcceddcedecedfcee0cee1cee2cee3cee4cee5cee6cee7cee8cee9ceeaceebceecceedceeeceefcef0cef1cef2cef3cef4cef5cef6cef7cef8cef9cefacefbcefccefdcefeceffce00cf01cf02cf03cf04cf05cf06cf07cf08cf09cf0acf0bcf0ccf0dcf0ecf0fcf10cf11cf12cf13cf14cf15cf16cf17cf18cf19cf1acf1bcf1ccf1dcf1ecf1fcf20cf21cf22cf23cf24cf25cf26cf27cf28cf29cf2acf2bcf2ccf2dcf2ecf2fcf30cf31cf32cf33cf34cf35cf36cf37cf38cf39cf3acf3bcf3ccf3dcf3ecf3fcf40cf41cf42cf43cf44cf45cf46cf47cf48cf49cf4acf4bcf4ccf4dcf4ecf4fcf50cf51cf52cf53cf54cf55cf56cf57cf58cf59cf5acf5bcf5ccf5dcf5ecf5fcf60cf61cf62cf63cf64cf65cf66cf67cf68cf69cf6acf6bcf6ccf6dcf6ecf6fcf70cf71cf72cf73cf74cf75cf76cf77cf78cf79cf7acf7bcf7ccf7dcf7ecf7fcf80cf81cf82cf83cf84cf85cf86cf87cf88cf89cf8acf8bcf8ccf8dcf8ecf8fcf90cf91cf92cf93cf94cf95cf96cf97cf98cf99cf9acf9bcf9ccf9dcf9ecf9fcfa0cfa1cfa2cfa3cfa4cfa5cfa6cfa7cfa8cfa9cfaacfabcfaccfadcfaecfafcfb0cfb1cfb2cfb3cfb4cfb5cfb6cfb7cfb8cfb9cfbacfbbcfbccfbdcfbecfbfcfc0cfc1cfc2cfc3cfc4cfc5cfc6cfc7cfc8cfc9cfcacfcbcfcccfcdcfcecfcfcfd0cfd1cfd2cfd3cfd4cfd5cfd6cfd7cfd8cfd9cfdacfdbcfdccfddcfdecfdfcfe0cfe1cfe2cfe3cfe4cfe5cfe6cfe7cfe8cfe9cfeacfebcfeccfedcfeecfefcff0cff1cff2cff3cff4cff5cff6cff7cff8cff9cffacffbcffccffdcffecfffcf00d001d002d003d004d005d006d007d008d009d00ad00bd00cd00dd00ed00fd010d011d012d013d014d015d016d017d018d019d01ad01bd01cd01dd01ed01fd020d021d022d023d024d025d026d027d028d029d02ad02bd02cd02dd02ed02fd030d031d032d033d034d035d036d037d038d039d03ad03bd03cd03dd03ed03fd040d041d042d043d044d045d046d047d048d049d04ad04bd04cd04dd04ed04fd050d051d052d053d054d055d056d057d058d059d05ad05bd05cd05dd05ed05fd060d061d062d063d064d065d066d067d068d069d06ad06bd06cd06dd06ed06fd070d071d072d073d074d075d076d077d078d079d07ad07bd07cd07dd07ed07fd080d081d082d083d084d085d086d087d088d089d08ad08bd08cd08dd08ed08fd090d091d092d093d094d095d096d097d098d099d09ad09bd09cd09dd09ed09fd0a0d0a1d0a2d0a3d0a4d0a5d0a6d0a7d0a8d0a9d0aad0abd0acd0add0aed0afd0b0d0b1d0b2d0b3d0b4d0b5d0b6d0b7d0b8d0b9d0bad0bbd0bcd0bdd0bed0bfd0c0d0c1d0c2d0c3d0c4d0c5d0c6d0c7d0c8d0c9d0cad0cbd0ccd0cdd0ced0cfd0d0d0d1d0d2d0d3d0d4d0d5d0d6d0d7d0d8d0d9d0dad0dbd0dcd0ddd0ded0dfd0e0d0e1d0e2d0e3d0e4d0e5d0e6d0e7d0e8d0e9d0ead0ebd0ecd0edd0eed0efd0f0d0f1d0f2d0f3d0f4d0f5d0f6d0f7d0f8d0f9d0fad0fbd0fcd0fdd0fed0ffd000d101d102d103d104d105d106d107d108d109d10ad10bd10cd10dd10ed10fd110d111d112d113d114d115d116d117d118d119d11ad11bd11cd11dd11ed11fd120d121d122d123d124d125d126d127d128d129d12ad12bd12cd12dd12ed12fd130d131d132d133d134d135d136d137d138d139d13ad13bd13cd13dd13ed13fd140d141d142d143d144d145d146d147d148d149d14ad14bd14cd14dd14ed14fd150d151d152d153d154d155d156d157d158d159d15ad15bd15cd15dd15ed15fd160d161d162d163d164d165d166d167d168d169d16ad16bd16cd16dd16ed16fd170d171d172d173d174d175d176d177d178d179d17ad17bd17cd17dd17ed17fd180d181d182d183d184d185d186d187d188d189d18ad18bd18cd18dd18ed18fd190d191d192d193d194d195d196d197d198d199d19ad19bd19cd19dd19ed19fd1a0d1a1d1a2d1a3d1a4d1a5d1a6d1a7d1a8d1a9d1aad1abd1acd1add1aed1afd1b0d1b1d1b2d1b3d1b4d1b5d1b6d1b7d1b8d1b9d1bad1bbd1bcd1bdd1bed1bfd1c0d1c1d1c2d1c3d1c4d1c5d1c6d1c7d1c8d1c9d1cad1cbd1ccd1cdd1ced1cfd1d0d1d1d1d2d1d3d1d4d1d5d1d6d1d7d1d8d1d9d1dad1dbd1dcd1ddd1ded1dfd1e0d1e1d1e2d1e3d1e4d1e5d1e6d1e7d1e8d1e9d1ead1ebd1ecd1edd1eed1efd1f0d1f1d1f2d1f3d1f4d1f5d1f6d1f7d1f8d1f9d1fad1fbd1fcd1fdd1fed1ffd100d201d202d203d204d205d206d207d208d209d20ad20bd20cd20dd20ed20fd210d211d212d213d214d215d216d217d218d219d21ad21bd21cd21dd21ed21fd220d221d222d223d224d225d226d227d228d229d22ad22bd22cd22dd22ed22fd230d231d232d233d234d235d236d237d238d239d23ad23bd23cd23dd23ed23fd240d241d242d243d244d245d246d247d248d249d24ad24bd24cd24dd24ed24fd250d251d252d253d254d255d256d257d258d259d25ad25bd25cd25dd25ed25fd260d261d262d263d264d265d266d267d268d269d26ad26bd26cd26dd26ed26fd270d271d272d273d274d275d276d277d278d279d27ad27bd27cd27dd27ed27fd280d281d282d283d284d285d286d287d288d289d28ad28bd28cd28dd28ed28fd290d291d292d293d294d295d296d297d298d299d29ad29bd29cd29dd29ed29fd2a0d2a1d2a2d2a3d2a4d2a5d2a6d2a7d2a8d2a9d2aad2abd2acd2add2aed2afd2b0d2b1d2b2d2b3d2b4d2b5d2b6d2b7d2b8d2b9d2bad2bbd2bcd2bdd2bed2bfd2c0d2c1d2c2d2c3d2c4d2c5d2c6d2c7d2c8d2c9d2cad2cbd2ccd2cdd2ced2cfd2d0d2d1d2d2d2d3d2d4d2d5d2d6d2d7d2d8d2d9d2dad2dbd2dcd2ddd2ded2dfd2e0d2e1d2e2d2e3d2e4d2e5d2e6d2e7d2e8d2e9d2ead2ebd2ecd2edd2eed2efd2f0d2f1d2f2d2f3d2f4d2f5d2f6d2f7d2f8d2f9d2fad2fbd2fcd2fdd2fed2ffd200d301d302d303d304d305d306d307d308d309d30ad30bd30cd30dd30ed30fd310d311d312d313d314d315d316d317d318d319d31ad31bd31cd31dd31ed31fd320d321d322d323d324d325d326d327d328d329d32ad32bd32cd32dd32ed32fd330d331d332d333d334d335d336d337d338d339d33ad33bd33cd33dd33ed33fd340d341d342d343d344d345d346d347d348d349d34ad34bd34cd34dd34ed34fd350d351d352d353d354d355d356d357d358d359d35ad35bd35cd35dd35ed35fd360d361d362d363d364d365d366d367d368d369d36ad36bd36cd36dd36ed36fd370d371d372d373d374d375d376d377d378d379d37ad37bd37cd37dd37ed37fd380d381d382d383d384d385d386d387d388d389d38ad38bd38cd38dd38ed38fd390d391d392d393d394d395d396d397d398d399d39ad39bd39cd39dd39ed39fd3a0d3a1d3a2d3a3d3a4d3a5d3a6d3a7d3a8d3a9d3aad3abd3acd3add3aed3afd3b0d3b1d3b2d3b3d3b4d3b5d3b6d3b7d3b8d3b9d3bad3bbd3bcd3bdd3bed3bfd3c0d3c1d3c2d3c3d3c4d3c5d3c6d3c7d3c8d3c9d3cad3cbd3ccd3cdd3ced3cfd3d0d3d1d3d2d3d3d3d4d3d5d3d6d3d7d3d8d3d9d3dad3dbd3dcd3ddd3ded3dfd3e0d3e1d3e2d3e3d3e4d3e5d3e6d3e7d3e8d3e9d3ead3ebd3ecd3edd3eed3efd3f0d3f1d3f2d3f3d3f4d3f5d3f6d3f7d3f8d3f9d3fad3fbd3fcd3fdd3fed3ffd300d401d402d403d404d405d406d407d408d409d40ad40bd40cd40dd40ed40fd410d411d412d413d414d415d416d417d418d419d41ad41bd41cd41dd41ed41fd420d421d422d423d424d425d426d427d428d429d42ad42bd42cd42dd42ed42fd430d431d432d433d434d435d436d437d438d439d43ad43bd43cd43dd43ed43fd440d441d442d443d444d445d446d447d448d449d44ad44bd44cd44dd44ed44fd450d451d452d453d454d455d456d457d458d459d45ad45bd45cd45dd45ed45fd460d461d462d463d464d465d466d467d468d469d46ad46bd46cd46dd46ed46fd470d471d472d473d474d475d476d477d478d479d47ad47bd47cd47dd47ed47fd480d481d482d483d484d485d486d487d488d489d48ad48bd48cd48dd48ed48fd490d491d492d493d494d495d496d497d498d499d49ad49bd49cd49dd49ed49fd4a0d4a1d4a2d4a3d4a4d4a5d4a6d4a7d4a8d4a9d4aad4abd4acd4add4aed4afd4b0d4b1d4b2d4b3d4b4d4b5d4b6d4b7d4b8d4b9d4bad4bbd4bcd4bdd4bed4bfd4c0d4c1d4c2d4c3d4c4d4c5d4c6d4c7d4c8d4c9d4cad4cbd4ccd4cdd4ced4cfd4d0d4d1d4d2d4d3d4d4d4d5d4d6d4d7d4d8d4d9d4dad4dbd4dcd4ddd4ded4dfd4e0d4e1d4e2d4e3d4e4d4e5d4e6d4e7d4e8d4e9d4ead4ebd4ecd4edd4eed4efd4f0d4f1d4f2d4f3d4f4d4f5d4f6d4f7d4f8d4f9d4fad4fbd4fcd4fdd4fed4ffd400d501d502d503d504d505d506d507d508d509d50ad50bd50cd50dd50ed50fd510d511d512d513d514d515d516d517d518d519d51ad51bd51cd51dd51ed51fd520d521d522d523d524d525d526d527d528d529d52ad52bd52cd52dd52ed52fd530d531d532d533d534d535d536d537d538d539d53ad53bd53cd53dd53ed53fd540d541d542d543d544d545d546d547d548d549d54ad54bd54cd54dd54ed54fd550d551d552d553d554d555d556d557d558d559d55ad55bd55cd55dd55ed55fd560d561d562d563d564d565d566d567d568d569d56ad56bd56cd56dd56ed56fd570d571d572d573d574d575d576d577d578d579d57ad57bd57cd57dd57ed57fd580d581d582d583d584d585d586d587d588d589d58ad58bd58cd58dd58ed58fd590d591d592d593d594d595d596d597d598d599d59ad59bd59cd59dd59ed59fd5a0d5a1d5a2d5a3d5a4d5a5d5a6d5a7d5a8d5a9d5aad5abd5acd5add5aed5afd5b0d5b1d5b2d5b3d5b4d5b5d5b6d5b7d5b8d5b9d5bad5bbd5bcd5bdd5bed5bfd5c0d5c1d5c2d5c3d5c4d5c5d5c6d5c7d5c8d5c9d5cad5cbd5ccd5cdd5ced5cfd5d0d5d1d5d2d5d3d5d4d5d5d5d6d5d7d5d8d5d9d5dad5dbd5dcd5ddd5ded5dfd5e0d5e1d5e2d5e3d5e4d5e5d5e6d5e7d5e8d5e9d5ead5ebd5ecd5edd5eed5efd5f0d5f1d5f2d5f3d5f4d5f5d5f6d5f7d5f8d5f9d5fad5fbd5fcd5fdd5fed5ffd500d601d602d603d604d605d606d607d608d609d60ad60bd60cd60dd60ed60fd610d611d612d613d614d615d616d617d618d619d61ad61bd61cd61dd61ed61fd620d621d622d623d624d625d626d627d628d629d62ad62bd62cd62dd62ed62fd630d631d632d633d634d635d636d637d638d639d63ad63bd63cd63dd63ed63fd640d641d642d643d644d645d646d647d648d649d64ad64bd64cd64dd64ed64fd650d651d652d653d654d655d656d657d658d659d65ad65bd65cd65dd65ed65fd660d661d662d663d664d665d666d667d668d669d66ad66bd66cd66dd66ed66fd670d671d672d673d674d675d676d677d678d679d67ad67bd67cd67dd67ed67fd680d681d682d683d684d685d686d687d688d689d68ad68bd68cd68dd68ed68fd690d691d692d693d694d695d696d697d698d699d69ad69bd69cd69dd69ed69fd6a0d6a1d6a2d6a3d6a4d6a5d6a6d6a7d6a8d6a9d6aad6abd6acd6add6aed6afd6b0d6b1d6b2d6b3d6b4d6b5d6b6d6b7d6b8d6b9d6bad6bbd6bcd6bdd6bed6bfd6c0d6c1d6c2d6c3d6c4d6c5d6c6d6c7d6c8d6c9d6cad6cbd6ccd6cdd6ced6cfd6d0d6d1d6d2d6d3d6d4d6d5d6d6d6d7d6d8d6d9d6dad6dbd6dcd6ddd6ded6dfd6e0d6e1d6e2d6e3d6e4d6e5d6e6d6e7d6e8d6e9d6ead6ebd6ecd6edd6eed6efd6f0d6f1d6f2d6f3d6f4d6f5d6f6d6f7d6f8d6f9d6fad6fbd6fcd6fdd6fed6ffd600d701d702d703d704d705d706d707d708d709d70ad70bd70cd70dd70ed70fd710d711d712d713d714d715d716d717d718d719d71ad71bd71cd71dd71ed71fd720d721d722d723d724d725d726d727d728d729d72ad72bd72cd72dd72ed72fd730d731d732d733d734d735d736d737d738d739d73ad73bd73cd73dd73ed73fd740d741d742d743d744d745d746d747d748d749d74ad74bd74cd74dd74ed74fd750d751d752d753d754d755d756d757d758d759d75ad75bd75cd75dd75ed75fd760d761d762d763d764d765d766d767d768d769d76ad76bd76cd76dd76ed76fd770d771d772d773d774d775d776d777d778d779d77ad77bd77cd77dd77ed77fd780d781d782d783d784d785d786d787d788d789d78ad78bd78cd78dd78ed78fd790d791d792d793d794d795d796d797d798d799d79ad79bd79cd79dd79ed79fd7a0d7a1d7a2d7a3d7a4d7a5d7a6d7a7d7a8d7a9d7aad7abd7acd7add7aed7afd7b0d7b1d7b2d7b3d7b4d7b5d7b6d7b7d7b8d7b9d7bad7bbd7bcd7bdd7bed7bfd7c0d7c1d7c2d7c3d7c4d7c5d7c6d7c7d7c8d7c9d7cad7cbd7ccd7cdd7ced7cfd7d0d7d1d7d2d7d3d7d4d7d5d7d6d7d7d7d8d7d9d7dad7dbd7dcd7ddd7ded7dfd7e0d7e1d7e2d7e3d7e4d7e5d7e6d7e7d7e8d7e9d7ead7ebd7ecd7edd7eed7efd7f0d7f1d7f2d7f3d7f4d7f5d7f6d7f7d7f8d7f9d7fad7fbd7fcd7fdd7fed7ffd700d801d802d803d804d805d806d807d808d809d80ad80bd80cd80dd80ed80fd810d811d812d813d814d815d816d817d818d819d81ad81bd81cd81dd81ed81fd820d821d822d823d824d825d826d827d828d829d82ad82bd82cd82dd82ed82fd830d831d832d833d834d835d836d837d838d839d83ad83bd83cd83dd83ed83fd840d841d842d843d844d845d846d847d848d849d84ad84bd84cd84dd84ed84fd850d851d852d853d854d855d856d857d858d859d85ad85bd85cd85dd85ed85fd860d861d862d863d864d865d866d867d868d869d86ad86bd86cd86dd86ed86fd870d871d872d873d874d875d876d877d878d879d87ad87bd87cd87dd87ed87fd880d881d882d883d884d885d886d887d888d889d88ad88bd88cd88dd88ed88fd890d891d892d893d894d895d896d897d898d899d89ad89bd89cd89dd89ed89fd8a0d8a1d8a2d8a3d8a4d8a5d8a6d8a7d8a8d8a9d8aad8abd8acd8add8aed8afd8b0d8b1d8b2d8b3d8b4d8b5d8b6d8b7d8b8d8b9d8bad8bbd8bcd8bdd8bed8bfd8c0d8c1d8c2d8c3d8c4d8c5d8c6d8c7d8c8d8c9d8cad8cbd8ccd8cdd8ced8cfd8d0d8d1d8d2d8d3d8d4d8d5d8d6d8d7d8d8d8d9d8dad8dbd8dcd8ddd8ded8dfd8e0d8e1d8e2d8e3d8e4d8e5d8e6d8e7d8e8d8e9d8ead8ebd8ecd8edd8eed8efd8f0d8f1d8f2d8f3d8f4d8f5d8f6d8f7d8f8d8f9d8fad8fbd8fcd8fdd8fed8ffd800d901d902d903d904d905d906d907d908d909d90ad90bd90cd90dd90ed90fd910d911d912d913d914d915d916d917d918d919d91ad91bd91cd91dd91ed91fd920d921d922d923d924d925d926d927d928d929d92ad92bd92cd92dd92ed92fd930d931d932d933d934d935d936d937d938d939d93ad93bd93cd93dd93ed93fd940d941d942d943d944d945d946d947d948d949d94ad94bd94cd94dd94ed94fd950d951d952d953d954d955d956d957d958d959d95ad95bd95cd95dd95ed95fd960d961d962d963d964d965d966d967d968d969d96ad96bd96cd96dd96ed96fd970d971d972d973d974d975d976d977d978d979d97ad97bd97cd97dd97ed97fd980d981d982d983d984d985d986d987d988d989d98ad98bd98cd98dd98ed98fd990d991d992d993d994d995d996d997d998d999d99ad99bd99cd99dd99ed99fd9a0d9a1d9a2d9a3d9a4d9a5d9a6d9a7d9a8d9a9d9aad9abd9acd9add9aed9afd9b0d9b1d9b2d9b3d9b4d9b5d9b6d9b7d9b8d9b9d9bad9bbd9bcd9bdd9bed9bfd9c0d9c1d9c2d9c3d9c4d9c5d9c6d9c7d9c8d9c9d9cad9cbd9ccd9cdd9ced9cfd9d0d9d1d9d2d9d3d9d4d9d5d9d6d9d7d9d8d9d9d9dad9dbd9dcd9ddd9ded9dfd9e0d9e1d9e2d9e3d9e4d9e5d9e6d9e7d9e8d9e9d9ead9ebd9ecd9edd9eed9efd9f0d9f1d9f2d9f3d9f4d9f5d9f6d9f7d9f8d9f9d9fad9fbd9fcd9fdd9fed9ffd900da01da02da03da04da05da06da07da08da09da0ada0bda0cda0dda0eda0fda10da11da12da13da14da15da16da17da18da19da1ada1bda1cda1dda1eda1fda20da21da22da23da24da25da26da27da28da29da2ada2bda2cda2dda2eda2fda30da31da32da33da34da35da36da37da38da39da3ada3bda3cda3dda3eda3fda40da41da42da43da44da45da46da47da48da49da4ada4bda4cda4dda4eda4fda50da51da52da53da54da55da56da57da58da59da5ada5bda5cda5dda5eda5fda60da61da62da63da64da65da66da67da68da69da6ada6bda6cda6dda6eda6fda70da71da72da73da74da75da76da77da78da79da7ada7bda7cda7dda7eda7fda80da81da82da83da84da85da86da87da88da89da8ada8bda8cda8dda8eda8fda90da91da92da93da94da95da96da97da98da99da9ada9bda9cda9dda9eda9fdaa0daa1daa2daa3daa4daa5daa6daa7daa8daa9daaadaabdaacdaaddaaedaafdab0dab1dab2dab3dab4dab5dab6dab7dab8dab9dabadabbdabcdabddabedabfdac0dac1dac2dac3dac4dac5dac6dac7dac8dac9dacadacbdaccdacddacedacfdad0dad1dad2dad3dad4dad5dad6dad7dad8dad9dadadadbdadcdadddadedadfdae0dae1dae2dae3dae4dae5dae6dae7dae8dae9daeadaebdaecdaeddaeedaefdaf0daf1daf2daf3daf4daf5daf6daf7daf8daf9dafadafbdafcdafddafedaffda00db01db02db03db04db05db06db07db08db09db0adb0bdb0cdb0ddb0edb0fdb10db11db12db13db14db15db16db17db18db19db1adb1bdb1cdb1ddb1edb1fdb20db21db22db23db24db25db26db27db28db29db2adb2bdb2cdb2ddb2edb2fdb30db31db32db33db34db35db36db37db38db39db3adb3bdb3cdb3ddb3edb3fdb40db41db42db43db44db45db46db47db48db49db4adb4bdb4cdb4ddb4edb4fdb50db51db52db53db54db55db56db57db58db59db5adb5bdb5cdb5ddb5edb5fdb60db61db62db63db64db65db66db67db68db69db6adb6bdb6cdb6ddb6edb6fdb70db71db72db73db74db75db76db77db78db79db7adb7bdb7cdb7ddb7edb7fdb80db81db82db83db84db85db86db87db88db89db8adb8bdb8cdb8ddb8edb8fdb90db91db92db93db94db95db96db97db98db99db9adb9bdb9cdb9ddb9edb9fdba0dba1dba2dba3dba4dba5dba6dba7dba8dba9dbaadbabdbacdbaddbaedbafdbb0dbb1dbb2dbb3dbb4dbb5dbb6dbb7dbb8dbb9dbbadbbbdbbcdbbddbbedbbfdbc0dbc1dbc2dbc3dbc4dbc5dbc6dbc7dbc8dbc9dbcadbcbdbccdbcddbcedbcfdbd0dbd1dbd2dbd3dbd4dbd5dbd6dbd7dbd8dbd9dbdadbdbdbdcdbdddbdedbdfdbe0dbe1dbe2dbe3dbe4dbe5dbe6dbe7dbe8dbe9dbeadbebdbecdbeddbeedbefdbf0dbf1dbf2dbf3dbf4dbf5dbf6dbf7dbf8dbf9dbfadbfbdbfcdbfddbfedbffdb00dc01dc02dc03dc04dc05dc06dc07dc08dc09dc0adc0bdc0cdc0ddc0edc0fdc10dc11dc12dc13dc14dc15dc16dc17dc18dc19dc1adc1bdc1cdc1ddc1edc1fdc20dc21dc22dc23dc24dc25dc26dc27dc28dc29dc2adc2bdc2cdc2ddc2edc2fdc30dc31dc32dc33dc34dc35dc36dc37dc38dc39dc3adc3bdc3cdc3ddc3edc3fdc40dc41dc42dc43dc44dc45dc46dc47dc48dc49dc4adc4bdc4cdc4ddc4edc4fdc50dc51dc52dc53dc54dc55dc56dc57dc58dc59dc5adc5bdc5cdc5ddc5edc5fdc60dc61dc62dc63dc64dc65dc66dc67dc68dc69dc6adc6bdc6cdc6ddc6edc6fdc70dc71dc72dc73dc74dc75dc76dc77dc78dc79dc7adc7bdc7cdc7ddc7edc7fdc80dc81dc82dc83dc84dc85dc86dc87dc88dc89dc8adc8bdc8cdc8ddc8edc8fdc90dc91dc92dc93dc94dc95dc96dc97dc98dc99dc9adc9bdc9cdc9ddc9edc9fdca0dca1dca2dca3dca4dca5dca6dca7dca8dca9dcaadcabdcacdcaddcaedcafdcb0dcb1dcb2dcb3dcb4dcb5dcb6dcb7dcb8dcb9dcbadcbbdcbcdcbddcbedcbfdcc0dcc1dcc2dcc3dcc4dcc5dcc6dcc7dcc8dcc9dccadccbdcccdccddccedccfdcd0dcd1dcd2dcd3dcd4dcd5dcd6dcd7dcd8dcd9dcdadcdbdcdcdcdddcdedcdfdce0dce1dce2dce3dce4dce5dce6dce7dce8dce9dceadcebdcecdceddceedcefdcf0dcf1dcf2dcf3dcf4dcf5dcf6dcf7dcf8dcf9dcfadcfbdcfcdcfddcfedcffdc00dd01dd02dd03dd04dd05dd06dd07dd08dd09dd0add0bdd0cdd0ddd0edd0fdd10dd11dd12dd13dd14dd15dd16dd17dd18dd19dd1add1bdd1cdd1ddd1edd1fdd20dd21dd22dd23dd24dd25dd26dd27dd28dd29dd2add2bdd2cdd2ddd2edd2fdd30dd31dd32dd33dd34dd35dd36dd37dd38dd39dd3add3bdd3cdd3ddd3edd3fdd40dd41dd42dd43dd44dd45dd46dd47dd48dd49dd4add4bdd4cdd4ddd4edd4fdd50dd51dd52dd53dd54dd55dd56dd57dd58dd59dd5add5bdd5cdd5ddd5edd5fdd60dd61dd62dd63dd64dd65dd66dd67dd68dd69dd6add6bdd6cdd6ddd6edd6fdd70dd71dd72dd73dd74dd75dd76dd77dd78dd79dd7add7bdd7cdd7ddd7edd7fdd80dd81dd82dd83dd84dd85dd86dd87dd88dd89dd8add8bdd8cdd8ddd8edd8fdd90dd91dd92dd93dd94dd95dd96dd97dd98dd99dd9add9bdd9cdd9ddd9edd9fdda0dda1dda2dda3dda4dda5dda6dda7dda8dda9ddaaddabddacddadddaeddafddb0ddb1ddb2ddb3ddb4ddb5ddb6ddb7ddb8ddb9ddbaddbbddbcddbdddbeddbfddc0ddc1ddc2ddc3ddc4ddc5ddc6ddc7ddc8ddc9ddcaddcbddccddcdddceddcfddd0ddd1ddd2ddd3ddd4ddd5ddd6ddd7ddd8ddd9dddadddbdddcdddddddedddfdde0dde1dde2dde3dde4dde5dde6dde7dde8dde9ddeaddebddecddedddeeddefddf0ddf1ddf2ddf3ddf4ddf5ddf6ddf7ddf8ddf9ddfaddfbddfcddfdddfeddffdd00de01de02de03de04de05de06de07de08de09de0ade0bde0cde0dde0ede0fde10de11de12de13de14de15de16de17de18de19de1ade1bde1cde1dde1ede1fde20de21de22de23de24de25de26de27de28de29de2ade2bde2cde2dde2ede2fde30de31de32de33de34de35de36de37de38de39de3ade3bde3cde3dde3ede3fde40de41de42de43de44de45de46de47de48de49de4ade4bde4cde4dde4ede4fde50de51de52de53de54de55de56de57de58de59de5ade5bde5cde5dde5ede5fde60de61de62de63de64de65de66de67de68de69de6ade6bde6cde6dde6ede6fde70de71de72de73de74de75de76de77de78de79de7ade7bde7cde7dde7ede7fde80de81de82de83de84de85de86de87de88de89de8ade8bde8cde8dde8ede8fde90de91de92de93de94de95de96de97de98de99de9ade9bde9cde9dde9ede9fdea0dea1dea2dea3dea4dea5dea6dea7dea8dea9deaadeabdeacdeaddeaedeafdeb0deb1deb2deb3deb4deb5deb6deb7deb8deb9debadebbdebcdebddebedebfdec0dec1dec2dec3dec4dec5dec6dec7dec8dec9decadecbdeccdecddecedecfded0ded1ded2ded3ded4ded5ded6ded7ded8ded9dedadedbdedcdedddedededfdee0dee1dee2dee3dee4dee5dee6dee7dee8dee9deeadeebdeecdeeddeeedeefdef0def1def2def3def4def5def6def7def8def9defadefbdefcdefddefedeffde00df01df02df03df04df05df06df07df08df09df0adf0bdf0cdf0ddf0edf0fdf10df11df12df13df14df15df16df17df18df19df1adf1bdf1cdf1ddf1edf1fdf20df21df22df23df24df25df26df27df28df29df2adf2bdf2cdf2ddf2edf2fdf30df31df32df33df34df35df36df37df38df39df3adf3bdf3cdf3ddf3edf3fdf40df41df42df43df44df45df46df47df48df49df4adf4bdf4cdf4ddf4edf4fdf50df51df52df53df54df55df56df57df58df59df5adf5bdf5cdf5ddf5edf5fdf60df61df62df63df64df65df66df67df68df69df6adf6bdf6cdf6ddf6edf6fdf70df71df72df73df74df75df76df77df78df79df7adf7bdf7cdf7ddf7edf7fdf80df81df82df83df84df85df86df87df88df89df8adf8bdf8cdf8ddf8edf8fdf90df91df92df93df94df95df96df97df98df99df9adf9bdf9cdf9ddf9edf9fdfa0dfa1dfa2dfa3dfa4dfa5dfa6dfa7dfa8dfa9dfaadfabdfacdfaddfaedfafdfb0dfb1dfb2dfb3dfb4dfb5dfb6dfb7dfb8dfb9dfbadfbbdfbcdfbddfbedfbfdfc0dfc1dfc2dfc3dfc4dfc5dfc6dfc7dfc8dfc9dfcadfcbdfccdfcddfcedfcfdfd0dfd1dfd2dfd3dfd4dfd5dfd6dfd7dfd8dfd9dfdadfdbdfdcdfdddfdedfdfdfe0dfe1dfe2dfe3dfe4dfe5dfe6dfe7dfe8dfe9dfeadfebdfecdfeddfeedfefdff0dff1dff2dff3dff4dff5dff6dff7dff8dff9dffadffbdffcdffddffedfffdf00e001e002e003e004e005e006e007e008e009e00ae00be00ce00de00ee00fe010e011e012e013e014e015e016e017e018e019e01ae01be01ce01de01ee01fe020e021e022e023e024e025e026e027e028e029e02ae02be02ce02de02ee02fe030e031e032e033e034e035e036e037e038e039e03ae03be03ce03de03ee03fe040e041e042e043e044e045e046e047e048e049e04ae04be04ce04de04ee04fe050e051e052e053e054e055e056e057e058e059e05ae05be05ce05de05ee05fe060e061e062e063e064e065e066e067e068e069e06ae06be06ce06de06ee06fe070e071e072e073e074e075e076e077e078e079e07ae07be07ce07de07ee07fe080e081e082e083e084e085e086e087e088e089e08ae08be08ce08de08ee08fe090e091e092e093e094e095e096e097e098e099e09ae09be09ce09de09ee09fe0a0e0a1e0a2e0a3e0a4e0a5e0a6e0a7e0a8e0a9e0aae0abe0ace0ade0aee0afe0b0e0b1e0b2e0b3e0b4e0b5e0b6e0b7e0b8e0b9e0bae0bbe0bce0bde0bee0bfe0c0e0c1e0c2e0c3e0c4e0c5e0c6e0c7e0c8e0c9e0cae0cbe0cce0cde0cee0cfe0d0e0d1e0d2e0d3e0d4e0d5e0d6e0d7e0d8e0d9e0dae0dbe0dce0dde0dee0dfe0e0e0e1e0e2e0e3e0e4e0e5e0e6e0e7e0e8e0e9e0eae0ebe0ece0ede0eee0efe0f0e0f1e0f2e0f3e0f4e0f5e0f6e0f7e0f8e0f9e0fae0fbe0fce0fde0fee0ffe000e101e102e103e104e105e106e107e108e109e10ae10be10ce10de10ee10fe110e111e112e113e114e115e116e117e118e119e11ae11be11ce11de11ee11fe120e121e122e123e124e125e126e127e128e129e12ae12be12ce12de12ee12fe130e131e132e133e134e135e136e137e138e139e13ae13be13ce13de13ee13fe140e141e142e143e144e145e146e147e148e149e14ae14be14ce14de14ee14fe150e151e152e153e154e155e156e157e158e159e15ae15be15ce15de15ee15fe160e161e162e163e164e165e166e167e168e169e16ae16be16ce16de16ee16fe170e171e172e173e174e175e176e177e178e179e17ae17be17ce17de17ee17fe180e181e182e183e184e185e186e187e188e189e18ae18be18ce18de18ee18fe190e191e192e193e194e195e196e197e198e199e19ae19be19ce19de19ee19fe1a0e1a1e1a2e1a3e1a4e1a5e1a6e1a7e1a8e1a9e1aae1abe1ace1ade1aee1afe1b0e1b1e1b2e1b3e1b4e1b5e1b6e1b7e1b8e1b9e1bae1bbe1bce1bde1bee1bfe1c0e1c1e1c2e1c3e1c4e1c5e1c6e1c7e1c8e1c9e1cae1cbe1cce1cde1cee1cfe1d0e1d1e1d2e1d3e1d4e1d5e1d6e1d7e1d8e1d9e1dae1dbe1dce1dde1dee1dfe1e0e1e1e1e2e1e3e1e4e1e5e1e6e1e7e1e8e1e9e1eae1ebe1ece1ede1eee1efe1f0e1f1e1f2e1f3e1f4e1f5e1f6e1f7e1f8e1f9e1fae1fbe1fce1fde1fee1ffe100e201e202e203e204e205e206e207e208e209e20ae20be20ce20de20ee20fe210e211e212e213e214e215e216e217e218e219e21ae21be21ce21de21ee21fe220e221e222e223e224e225e226e227e228e229e22ae22be22ce22de22ee22fe230e231e232e233e234e235e236e237e238e239e23ae23be23ce23de23ee23fe240e241e242e243e244e245e246e247e248e249e24ae24be24ce24de24ee24fe250e251e252e253e254e255e256e257e258e259e25ae25be25ce25de25ee25fe260e261e262e263e264e265e266e267e268e269e26ae26be26ce26de26ee26fe270e271e272e273e274e275e276e277e278e279e27ae27be27ce27de27ee27fe280e281e282e283e284e285e286e287e288e289e28ae28be28ce28de28ee28fe290e291e292e293e294e295e296e297e298e299e29ae29be29ce29de29ee29fe2a0e2a1e2a2e2a3e2a4e2a5e2a6e2a7e2a8e2a9e2aae2abe2ace2ade2aee2afe2b0e2b1e2b2e2b3e2b4e2b5e2b6e2b7e2b8e2b9e2bae2bbe2bce2bde2bee2bfe2c0e2c1e2c2e2c3e2c4e2c5e2c6e2c7e2c8e2c9e2cae2cbe2cce2cde2cee2cfe2d0e2d1e2d2e2d3e2d4e2d5e2d6e2d7e2d8e2d9e2dae2dbe2dce2dde2dee2dfe2e0e2e1e2e2e2e3e2e4e2e5e2e6e2e7e2e8e2e9e2eae2ebe2ece2ede2eee2efe2f0e2f1e2f2e2f3e2f4e2f5e2f6e2f7e2f8e2f9e2fae2fbe2fce2fde2fee2ffe200e301e302e303e304e305e306e307e308e309e30ae30be30ce30de30ee30fe310e311e312e313e314e315e316e317e318e319e31ae31be31ce31de31ee31fe320e321e322e323e324e325e326e327e328e329e32ae32be32ce32de32ee32fe330e331e332e333e334e335e336e337e338e339e33ae33be33ce33de33ee33fe340e341e342e343e344e345e346e347e348e349e34ae34be34ce34de34ee34fe350e351e352e353e354e355e356e357e358e359e35ae35be35ce35de35ee35fe360e361e362e363e364e365e366e367e368e369e36ae36be36ce36de36ee36fe370e371e372e373e374e375e376e377e378e379e37ae37be37ce37de37ee37fe380e381e382e383e384e385e386e387e388e389e38ae38be38ce38de38ee38fe390e391e392e393e394e395e396e397e398e399e39ae39be39ce39de39ee39fe3a0e3a1e3a2e3a3e3a4e3a5e3a6e3a7e3a8e3a9e3aae3abe3ace3ade3aee3afe3b0e3b1e3b2e3b3e3b4e3b5e3b6e3b7e3b8e3b9e3bae3bbe3bce3bde3bee3bfe3c0e3c1e3c2e3c3e3c4e3c5e3c6e3c7e3c8e3c9e3cae3cbe3cce3cde3cee3cfe3d0e3d1e3d2e3d3e3d4e3d5e3d6e3d7e3d8e3d9e3dae3dbe3dce3dde3dee3dfe3e0e3e1e3e2e3e3e3e4e3e5e3e6e3e7e3e8e3e9e3eae3ebe3ece3ede3eee3efe3f0e3f1e3f2e3f3e3f4e3f5e3f6e3f7e3f8e3f9e3fae3fbe3fce3fde3fee3ffe300e401e402e403e404e405e406e407e408e409e40ae40be40ce40de40ee40fe410e411e412e413e414e415e416e417e418e419e41ae41be41ce41de41ee41fe420e421e422e423e424e425e426e427e428e429e42ae42be42ce42de42ee42fe430e431e432e433e434e435e436e437e438e439e43ae43be43ce43de43ee43fe440e441e442e443e444e445e446e447e448e449e44ae44be44ce44de44ee44fe450e451e452e453e454e455e456e457e458e459e45ae45be45ce45de45ee45fe460e461e462e463e464e465e466e467e468e469e46ae46be46ce46de46ee46fe470e471e472e473e474e475e476e477e478e479e47ae47be47ce47de47ee47fe480e481e482e483e484e485e486e487e488e489e48ae48be48ce48de48ee48fe490e491e492e493e494e495e496e497e498e499e49ae49be49ce49de49ee49fe4a0e4a1e4a2e4a3e4a4e4a5e4a6e4a7e4a8e4a9e4aae4abe4ace4ade4aee4afe4b0e4b1e4b2e4b3e4b4e4b5e4b6e4b7e4b8e4b9e4bae4bbe4bce4bde4bee4bfe4c0e4c1e4c2e4c3e4c4e4c5e4c6e4c7e4c8e4c9e4cae4cbe4cce4cde4cee4cfe4d0e4d1e4d2e4d3e4d4e4d5e4d6e4d7e4d8e4d9e4dae4dbe4dce4dde4dee4dfe4e0e4e1e4e2e4e3e4e4e4e5e4e6e4e7e4e8e4e9e4eae4ebe4ece4ede4eee4efe4f0e4f1e4f2e4f3e4f4e4f5e4f6e4f7e4f8e4f9e4fae4fbe4fce4fde4fee4ffe400e501e502e503e504e505e506e507e508e509e50ae50be50ce50de50ee50fe510e511e512e513e514e515e516e517e518e519e51ae51be51ce51de51ee51fe520e521e522e523e524e525e526e527e528e529e52ae52be52ce52de52ee52fe530e531e532e533e534e535e536e537e538e539e53ae53be53ce53de53ee53fe540e541e542e543e544e545e546e547e548e549e54ae54be54ce54de54ee54fe550e551e552e553e554e555e556e557e558e559e55ae55be55ce55de55ee55fe560e561e562e563e564e565e566e567e568e569e56ae56be56ce56de56ee56fe570e571e572e573e574e575e576e577e578e579e57ae57be57ce57de57ee57fe580e581e582e583e584e585e586e587e588e589e58ae58be58ce58de58ee58fe590e591e592e593e594e595e596e597e598e599e59ae59be59ce59de59ee59fe5a0e5a1e5a2e5a3e5a4e5a5e5a6e5a7e5a8e5a9e5aae5abe5ace5ade5aee5afe5b0e5b1e5b2e5b3e5b4e5b5e5b6e5b7e5b8e5b9e5bae5bbe5bce5bde5bee5bfe5c0e5c1e5c2e5c3e5c4e5c5e5c6e5c7e5c8e5c9e5cae5cbe5cce5cde5cee5cfe5d0e5d1e5d2e5d3e5d4e5d5e5d6e5d7e5d8e5d9e5dae5dbe5dce5dde5dee5dfe5e0e5e1e5e2e5e3e5e4e5e5e5e6e5e7e5e8e5e9e5eae5ebe5ece5ede5eee5efe5f0e5f1e5f2e5f3e5f4e5f5e5f6e5f7e5f8e5f9e5fae5fbe5fce5fde5fee5ffe500e601e602e603e604e605e606e607e608e609e60ae60be60ce60de60ee60fe610e611e612e613e614e615e616e617e618e619e61ae61be61ce61de61ee61fe620e621e622e623e624e625e626e627e628e629e62ae62be62ce62de62ee62fe630e631e632e633e634e635e636e637e638e639e63ae63be63ce63de63ee63fe640e641e642e643e644e645e646e647e648e649e64ae64be64ce64de64ee64fe650e651e652e653e654e655e656e657e658e659e65ae65be65ce65de65ee65fe660e661e662e663e664e665e666e667e668e669e66ae66be66ce66de66ee66fe670e671e672e673e674e675e676e677e678e679e67ae67be67ce67de67ee67fe680e681e682e683e684e685e686e687e688e689e68ae68be68ce68de68ee68fe690e691e692e693e694e695e696e697e698e699e69ae69be69ce69de69ee69fe6a0e6a1e6a2e6a3e6a4e6a5e6a6e6a7e6a8e6a9e6aae6abe6ace6ade6aee6afe6b0e6b1e6b2e6b3e6b4e6b5e6b6e6b7e6b8e6b9e6bae6bbe6bce6bde6bee6bfe6c0e6c1e6c2e6c3e6c4e6c5e6c6e6c7e6c8e6c9e6cae6cbe6cce6cde6cee6cfe6d0e6d1e6d2e6d3e6d4e6d5e6d6e6d7e6d8e6d9e6dae6dbe6dce6dde6dee6dfe6e0e6e1e6e2e6e3e6e4e6e5e6e6e6e7e6e8e6e9e6eae6ebe6ece6ede6eee6efe6f0e6f1e6f2e6f3e6f4e6f5e6f6e6f7e6f8e6f9e6fae6fbe6fce6fde6fee6ffe600e701e702e703e704e705e706e707e708e709e70ae70be70ce70de70ee70fe710e711e712e713e714e715e716e717e718e719e71ae71be71ce71de71ee71fe720e721e722e723e724e725e726e727e728e729e72ae72be72ce72de72ee72fe730e731e732e733e734e735e736e737e738e739e73ae73be73ce73de73ee73fe740e741e742e743e744e745e746e747e748e749e74ae74be74ce74de74ee74fe750e751e752e753e754e755e756e757e758e759e75ae75be75ce75de75ee75fe760e761e762e763e764e765e766e767e768e769e76ae76be76ce76de76ee76fe770e771e772e773e774e775e776e777e778e779e77ae77be77ce77de77ee77fe780e781e782e783e784e785e786e787e788e789e78ae78be78ce78de78ee78fe790e791e792e793e794e795e796e797e798e799e79ae79be79ce79de79ee79fe7a0e7a1e7a2e7a3e7a4e7a5e7a6e7a7e7a8e7a9e7aae7abe7ace7ade7aee7afe7b0e7b1e7b2e7b3e7b4e7b5e7b6e7b7e7b8e7b9e7bae7bbe7bce7bde7bee7bfe7c0e7c1e7c2e7c3e7c4e7c5e7c6e7c7e7c8e7c9e7cae7cbe7cce7cde7cee7cfe7d0e7d1e7d2e7d3e7d4e7d5e7d6e7d7e7d8e7d9e7dae7dbe7dce7dde7dee7dfe7e0e7e1e7e2e7e3e7e4e7e5e7e6e7e7e7e8e7e9e7eae7ebe7ece7ede7eee7efe7f0e7f1e7f2e7f3e7f4e7f5e7f6e7f7e7f8e7f9e7fae7fbe7fce7fde7fee7ffe700e801e802e803e804e805e806e807e808e809e80ae80be80ce80de80ee80fe810e811e812e813e814e815e816e817e818e819e81ae81be81ce81de81ee81fe820e821e822e823e824e825e826e827e828e829e82ae82be82ce82de82ee82fe830e831e832e833e834e835e836e837e838e839e83ae83be83ce83de83ee83fe840e841e842e843e844e845e846e847e848e849e84ae84be84ce84de84ee84fe850e851e852e853e854e855e856e857e858e859e85ae85be85ce85de85ee85fe860e861e862e863e864e865e866e867e868e869e86ae86be86ce86de86ee86fe870e871e872e873e874e875e876e877e878e879e87ae87be87ce87de87ee87fe880e881e882e883e884e885e886e887e888e889e88ae88be88ce88de88ee88fe890e891e892e893e894e895e896e897e898e899e89ae89be89ce89de89ee89fe8a0e8a1e8a2e8a3e8a4e8a5e8a6e8a7e8a8e8a9e8aae8abe8ace8ade8aee8afe8b0e8b1e8b2e8b3e8b4e8b5e8b6e8b7e8b8e8b9e8bae8bbe8bce8bde8bee8bfe8c0e8c1e8c2e8c3e8c4e8c5e8c6e8c7e8c8e8c9e8cae8cbe8cce8cde8cee8cfe8d0e8d1e8d2e8d3e8d4e8d5e8d6e8d7e8d8e8d9e8dae8dbe8dce8dde8dee8dfe8e0e8e1e8e2e8e3e8e4e8e5e8e6e8e7e8e8e8e9e8eae8ebe8ece8ede8eee8efe8f0e8f1e8f2e8f3e8f4e8f5e8f6e8f7e8f8e8f9e8fae8fbe8fce8fde8fee8ffe800e901e902e903e904e905e906e907e908e909e90ae90be90ce90de90ee90fe910e911e912e913e914e915e916e917e918e919e91ae91be91ce91de91ee91fe920e921e922e923e924e925e926e927e928e929e92ae92be92ce92de92ee92fe930e931e932e933e934e935e936e937e938e939e93ae93be93ce93de93ee93fe940e941e942e943e944e945e946e947e948e949e94ae94be94ce94de94ee94fe950e951e952e953e954e955e956e957e958e959e95ae95be95ce95de95ee95fe960e961e962e963e964e965e966e967e968e969e96ae96be96ce96de96ee96fe970e971e972e973e974e975e976e977e978e979e97ae97be97ce97de97ee97fe980e981e982e983e984e985e986e987e988e989e98ae98be98ce98de98ee98fe990e991e992e993e994e995e996e997e998e999e99ae99be99ce99de99ee99fe9a0e9a1e9a2e9a3e9a4e9a5e9a6e9a7e9a8e9a9e9aae9abe9ace9ade9aee9afe9b0e9b1e9b2e9b3e9b4e9b5e9b6e9b7e9b8e9b9e9bae9bbe9bce9bde9bee9bfe9c0e9c1e9c2e9c3e9c4e9c5e9c6e9c7e9c8e9c9e9cae9cbe9cce9cde9cee9cfe9d0e9d1e9d2e9d3e9d4e9d5e9d6e9d7e9d8e9d9e9dae9dbe9dce9dde9dee9dfe9e0e9e1e9e2e9e3e9e4e9e5e9e6e9e7e9e8e9e9e9eae9ebe9ece9ede9eee9efe9f0e9f1e9f2e9f3e9f4e9f5e9f6e9f7e9f8e9f9e9fae9fbe9fce9fde9fee9ffe900ea01ea02ea03ea04ea05ea06ea07ea08ea09ea0aea0bea0cea0dea0eea0fea10ea11ea12ea13ea14ea15ea16ea17ea18ea19ea1aea1bea1cea1dea1eea1fea20ea21ea22ea23ea24ea25ea26ea27ea28ea29ea2aea2bea2cea2dea2eea2fea30ea31ea32ea33ea34ea35ea36ea37ea38ea39ea3aea3bea3cea3dea3eea3fea40ea41ea42ea43ea44ea45ea46ea47ea48ea49ea4aea4bea4cea4dea4eea4fea50ea51ea52ea53ea54ea55ea56ea57ea58ea59ea5aea5bea5cea5dea5eea5fea60ea61ea62ea63ea64ea65ea66ea67ea68ea69ea6aea6bea6cea6dea6eea6fea70ea71ea72ea73ea74ea75ea76ea77ea78ea79ea7aea7bea7cea7dea7eea7fea80ea81ea82ea83ea84ea85ea86ea87ea88ea89ea8aea8bea8cea8dea8eea8fea90ea91ea92ea93ea94ea95ea96ea97ea98ea99ea9aea9bea9cea9dea9eea9feaa0eaa1eaa2eaa3eaa4eaa5eaa6eaa7eaa8eaa9eaaaeaabeaaceaadeaaeeaafeab0eab1eab2eab3eab4eab5eab6eab7eab8eab9eabaeabbeabceabdeabeeabfeac0eac1eac2eac3eac4eac5eac6eac7eac8eac9eacaeacbeacceacdeaceeacfead0ead1ead2ead3ead4ead5ead6ead7ead8ead9eadaeadbeadceaddeadeeadfeae0eae1eae2eae3eae4eae5eae6eae7eae8eae9eaeaeaebeaeceaedeaeeeaefeaf0eaf1eaf2eaf3eaf4eaf5eaf6eaf7eaf8eaf9eafaeafbeafceafdeafeeaffea00eb01eb02eb03eb04eb05eb06eb07eb08eb09eb0aeb0beb0ceb0deb0eeb0feb10eb11eb12eb13eb14eb15eb16eb17eb18eb19eb1aeb1beb1ceb1deb1eeb1feb20eb21eb22eb23eb24eb25eb26eb27eb28eb29eb2aeb2beb2ceb2deb2eeb2feb30eb31eb32eb33eb34eb35eb36eb37eb38eb39eb3aeb3beb3ceb3deb3eeb3feb40eb41eb42eb43eb44eb45eb46eb47eb48eb49eb4aeb4beb4ceb4deb4eeb4feb50eb51eb52eb53eb54eb55eb56eb57eb58eb59eb5aeb5beb5ceb5deb5eeb5feb60eb61eb62eb63eb64eb65eb66eb67eb68eb69eb6aeb6beb6ceb6deb6eeb6feb70eb71eb72eb73eb74eb75eb76eb77eb78eb79eb7aeb7beb7ceb7deb7eeb7feb80eb81eb82eb83eb84eb85eb86eb87eb88eb89eb8aeb8beb8ceb8deb8eeb8feb90eb91eb92eb93eb94eb95eb96eb97eb98eb99eb9aeb9beb9ceb9deb9eeb9feba0eba1eba2eba3eba4eba5eba6eba7eba8eba9ebaaebabebacebadebaeebafebb0ebb1ebb2ebb3ebb4ebb5ebb6ebb7ebb8ebb9ebbaebbbebbcebbdebbeebbfebc0ebc1ebc2ebc3ebc4ebc5ebc6ebc7ebc8ebc9ebcaebcbebccebcdebceebcfebd0ebd1ebd2ebd3ebd4ebd5ebd6ebd7ebd8ebd9ebdaebdbebdcebddebdeebdfebe0ebe1ebe2ebe3ebe4ebe5ebe6ebe7ebe8ebe9ebeaebebebecebedebeeebefebf0ebf1ebf2ebf3ebf4ebf5ebf6ebf7ebf8ebf9ebfaebfbebfcebfdebfeebffeb00ec01ec02ec03ec04ec05ec06ec07ec08ec09ec0aec0bec0cec0dec0eec0fec10ec11ec12ec13ec14ec15ec16ec17ec18ec19ec1aec1bec1cec1dec1eec1fec20ec21ec22ec23ec24ec25ec26ec27ec28ec29ec2aec2bec2cec2dec2eec2fec30ec31ec32ec33ec34ec35ec36ec37ec38ec39ec3aec3bec3cec3dec3eec3fec40ec41ec42ec43ec44ec45ec46ec47ec48ec49ec4aec4bec4cec4dec4eec4fec50ec51ec52ec53ec54ec55ec56ec57ec58ec59ec5aec5bec5cec5dec5eec5fec60ec61ec62ec63ec64ec65ec66ec67ec68ec69ec6aec6bec6cec6dec6eec6fec70ec71ec72ec73ec74ec75ec76ec77ec78ec79ec7aec7bec7cec7dec7eec7fec80ec81ec82ec83ec84ec85ec86ec87ec88ec89ec8aec8bec8cec8dec8eec8fec90ec91ec92ec93ec94ec95ec96ec97ec98ec99ec9aec9bec9cec9dec9eec9feca0eca1eca2eca3eca4eca5eca6eca7eca8eca9ecaaecabecacecadecaeecafecb0ecb1ecb2ecb3ecb4ecb5ecb6ecb7ecb8ecb9ecbaecbbecbcecbdecbeecbfecc0ecc1ecc2ecc3ecc4ecc5ecc6ecc7ecc8ecc9eccaeccbeccceccdecceeccfecd0ecd1ecd2ecd3ecd4ecd5ecd6ecd7ecd8ecd9ecdaecdbecdcecddecdeecdfece0ece1ece2ece3ece4ece5ece6ece7ece8ece9eceaecebecececedeceeecefecf0ecf1ecf2ecf3ecf4ecf5ecf6ecf7ecf8ecf9ecfaecfbecfcecfdecfeecffec00ed01ed02ed03ed04ed05ed06ed07ed08ed09ed0aed0bed0ced0ded0eed0fed10ed11ed12ed13ed14ed15ed16ed17ed18ed19ed1aed1bed1ced1ded1eed1fed20ed21ed22ed23ed24ed25ed26ed27ed28ed29ed2aed2bed2ced2ded2eed2fed30ed31ed32ed33ed34ed35ed36ed37ed38ed39ed3aed3bed3ced3ded3eed3fed40ed41ed42ed43ed44ed45ed46ed47ed48ed49ed4aed4bed4ced4ded4eed4fed50ed51ed52ed53ed54ed55ed56ed57ed58ed59ed5aed5bed5ced5ded5eed5fed60ed61ed62ed63ed64ed65ed66ed67ed68ed69ed6aed6bed6ced6ded6eed6fed70ed71ed72ed73ed74ed75ed76ed77ed78ed79ed7aed7bed7ced7ded7eed7fed80ed81ed82ed83ed84ed85ed86ed87ed88ed89ed8aed8bed8ced8ded8eed8fed90ed91ed92ed93ed94ed95ed96ed97ed98ed99ed9aed9bed9ced9ded9eed9feda0eda1eda2eda3eda4eda5eda6eda7eda8eda9edaaedabedacedadedaeedafedb0edb1edb2edb3edb4edb5edb6edb7edb8edb9edbaedbbedbcedbdedbeedbfedc0edc1edc2edc3edc4edc5edc6edc7edc8edc9edcaedcbedccedcdedceedcfedd0edd1edd2edd3edd4edd5edd6edd7edd8edd9eddaeddbeddcedddeddeeddfede0ede1ede2ede3ede4ede5ede6ede7ede8ede9edeaedebedecedededeeedefedf0edf1edf2edf3edf4edf5edf6edf7edf8edf9edfaedfbedfcedfdedfeedffed00ee01ee02ee03ee04ee05ee06ee07ee08ee09ee0aee0bee0cee0dee0eee0fee10ee11ee12ee13ee14ee15ee16ee17ee18ee19ee1aee1bee1cee1dee1eee1fee20ee21ee22ee23ee24ee25ee26ee27ee28ee29ee2aee2bee2cee2dee2eee2fee30ee31ee32ee33ee34ee35ee36ee37ee38ee39ee3aee3bee3cee3dee3eee3fee40ee41ee42ee43ee44ee45ee46ee47ee48ee49ee4aee4bee4cee4dee4eee4fee50ee51ee52ee53ee54ee55ee56ee57ee58ee59ee5aee5bee5cee5dee5eee5fee60ee61ee62ee63ee64ee65ee66ee67ee68ee69ee6aee6bee6cee6dee6eee6fee70ee71ee72ee73ee74ee75ee76ee77ee78ee79ee7aee7bee7cee7dee7eee7fee80ee81ee82ee83ee84ee85ee86ee87ee88ee89ee8aee8bee8cee8dee8eee8fee90ee91ee92ee93ee94ee95ee96ee97ee98ee99ee9aee9bee9cee9dee9eee9feea0eea1eea2eea3eea4eea5eea6eea7eea8eea9eeaaeeabeeaceeadeeaeeeafeeb0eeb1eeb2eeb3eeb4eeb5eeb6eeb7eeb8eeb9eebaeebbeebceebdeebeeebfeec0eec1eec2eec3eec4eec5eec6eec7eec8eec9eecaeecbeecceecdeeceeecfeed0eed1eed2eed3eed4eed5eed6eed7eed8eed9eedaeedbeedceeddeedeeedfeee0eee1eee2eee3eee4eee5eee6eee7eee8eee9eeeaeeebeeeceeedeeeeeeefeef0eef1eef2eef3eef4eef5eef6eef7eef8eef9eefaeefbeefceefdeefeeeffee00ef01ef02ef03ef04ef05ef06ef07ef08ef09ef0aef0bef0cef0def0eef0fef10ef11ef12ef13ef14ef15ef16ef17ef18ef19ef1aef1bef1cef1def1eef1fef20ef21ef22ef23ef24ef25ef26ef27ef28ef29ef2aef2bef2cef2def2eef2fef30ef31ef32ef33ef34ef35ef36ef37ef38ef39ef3aef3bef3cef3def3eef3fef40ef41ef42ef43ef44ef45ef46ef47ef48ef49ef4aef4bef4cef4def4eef4fef50ef51ef52ef53ef54ef55ef56ef57ef58ef59ef5aef5bef5cef5def5eef5fef60ef61ef62ef63ef64ef65ef66ef67ef68ef69ef6aef6bef6cef6def6eef6fef70ef71ef72ef73ef74ef75ef76ef77ef78ef79ef7aef7bef7cef7def7eef7fef80ef81ef82ef83ef84ef85ef86ef87ef88ef89ef8aef8bef8cef8def8eef8fef90ef91ef92ef93ef94ef95ef96ef97ef98ef99ef9aef9bef9cef9def9eef9fefa0efa1efa2efa3efa4efa5efa6efa7efa8efa9efaaefabefacefadefaeefafefb0efb1efb2efb3efb4efb5efb6efb7efb8efb9efbaefbbefbcefbdefbeefbfefc0efc1efc2efc3efc4efc5efc6efc7efc8efc9efcaefcbefccefcdefceefcfefd0efd1efd2efd3efd4efd5efd6efd7efd8efd9efdaefdbefdcefddefdeefdfefe0efe1efe2efe3efe4efe5efe6efe7efe8efe9efeaefebefecefedefeeefefeff0eff1eff2eff3eff4eff5eff6eff7eff8eff9effaeffbeffceffdeffeefffef00f001f002f003f004f005f006f007f008f009f00af00bf00cf00df00ef00ff010f011f012f013f014f015f016f017f018f019f01af01bf01cf01df01ef01ff020f021f022f023f024f025f026f027f028f029f02af02bf02cf02df02ef02ff030f031f032f033f034f035f036f037f038f039f03af03bf03cf03df03ef03ff040f041f042f043f044f045f046f047f048f049f04af04bf04cf04df04ef04ff050f051f052f053f054f055f056f057f058f059f05af05bf05cf05df05ef05ff060f061f062f063f064f065f066f067f068f069f06af06bf06cf06df06ef06ff070f071f072f073f074f075f076f077f078f079f07af07bf07cf07df07ef07ff080f081f082f083f084f085f086f087f088f089f08af08bf08cf08df08ef08ff090f091f092f093f094f095f096f097f098f099f09af09bf09cf09df09ef09ff0a0f0a1f0a2f0a3f0a4f0a5f0a6f0a7f0a8f0a9f0aaf0abf0acf0adf0aef0aff0b0f0b1f0b2f0b3f0b4f0b5f0b6f0b7f0b8f0b9f0baf0bbf0bcf0bdf0bef0bff0c0f0c1f0c2f0c3f0c4f0c5f0c6f0c7f0c8f0c9f0caf0cbf0ccf0cdf0cef0cff0d0f0d1f0d2f0d3f0d4f0d5f0d6f0d7f0d8f0d9f0daf0dbf0dcf0ddf0def0dff0e0f0e1f0e2f0e3f0e4f0e5f0e6f0e7f0e8f0e9f0eaf0ebf0ecf0edf0eef0eff0f0f0f1f0f2f0f3f0f4f0f5f0f6f0f7f0f8f0f9f0faf0fbf0fcf0fdf0fef0fff000f101f102f103f104f105f106f107f108f109f10af10bf10cf10df10ef10ff110f111f112f113f114f115f116f117f118f119f11af11bf11cf11df11ef11ff120f121f122f123f124f125f126f127f128f129f12af12bf12cf12df12ef12ff130f131f132f133f134f135f136f137f138f139f13af13bf13cf13df13ef13ff140f141f142f143f144f145f146f147f148f149f14af14bf14cf14df14ef14ff150f151f152f153f154f155f156f157f158f159f15af15bf15cf15df15ef15ff160f161f162f163f164f165f166f167f168f169f16af16bf16cf16df16ef16ff170f171f172f173f174f175f176f177f178f179f17af17bf17cf17df17ef17ff180f181f182f183f184f185f186f187f188f189f18af18bf18cf18df18ef18ff190f191f192f193f194f195f196f197f198f199f19af19bf19cf19df19ef19ff1a0f1a1f1a2f1a3f1a4f1a5f1a6f1a7f1a8f1a9f1aaf1abf1acf1adf1aef1aff1b0f1b1f1b2f1b3f1b4f1b5f1b6f1b7f1b8f1b9f1baf1bbf1bcf1bdf1bef1bff1c0f1c1f1c2f1c3f1c4f1c5f1c6f1c7f1c8f1c9f1caf1cbf1ccf1cdf1cef1cff1d0f1d1f1d2f1d3f1d4f1d5f1d6f1d7f1d8f1d9f1daf1dbf1dcf1ddf1def1dff1e0f1e1f1e2f1e3f1e4f1e5f1e6f1e7f1e8f1e9f1eaf1ebf1ecf1edf1eef1eff1f0f1f1f1f2f1f3f1f4f1f5f1f6f1f7f1f8f1f9f1faf1fbf1fcf1fdf1fef1fff100f201f202f203f204f205f206f207f208f209f20af20bf20cf20df20ef20ff210f211f212f213f214f215f216f217f218f219f21af21bf21cf21df21ef21ff220f221f222f223f224f225f226f227f228f229f22af22bf22cf22df22ef22ff230f231f232f233f234f235f236f237f238f239f23af23bf23cf23df23ef23ff240f241f242f243f244f245f246f247f248f249f24af24bf24cf24df24ef24ff250f251f252f253f254f255f256f257f258f259f25af25bf25cf25df25ef25ff260f261f262f263f264f265f266f267f268f269f26af26bf26cf26df26ef26ff270f271f272f273f274f275f276f277f278f279f27af27bf27cf27df27ef27ff280f281f282f283f284f285f286f287f288f289f28af28bf28cf28df28ef28ff290f291f292f293f294f295f296f297f298f299f29af29bf29cf29df29ef29ff2a0f2a1f2a2f2a3f2a4f2a5f2a6f2a7f2a8f2a9f2aaf2abf2acf2adf2aef2aff2b0f2b1f2b2f2b3f2b4f2b5f2b6f2b7f2b8f2b9f2baf2bbf2bcf2bdf2bef2bff2c0f2c1f2c2f2c3f2c4f2c5f2c6f2c7f2c8f2c9f2caf2cbf2ccf2cdf2cef2cff2d0f2d1f2d2f2d3f2d4f2d5f2d6f2d7f2d8f2d9f2daf2dbf2dcf2ddf2def2dff2e0f2e1f2e2f2e3f2e4f2e5f2e6f2e7f2e8f2e9f2eaf2ebf2ecf2edf2eef2eff2f0f2f1f2f2f2f3f2f4f2f5f2f6f2f7f2f8f2f9f2faf2fbf2fcf2fdf2fef2fff200f301f302f303f304f305f306f307f308f309f30af30bf30cf30df30ef30ff310f311f312f313f314f315f316f317f318f319f31af31bf31cf31df31ef31ff320f321f322f323f324f325f326f327f328f329f32af32bf32cf32df32ef32ff330f331f332f333f334f335f336f337f338f339f33af33bf33cf33df33ef33ff340f341f342f343f344f345f346f347f348f349f34af34bf34cf34df34ef34ff350f351f352f353f354f355f356f357f358f359f35af35bf35cf35df35ef35ff360f361f362f363f364f365f366f367f368f369f36af36bf36cf36df36ef36ff370f371f372f373f374f375f376f377f378f379f37af37bf37cf37df37ef37ff380f381f382f383f384f385f386f387f388f389f38af38bf38cf38df38ef38ff390f391f392f393f394f395f396f397f398f399f39af39bf39cf39df39ef39ff3a0f3a1f3a2f3a3f3a4f3a5f3a6f3a7f3a8f3a9f3aaf3abf3acf3adf3aef3aff3b0f3b1f3b2f3b3f3b4f3b5f3b6f3b7f3b8f3b9f3baf3bbf3bcf3bdf3bef3bff3c0f3c1f3c2f3c3f3c4f3c5f3c6f3c7f3c8f3c9f3caf3cbf3ccf3cdf3cef3cff3d0f3d1f3d2f3d3f3d4f3d5f3d6f3d7f3d8f3d9f3daf3dbf3dcf3ddf3def3dff3e0f3e1f3e2f3e3f3e4f3e5f3e6f3e7f3e8f3e9f3eaf3ebf3ecf3edf3eef3eff3f0f3f1f3f2f3f3f3f4f3f5f3f6f3f7f3f8f3f9f3faf3fbf3fcf3fdf3fef3fff300f401f402f403f404f405f406f407f408f409f40af40bf40cf40df40ef40ff410f411f412f413f414f415f416f417f418f419f41af41bf41cf41df41ef41ff420f421f422f423f424f425f426f427f428f429f42af42bf42cf42df42ef42ff430f431f432f433f434f435f436f437f438f439f43af43bf43cf43df43ef43ff440f441f442f443f444f445f446f447f448f449f44af44bf44cf44df44ef44ff450f451f452f453f454f455f456f457f458f459f45af45bf45cf45df45ef45ff460f461f462f463f464f465f466f467f468f469f46af46bf46cf46df46ef46ff470f471f472f473f474f475f476f477f478f479f47af47bf47cf47df47ef47ff480f481f482f483f484f485f486f487f488f489f48af48bf48cf48df48ef48ff490f491f492f493f494f495f496f497f498f499f49af49bf49cf49df49ef49ff4a0f4a1f4a2f4a3f4a4f4a5f4a6f4a7f4a8f4a9f4aaf4abf4acf4adf4aef4aff4b0f4b1f4b2f4b3f4b4f4b5f4b6f4b7f4b8f4b9f4baf4bbf4bcf4bdf4bef4bff4c0f4c1f4c2f4c3f4c4f4c5f4c6f4c7f4c8f4c9f4caf4cbf4ccf4cdf4cef4cff4d0f4d1f4d2f4d3f4d4f4d5f4d6f4d7f4d8f4d9f4daf4dbf4dcf4ddf4def4dff4e0f4e1f4e2f4e3f4e4f4e5f4e6f4e7f4e8f4e9f4eaf4ebf4ecf4edf4eef4eff4f0f4f1f4f2f4f3f4f4f4f5f4f6f4f7f4f8f4f9f4faf4fbf4fcf4fdf4fef4fff400f501f502f503f504f505f506f507f508f509f50af50bf50cf50df50ef50ff510f511f512f513f514f515f516f517f518f519f51af51bf51cf51df51ef51ff520f521f522f523f524f525f526f527f528f529f52af52bf52cf52df52ef52ff530f531f532f533f534f535f536f537f538f539f53af53bf53cf53df53ef53ff540f541f542f543f544f545f546f547f548f549f54af54bf54cf54df54ef54ff550f551f552f553f554f555f556f557f558f559f55af55bf55cf55df55ef55ff560f561f562f563f564f565f566f567f568f569f56af56bf56cf56df56ef56ff570f571f572f573f574f575f576f577f578f579f57af57bf57cf57df57ef57ff580f581f582f583f584f585f586f587f588f589f58af58bf58cf58df58ef58ff590f591f592f593f594f595f596f597f598f599f59af59bf59cf59df59ef59ff5a0f5a1f5a2f5a3f5a4f5a5f5a6f5a7f5a8f5a9f5aaf5abf5acf5adf5aef5aff5b0f5b1f5b2f5b3f5b4f5b5f5b6f5b7f5b8f5b9f5baf5bbf5bcf5bdf5bef5bff5c0f5c1f5c2f5c3f5c4f5c5f5c6f5c7f5c8f5c9f5caf5cbf5ccf5cdf5cef5cff5d0f5d1f5d2f5d3f5d4f5d5f5d6f5d7f5d8f5d9f5daf5dbf5dcf5ddf5def5dff5e0f5e1f5e2f5e3f5e4f5e5f5e6f5e7f5e8f5e9f5eaf5ebf5ecf5edf5eef5eff5f0f5f1f5f2f5f3f5f4f5f5f5f6f5f7f5f8f5f9f5faf5fbf5fcf5fdf5fef5fff500f601f602f603f604f605f606f607f608f609f60af60bf60cf60df60ef60ff610f611f612f613f614f615f616f617f618f619f61af61bf61cf61df61ef61ff620f621f622f623f624f625f626f627f628f629f62af62bf62cf62df62ef62ff630f631f632f633f634f635f636f637f638f639f63af63bf63cf63df63ef63ff640f641f642f643f644f645f646f647f648f649f64af64bf64cf64df64ef64ff650f651f652f653f654f655f656f657f658f659f65af65bf65cf65df65ef65ff660f661f662f663f664f665f666f667f668f669f66af66bf66cf66df66ef66ff670f671f672f673f674f675f676f677f678f679f67af67bf67cf67df67ef67ff680f681f682f683f684f685f686f687f688f689f68af68bf68cf68df68ef68ff690f691f692f693f694f695f696f697f698f699f69af69bf69cf69df69ef69ff6a0f6a1f6a2f6a3f6a4f6a5f6a6f6a7f6a8f6a9f6aaf6abf6acf6adf6aef6aff6b0f6b1f6b2f6b3f6b4f6b5f6b6f6b7f6b8f6b9f6baf6bbf6bcf6bdf6bef6bff6c0f6c1f6c2f6c3f6c4f6c5f6c6f6c7f6c8f6c9f6caf6cbf6ccf6cdf6cef6cff6d0f6d1f6d2f6d3f6d4f6d5f6d6f6d7f6d8f6d9f6daf6dbf6dcf6ddf6def6dff6e0f6e1f6e2f6e3f6e4f6e5f6e6f6e7f6e8f6e9f6eaf6ebf6ecf6edf6eef6eff6f0f6f1f6f2f6f3f6f4f6f5f6f6f6f7f6f8f6f9f6faf6fbf6fcf6fdf6fef6fff600f701f702f703f704f705f706f707f708f709f70af70bf70cf70df70ef70ff710f711f712f713f714f715f716f717f718f719f71af71bf71cf71df71ef71ff720f721f722f723f724f725f726f727f728f729f72af72bf72cf72df72ef72ff730f731f732f733f734f735f736f737f738f739f73af73bf73cf73df73ef73ff740f741f742f743f744f745f746f747f748f749f74af74bf74cf74df74ef74ff750f751f752f753f754f755f756f757f758f759f75af75bf75cf75df75ef75ff760f761f762f763f764f765f766f767f768f769f76af76bf76cf76df76ef76ff770f771f772f773f774f775f776f777f778f779f77af77bf77cf77df77ef77ff780f781f782f783f784f785f786f787f788f789f78af78bf78cf78df78ef78ff790f791f792f793f794f795f796f797f798f799f79af79bf79cf79df79ef79ff7a0f7a1f7a2f7a3f7a4f7a5f7a6f7a7f7a8f7a9f7aaf7abf7acf7adf7aef7aff7b0f7b1f7b2f7b3f7b4f7b5f7b6f7b7f7b8f7b9f7baf7bbf7bcf7bdf7bef7bff7c0f7c1f7c2f7c3f7c4f7c5f7c6f7c7f7c8f7c9f7caf7cbf7ccf7cdf7cef7cff7d0f7d1f7d2f7d3f7d4f7d5f7d6f7d7f7d8f7d9f7daf7dbf7dcf7ddf7def7dff7e0f7e1f7e2f7e3f7e4f7e5f7e6f7e7f7e8f7e9f7eaf7ebf7ecf7edf7eef7eff7f0f7f1f7f2f7f3f7f4f7f5f7f6f7f7f7f8f7f9f7faf7fbf7fcf7fdf7fef7fff700f801f802f803f804f805f806f807f808f809f80af80bf80cf80df80ef80ff810f811f812f813f814f815f816f817f818f819f81af81bf81cf81df81ef81ff820f821f822f823f824f825f826f827f828f829f82af82bf82cf82df82ef82ff830f831f832f833f834f835f836f837f838f839f83af83bf83cf83df83ef83ff840f841f842f843f844f845f846f847f848f849f84af84bf84cf84df84ef84ff850f851f852f853f854f855f856f857f858f859f85af85bf85cf85df85ef85ff860f861f862f863f864f865f866f867f868f869f86af86bf86cf86df86ef86ff870f871f872f873f874f875f876f877f878f879f87af87bf87cf87df87ef87ff880f881f882f883f884f885f886f887f888f889f88af88bf88cf88df88ef88ff890f891f892f893f894f895f896f897f898f899f89af89bf89cf89df89ef89ff8a0f8a1f8a2f8a3f8a4f8a5f8a6f8a7f8a8f8a9f8aaf8abf8acf8adf8aef8aff8b0f8b1f8b2f8b3f8b4f8b5f8b6f8b7f8b8f8b9f8baf8bbf8bcf8bdf8bef8bff8c0f8c1f8c2f8c3f8c4f8c5f8c6f8c7f8c8f8c9f8caf8cbf8ccf8cdf8cef8cff8d0f8d1f8d2f8d3f8d4f8d5f8d6f8d7f8d8f8d9f8daf8dbf8dcf8ddf8def8dff8e0f8e1f8e2f8e3f8e4f8e5f8e6f8e7f8e8f8e9f8eaf8ebf8ecf8edf8eef8eff8f0f8f1f8f2f8f3f8f4f8f5f8f6f8f7f8f8f8f9f8faf8fbf8fcf8fdf8fef8fff800f901f902f903f904f905f906f907f908f909f90af90bf90cf90df90ef90ff910f911f912f913f914f915f916f917f918f919f91af91bf91cf91df91ef91ff920f921f922f923f924f925f926f927f928f929f92af92bf92cf92df92ef92ff930f931f932f933f934f935f936f937f938f939f93af93bf93cf93df93ef93ff940f941f942f943f944f945f946f947f948f949f94af94bf94cf94df94ef94ff950f951f952f953f954f955f956f957f958f959f95af95bf95cf95df95ef95ff960f961f962f963f964f965f966f967f968f969f96af96bf96cf96df96ef96ff970f971f972f973f974f975f976f977f978f979f97af97bf97cf97df97ef97ff980f981f982f983f984f985f986f987f988f989f98af98bf98cf98df98ef98ff990f991f992f993f994f995f996f997f998f999f99af99bf99cf99df99ef99ff9a0f9a1f9a2f9a3f9a4f9a5f9a6f9a7f9a8f9a9f9aaf9abf9acf9adf9aef9aff9b0f9b1f9b2f9b3f9b4f9b5f9b6f9b7f9b8f9b9f9baf9bbf9bcf9bdf9bef9bff9c0f9c1f9c2f9c3f9c4f9c5f9c6f9c7f9c8f9c9f9caf9cbf9ccf9cdf9cef9cff9d0f9d1f9d2f9d3f9d4f9d5f9d6f9d7f9d8f9d9f9daf9dbf9dcf9ddf9def9dff9e0f9e1f9e2f9e3f9e4f9e5f9e6f9e7f9e8f9e9f9eaf9ebf9ecf9edf9eef9eff9f0f9f1f9f2f9f3f9f4f9f5f9f6f9f7f9f8f9f9f9faf9fbf9fcf9fdf9fef9fff900fa01fa02fa03fa04fa05fa06fa07fa08fa09fa0afa0bfa0cfa0dfa0efa0ffa10fa11fa12fa13fa14fa15fa16fa17fa18fa19fa1afa1bfa1cfa1dfa1efa1ffa20fa21fa22fa23fa24fa25fa26fa27fa28fa29fa2afa2bfa2cfa2dfa2efa2ffa30fa31fa32fa33fa34fa35fa36fa37fa38fa39fa3afa3bfa3cfa3dfa3efa3ffa40fa41fa42fa43fa44fa45fa46fa47fa48fa49fa4afa4bfa4cfa4dfa4efa4ffa50fa51fa52fa53fa54fa55fa56fa57fa58fa59fa5afa5bfa5cfa5dfa5efa5ffa60fa61fa62fa63fa64fa65fa66fa67fa68fa69fa6afa6bfa6cfa6dfa6efa6ffa70fa71fa72fa73fa74fa75fa76fa77fa78fa79fa7afa7bfa7cfa7dfa7efa7ffa80fa81fa82fa83fa84fa85fa86fa87fa88fa89fa8afa8bfa8cfa8dfa8efa8ffa90fa91fa92fa93fa94fa95fa96fa97fa98fa99fa9afa9bfa9cfa9dfa9efa9ffaa0faa1faa2faa3faa4faa5faa6faa7faa8faa9faaafaabfaacfaadfaaefaaffab0fab1fab2fab3fab4fab5fab6fab7fab8fab9fabafabbfabcfabdfabefabffac0fac1fac2fac3fac4fac5fac6fac7fac8fac9facafacbfaccfacdfacefacffad0fad1fad2fad3fad4fad5fad6fad7fad8fad9fadafadbfadcfaddfadefadffae0fae1fae2fae3fae4fae5fae6fae7fae8fae9faeafaebfaecfaedfaeefaeffaf0faf1faf2faf3faf4faf5faf6faf7faf8faf9fafafafbfafcfafdfafefafffa00fb01fb02fb03fb04fb05fb06fb07fb08fb09fb0afb0bfb0cfb0dfb0efb0ffb10fb11fb12fb13fb14fb15fb16fb17fb18fb19fb1afb1bfb1cfb1dfb1efb1ffb20fb21fb22fb23fb24fb25fb26fb27fb28fb29fb2afb2bfb2cfb2dfb2efb2ffb30fb31fb32fb33fb34fb35fb36fb37fb38fb39fb3afb3bfb3cfb3dfb3efb3ffb40fb41fb42fb43fb44fb45fb46fb47fb48fb49fb4afb4bfb4cfb4dfb4efb4ffb50fb51fb52fb53fb54fb55fb56fb57fb58fb59fb5afb5bfb5cfb5dfb5efb5ffb60fb61fb62fb63fb64fb65fb66fb67fb68fb69fb6afb6bfb6cfb6dfb6efb6ffb70fb71fb72fb73fb74fb75fb76fb77fb78fb79fb7afb7bfb7cfb7dfb7efb7ffb80fb81fb82fb83fb84fb85fb86fb87fb88fb89fb8afb8bfb8cfb8dfb8efb8ffb90fb91fb92fb93fb94fb95fb96fb97fb98fb99fb9afb9bfb9cfb9dfb9efb9ffba0fba1fba2fba3fba4fba5fba6fba7fba8fba9fbaafbabfbacfbadfbaefbaffbb0fbb1fbb2fbb3fbb4fbb5fbb6fbb7fbb8fbb9fbbafbbbfbbcfbbdfbbefbbffbc0fbc1fbc2fbc3fbc4fbc5fbc6fbc7fbc8fbc9fbcafbcbfbccfbcdfbcefbcffbd0fbd1fbd2fbd3fbd4fbd5fbd6fbd7fbd8fbd9fbdafbdbfbdcfbddfbdefbdffbe0fbe1fbe2fbe3fbe4fbe5fbe6fbe7fbe8fbe9fbeafbebfbecfbedfbeefbeffbf0fbf1fbf2fbf3fbf4fbf5fbf6fbf7fbf8fbf9fbfafbfbfbfcfbfdfbfefbfffb00fc01fc02fc03fc04fc05fc06fc07fc08fc09fc0afc0bfc0cfc0dfc0efc0ffc10fc11fc12fc13fc14fc15fc16fc17fc18fc19fc1afc1bfc1cfc1dfc1efc1ffc20fc21fc22fc23fc24fc25fc26fc27fc28fc29fc2afc2bfc2cfc2dfc2efc2ffc30fc31fc32fc33fc34fc35fc36fc37fc38fc39fc3afc3bfc3cfc3dfc3efc3ffc40fc41fc42fc43fc44fc45fc46fc47fc48fc49fc4afc4bfc4cfc4dfc4efc4ffc50fc51fc52fc53fc54fc55fc56fc57fc58fc59fc5afc5bfc5cfc5dfc5efc5ffc60fc61fc62fc63fc64fc65fc66fc67fc68fc69fc6afc6bfc6cfc6dfc6efc6ffc70fc71fc72fc73fc74fc75fc76fc77fc78fc79fc7afc7bfc7cfc7dfc7efc7ffc80fc81fc82fc83fc84fc85fc86fc87fc88fc89fc8afc8bfc8cfc8dfc8efc8ffc90fc91fc92fc93fc94fc95fc96fc97fc98fc99fc9afc9bfc9cfc9dfc9efc9ffca0fca1fca2fca3fca4fca5fca6fca7fca8fca9fcaafcabfcacfcadfcaefcaffcb0fcb1fcb2fcb3fcb4fcb5fcb6fcb7fcb8fcb9fcbafcbbfcbcfcbdfcbefcbffcc0fcc1fcc2fcc3fcc4fcc5fcc6fcc7fcc8fcc9fccafccbfcccfccdfccefccffcd0fcd1fcd2fcd3fcd4fcd5fcd6fcd7fcd8fcd9fcdafcdbfcdcfcddfcdefcdffce0fce1fce2fce3fce4fce5fce6fce7fce8fce9fceafcebfcecfcedfceefceffcf0fcf1fcf2fcf3fcf4fcf5fcf6fcf7fcf8fcf9fcfafcfbfcfcfcfdfcfefcfffc00fd01fd02fd03fd04fd05fd06fd07fd08fd09fd0afd0bfd0cfd0dfd0efd0ffd10fd11fd12fd13fd14fd15fd16fd17fd18fd19fd1afd1bfd1cfd1dfd1efd1ffd20fd21fd22fd23fd24fd25fd26fd27fd28fd29fd2afd2bfd2cfd2dfd2efd2ffd30fd31fd32fd33fd34fd35fd36fd37fd38fd39fd3afd3bfd3cfd3dfd3efd3ffd40fd41fd42fd43fd44fd45fd46fd47fd48fd49fd4afd4bfd4cfd4dfd4efd4ffd50fd51fd52fd53fd54fd55fd56fd57fd58fd59fd5afd5bfd5cfd5dfd5efd5ffd60fd61fd62fd63fd64fd65fd66fd67fd68fd69fd6afd6bfd6cfd6dfd6efd6ffd70fd71fd72fd73fd74fd75fd76fd77fd78fd79fd7afd7bfd7cfd7dfd7efd7ffd80fd81fd82fd83fd84fd85fd86fd87fd88fd89fd8afd8bfd8cfd8dfd8efd8ffd90fd91fd92fd93fd94fd95fd96fd97fd98fd99fd9afd9bfd9cfd9dfd9efd9ffda0fda1fda2fda3fda4fda5fda6fda7fda8fda9fdaafdabfdacfdadfdaefdaffdb0fdb1fdb2fdb3fdb4fdb5fdb6fdb7fdb8fdb9fdbafdbbfdbcfdbdfdbefdbffdc0fdc1fdc2fdc3fdc4fdc5fdc6fdc7fdc8fdc9fdcafdcbfdccfdcdfdcefdcffdd0fdd1fdd2fdd3fdd4fdd5fdd6fdd7fdd8fdd9fddafddbfddcfdddfddefddffde0fde1fde2fde3fde4fde5fde6fde7fde8fde9fdeafdebfdecfdedfdeefdeffdf0fdf1fdf2fdf3fdf4fdf5fdf6fdf7fdf8fdf9fdfafdfbfdfcfdfdfdfefdfffd00fe01fe02fe03fe04fe05fe06fe07fe08fe09fe0afe0bfe0cfe0dfe0efe0ffe10fe11fe12fe13fe14fe15fe16fe17fe18fe19fe1afe1bfe1cfe1dfe1efe1ffe20fe21fe22fe23fe24fe25fe26fe27fe28fe29fe2afe2bfe2cfe2dfe2efe2ffe30fe31fe32fe33fe34fe35fe36fe37fe38fe39fe3afe3bfe3cfe3dfe3efe3ffe40fe41fe42fe43fe44fe45fe46fe47fe48fe49fe4afe4bfe4cfe4dfe4efe4ffe50fe51fe52fe53fe54fe55fe56fe57fe58fe59fe5afe5bfe5cfe5dfe5efe5ffe60fe61fe62fe63fe64fe65fe66fe67fe68fe69fe6afe6bfe6cfe6dfe6efe6ffe70fe71fe72fe73fe74fe75fe76fe77fe78fe79fe7afe7bfe7cfe7dfe7efe7ffe80fe81fe82fe83fe84fe85fe86fe87fe88fe89fe8afe8bfe8cfe8dfe8efe8ffe90fe91fe92fe93fe94fe95fe96fe97fe98fe99fe9afe9bfe9cfe9dfe9efe9ffea0fea1fea2fea3fea4fea5fea6fea7fea8fea9feaafeabfeacfeadfeaefeaffeb0feb1feb2feb3feb4feb5feb6feb7feb8feb9febafebbfebcfebdfebefebffec0fec1fec2fec3fec4fec5fec6fec7fec8fec9fecafecbfeccfecdfecefecffed0fed1fed2fed3fed4fed5fed6fed7fed8fed9fedafedbfedcfeddfedefedffee0fee1fee2fee3fee4fee5fee6fee7fee8fee9feeafeebfeecfeedfeeefeeffef0fef1fef2fef3fef4fef5fef6fef7fef8fef9fefafefbfefcfefdfefefefffe00ff01ff02ff03ff04ff05ff06ff07ff08ff09ff0aff0bff0cff0dff0eff0fff10ff11ff12ff13ff14ff15ff16ff17ff18ff19ff1aff1bff1cff1dff1eff1fff20ff21ff22ff23ff24ff25ff26ff27ff28ff29ff2aff2bff2cff2dff2eff2fff30ff31ff32ff33ff34ff35ff36ff37ff38ff39ff3aff3bff3cff3dff3eff3fff40ff21ff22ff23ff24ff25ff26ff27ff28ff29ff2aff2bff2cff2dff2eff2fff30ff31ff32ff33ff34ff35ff36ff37ff38ff39ff3aff5bff5cff5dff5eff5fff60ff61ff62ff63ff64ff65ff66ff67ff68ff69ff6aff6bff6cff6dff6eff6fff70ff71ff72ff73ff74ff75ff76ff77ff78ff79ff7aff7bff7cff7dff7eff7fff80ff81ff82ff83ff84ff85ff86ff87ff88ff89ff8aff8bff8cff8dff8eff8fff90ff91ff92ff93ff94ff95ff96ff97ff98ff99ff9aff9bff9cff9dff9eff9fffa0ffa1ffa2ffa3ffa4ffa5ffa6ffa7ffa8ffa9ffaaffabffacffadffaeffafffb0ffb1ffb2ffb3ffb4ffb5ffb6ffb7ffb8ffb9ffbaffbbffbcffbdffbeffbfffc0ffc1ffc2ffc3ffc4ffc5ffc6ffc7ffc8ffc9ffcaffcbffccffcdffceffcfffd0ffd1ffd2ffd3ffd4ffd5ffd6ffd7ffd8ffd9ffdaffdbffdcffddffdeffdfffe0ffe1ffe2ffe3ffe4ffe5ffe6ffe7ffe8ffe9ffeaffebffecffedffeeffeffff0fff1fff2fff3fff4fff5fff6fff7fff8fff9fffafffbfffcfffdfffeffffff", 0x20000, 0x88000}, {&(0x7f0000052900)="46494c453000090000000000000000000100010048000100a80100000010000000000000000000000400000000000000080000000000000000000000000000000000000000000000100000006000000000001800000000004800000018000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000300000006800000000001800000002004a00000018000100050000000000050080052e00c88dd60180052e00c88dd60180052e00c88dd60180052e00c88dd60100b001000000000000b00100000000000600000000000000040324004d00460054000000000000008000000048000000010040000000010000000000000000004a00000000000000400000000000000000b004000000000000600400000000000060040000000000113f04210c3f0100b00000004800000001004000000003000000000000000000000000000000000040000000000000000010000000000000100000000000000010000000000000001101020000000000ffffffff00"/448, 0x1c0, 0xff000}, {&(0x7f0000052b00)='\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, 0xff1e0}, {&(0x7f0000052c00)='\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, 0xff3e0}, {&(0x7f0000052d00)='\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, 0xff5e0}, {&(0x7f0000052e00)='\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, 0xff7e0}, {&(0x7f0000052f00)='\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}, {&(0x7f0000053000)='\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, 0xffbe0}, {&(0x7f0000053100)='\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, 0xffde0}, {&(0x7f0000053200)="000000000000000000000000000000000000000000000000000000000000080046494c45300009000000000000000000010001004800010068010000001000000000000000000000030000000100000002000000000000000000000000000000000000000000000010000000600000000000180000000000480000001800000080052e00c88dd60180052e00c88dd60180052e00c88dd60180052e00c88dd60106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050080052e00c88dd60180052e00c88dd60180052e00c88dd60180052e00c88dd601004000000000000000400000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000030000000000000040000000000000000040000000000000004000000000000000400000000000002104ff0000000000ffffffff00"/416, 0x1a0, 0xfffe0}, {&(0x7f0000053400)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1001e0}, {&(0x7f0000053500)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1003e0}, {&(0x7f0000053600)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1005e0}, {&(0x7f0000053700)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1007e0}, {&(0x7f0000053800)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1009e0}, {&(0x7f0000053900)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x100be0}, {&(0x7f0000053a00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x100de0}, {&(0x7f0000053b00)="000000000000000000000000000000000000000000000000000000000000020046494c45300009000000000000000000020001004800010068010000001000000000000000000000030000000200000002000000000000000000000000000000000000000000000010000000600000000000180000000000480000001800000080052e00c88dd60180052e00c88dd60180052e00c88dd60180052e00c88dd60106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050080052e00c88dd60180052e00c88dd60180052e00c88dd60180052e00c88dd601000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f0000000000000040000000000000000000040000000000000004000000000000000400000000002140030100000000ffffffff00"/416, 0x1a0, 0x100fe0}, {&(0x7f0000053d00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1011e0}, {&(0x7f0000053e00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1013e0}, {&(0x7f0000053f00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1015e0}, {&(0x7f0000054000)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1017e0}, {&(0x7f0000054100)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1019e0}, {&(0x7f0000054200)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x101be0}, {&(0x7f0000054300)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x101de0}, {&(0x7f0000054400)="000000000000000000000000000000000000000000000000000000000000020046494c453000090000000000000000000300010048000100f0010000001000000000000000000000060000000300000002000000000000000000000000000000000000000000000010000000480000000000180000000000300000001800000080052e00c88dd60180052e00c88dd60180052e00c88dd60180052e00c88dd60106000000000000000000000000000000300000006800000000001800000001005000000018000100050000000000050080052e00c88dd60180052e00c88dd60180052e00c88dd60180052e00c88dd6010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff0000000000000000000000000000000000000200", 0x220, 0x101fe0}, {&(0x7f0000054700)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1023e0}, {&(0x7f0000054800)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1025e0}, {&(0x7f0000054900)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1027e0}, {&(0x7f0000054a00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1029e0}, {&(0x7f0000054b00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x102be0}, {&(0x7f0000054c00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x102de0}, {&(0x7f0000054d00)="0000000000000000000000000000000000000000000000000000000000000200ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff46494c45300009000000000000000000010000004800000050000000001000000000000000000000000000003f000000020000000000000000000000000000000000000000000000ffffffff00"/262272, 0x40080, 0x102fe0}, {&(0x7f0000094e00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1431e0}, {&(0x7f0000094f00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1433e0}, {&(0x7f0000095000)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1435e0}, {&(0x7f0000095100)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1437e0}, {&(0x7f0000095200)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1439e0}, {&(0x7f0000095300)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x143be0}, {&(0x7f0000095400)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x143de0}, {&(0x7f0000095500)="000000000000000000000000000000000000000000000000000000000000020046494c45300009000000000000000000010001004800030078020000001000000000000000000000040000004000000006000000000000000000000000000000000000000000000010000000480000000000000000000000300000001800000014bb7a01c88dd60148c87a01c88dd60148c87a01c88dd60114bb7a01c88dd60120000000000000000000000000000000300000006800000000000000000003004c00000018000100050000000000050014bb7a01c88dd60114bb7a01c88dd60114bb7a01c88dd60114bb7a01c88dd6010000000000000000000000000000000020000010000000000500660069006c0065003000000000005000000068000000000000000000010050000000180000000100048014000000240000000000000034000000010200000000000520000000200200000102000000000005200000002002000002001c000100000000031400ff011f0001010000000000010000000090000000100100000004180000000200f00000002000000024004900330030003000000001000000001000000100000010000000e0000000e000000000000000410000000000010060004c0000000000400000000000010089c07a01c88dd60129c47a01c88dd60129c47a01c88dd60189c07a01c88dd60120040000000000001a0400000000000020000000000000000500660069006c006500300000000600420000000000010060004c00000000004000000000000100efc77a01c88dd601efc77a01c88dd601efc77a01c88dd601efc77a01c88dd6015800000000000000540000000000000024000000000000000500660069006c00650031000000000000000000000000001000000002000000ffffffff00"/672, 0x2a0, 0x143fe0}, {&(0x7f0000095800)="0000000000000000000000000000000000000000000000000000000000000600", 0x20, 0x1443e0}, {&(0x7f0000095900)="0000000000000000000000000000000000000000000000000000000000000600", 0x20, 0x1445e0}, {&(0x7f0000095a00)="0000000000000000000000000000000000000000000000000000000000000600", 0x20, 0x1447e0}, {&(0x7f0000095b00)="0000000000000000000000000000000000000000000000000000000000000600", 0x20, 0x1449dd}, {&(0x7f0000095c00)="0000000000000000000000000000000000000000000000000000000000000600", 0x20, 0x144be0}, {&(0x7f0000095d00)="0000000000000000000000000000000000000000000000000000000000000600", 0x20, 0x144de0}, {&(0x7f0000095e00)="000000000000000000000000000000000000000000000000000000000000060046494c453000090000000000000000000100010048000100a0050000001000000000000000000000040000004100000005007273657200000000000000000000000000000000000010000000480000000000000000000000300000001800000089c07a01c88dd60129c47a01c88dd60129c47a01c88dd60189c07a01c88dd60120000000000000000000000000000000300000006800000000000000000003004c00000018000100400000000000010089c07a01c88dd60189c07a01c88dd60189c07a01c88dd60189c07a01c88dd6012004000000000000000000000000000020000000000000000500660069006c0065003000000000005000000068000000000000000000010050000000180000000100048014000000240000000000000034000000010200000000000520000000200200000102000000000005200000002002000002001c000100000000031400ff011f00010100000000000100000000800000003804000000000000000002001a0400001800000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c650500797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c050073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c000000000000ffffffff00000000", 0x5c0, 0x144fe0}, {&(0x7f0000096400)="0000000000000000000000000000000000000000000000000000000000000500", 0x20, 0x1455e0}, {&(0x7f0000096500)="0000000000000000000000000000000000000000000000000000000000000500", 0x20, 0x1457e0}, {&(0x7f0000096600)="0000000000000000000000000000000000000000000000000000000000000500", 0x20, 0x1459e0}, {&(0x7f0000096700)="0000000000000000000000000000000000000000000000000000000000000500", 0x20, 0x145be0}, {&(0x7f0000096800)="0000000000000000000000000000000000000000000000000000000000000500", 0x20, 0x145de0}, {&(0x7f0000096900)="000000000000000000000000000000000000000000000000000000000000050046494c453000090000000000000000000100010048000100d80100000010000000000000000000000400000042000000030000000000000000000000000000000000000000000000100000004800000000000000000000003000000018000000efc77a01c88dd601efc77a01c88dd601efc77a01c88dd601efc77a01c88dd60124000000000000000000000000000000300000006800000000000000000003004c000000180001004000000000000100efc77a01c88dd601efc77a01c88dd601efc77a01c88dd601efc77a01c88dd6015800000000000000540000000000000024000000000000000500660069006c0065003100000000005000000068000000000000000000010050000000180000000100048014000000240000000000000034000000010200000000000520000000200200000102000000000005200000002002000002001c000100000000031400ff011f00010100000000000100000000800000007000000000000000000002005400000018000000496e74784c4e4b012f0074006d0070002f00730079007a002d0069006d00610067006500670065006e003100350032003700370032003300310034002f00660069006c00650030002f00660069006c006500300000000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000300", 0x220, 0x145fe0}, {&(0x7f0000096c00)="0000000000000000000000000000000000000000000000000000000000000300", 0x20, 0x1463e0}, {&(0x7f0000096d00)="0000000000000000000000000000000000000000000000000000000000000300", 0x20, 0x1465e0}, {&(0x7f0000096e00)="0000000000000000000000000000000000000000000000000000000000000300", 0x20, 0x1467e0}, {&(0x7f0000096f00)="0000000000000000000000000000000000000000000000000000000000000300", 0x20, 0x1469e0}, {&(0x7f0000097000)="0000000000000000000000000000000000000000000000000000000000000300", 0x20, 0x146be0}, {&(0x7f0000097100)="0000000000000000000000000000000000000000000000000000000000000300", 0x20, 0x146de0}, {&(0x7f0000097200)="000000000000000000000000000000000000000000000000000000000000030046494c453000090000000000000000000100010048000100f001000000100000000000000000000006000000430000000900000000000000000000000000000000000000000000001000000048000000000000000000000030000000180000000fcb7a01c88dd601b0cd7a01c88dd60111d17a01c88dd6010fcb7a01c88dd60120000000000000000000000000000000300000006800000000000000000003004c0000001800010005000000000005000fcb7a01c88dd6010fcb7a01c88dd6010fcb7a01c88dd6010fcb7a01c88dd6011000000000000000000000000000000020000000000000000500660069006c0065003100000000005000000068000000000000000000010050000000180000000100048014000000240000000000000034000000010200000000000520000000200200000102000000000005200000002002000002001c000100000000031400ff011f00010100000000000100000000800000002800000000000000000002000a0000001800000073797a6b616c6c657273000000000000800000003000000000061800000004000600000028000000780061007400740072003100000000007861747472310000800000003000000000061800000005000600000028000000780061007400740072003200000000007861747472320000ffffffff0000000000000000000000000000000000000900", 0x220, 0x146fe0}, {&(0x7f0000097500)='\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\t\x00', 0x20, 0x1473e0}, {&(0x7f0000097600)='\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\t\x00', 0x20, 0x1475e0}, {&(0x7f0000097700)='\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\t\x00', 0x20, 0x1477e0}, {&(0x7f0000097800)='\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\t\x00', 0x20, 0x1479e0}, {&(0x7f0000097900)='\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\t\x00', 0x20, 0x147be0}, {&(0x7f0000097a00)='\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\t\x00', 0x20, 0x147de0}, {&(0x7f0000097b00)="000000000000000000000000000000000000000000000000000000000000090046494c4530000900000000000000000001000200480001001802000000100000000000000000000005000000440000000a0000000000000000000000000000000000000000000000100000004800000000000000000000003000000018000000add47a01c88dd60173db7a01c88dd6013bde7a01c88dd601add47a01c88dd60120000000000000000000000000000000300000006800000000000000000004004c000000180001000500000000000500add47a01c88dd60173db7a01c88dd60173db7a01c88dd601add47a01c88dd6010030000000000000282300000000000020000000000000000500660069006c006500330000000000300000006800000000000000000003004c000000180001000500000000000500add47a01c88dd601add47a01c88dd601add47a01c88dd601add47a01c88dd6010030000000000000000000000000000020000000000000000500660069006c0065003200000000005000000068000000000000000000010050000000180000000100048014000000240000000000000034000000010200000000000520000000200200000102000000000005200000002002000002001c000100000000031400ff011f000101000000000001000000008000000048000000010040000000020000000000000000000200000000000000400000000000000000300000000000002823000000000a00282300000000000021034f0100000000ffffffff00"/576, 0x240, 0x147fe0}, {&(0x7f0000097e00)='\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\n\x00', 0x20, 0x1483e0}, {&(0x7f0000097f00)='\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\n\x00', 0x20, 0x1485e0}, {&(0x7f0000098000)='\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\n\x00', 0x20, 0x1487e0}, {&(0x7f0000098100)='\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\n\x00', 0x20, 0x1489e0}, {&(0x7f0000098200)='\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\n\x00', 0x20, 0x148be0}, {&(0x7f0000098300)='\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\n\x00', 0x20, 0x148de0}, {&(0x7f0000098400)="0000000000000000000000000000000000000000000000000000000000000a0046494c453000090000000000000000000100010048000100f0010000001000000000000000000000040000004500000005000000000000000000000000000000000000000000000010000000480000000000000000000000300000001800000050e17a01c88dd601cae37a01c88dd601cae37a01c88dd60150e17a01c88dd60120000000000000000000000000000000300000007000000000000000000003005400000018000100050000000000050050e17a01c88dd60150e17a01c88dd60150e17a01c88dd60150e17a01c88dd6016800000000000000000000000000000020000000000000000900660069006c0065002e0063006f006c006400180000005000000068000000000000000000010050000000180000000100048014000000240000000000000034000000010200000000000520000000200200000102000000000005200000002002000002001c000100000000031400ff011f0001010000000000010000000080000000800000000000000000000200640000001800000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c65727300000000ffffffff0000000000000000000000000000000000000500", 0x220, 0x148fe0}, {&(0x7f0000098700)="0000000000000000000000000000000000000000000000000000000000000500", 0x20, 0x1493e0}, {&(0x7f0000098800)="0000000000000000000000000000000000000000000000000000000000000500", 0x20, 0x1495e0}, {&(0x7f0000098900)="0000000000000000000000000000000000000000000000000000000000000500", 0x20, 0x1497e0}, {&(0x7f0000098a00)="0000000000000000000000000000000000000000000000000000000000000500", 0x20, 0x52c33684}, {&(0x7f0000098b00)="0000000000000000000000000000000000000000000000000000000000000500", 0x20, 0x149be0}, {&(0x7f0000098c00)="0000000000000000000000000000000000000000000000000000000000000500", 0x20, 0x149de0}, {&(0x7f0000098d00)="0000000000000000000000000000000000000000000000000000000000000500", 0x20, 0x149fe0}, {&(0x7f0000098e00)="eb52904e5446532020202000100100000000000000f8000000000000000000000000000080008000ff010000000000000400000000000000ff000000000000000100000001000000a3b8b20fcf7aa836000000000e1fbe717cac22c0740b56b40ebb0700cd105eebf032e4cd16cd19ebfe54686973206973206e6f74206120626f6f7461626c65206469736b2e20506c6561736520696e73657274206120626f6f7461626c6520666c6f70707920616e640d0a707265737320616e79206b657920746f2074727920616761696e202e2e2e200d0a00"/224, 0xe0, 0x1ff000}, {&(0x7f0000098f00)="00000000000000000000000000000000000000000000000000000000000055aa", 0x20, 0x1ff1e0}], 0x0, &(0x7f0000099000)) r0 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r1) mount$bpf(0x0, &(0x7f0000000140)='./file0\x00', &(0x7f0000000180)='bpf\x00', 0xa0, &(0x7f0000003bc0)={[{@mode={'mode', 0x3d, 0x81}}, {@mode={'mode', 0x3d, 0x3f}}], [{@dont_appraise='dont_appraise'}, {@obj_type={'obj_type', 0x3d, '#'}}, {@fscontext={'fscontext', 0x3d, 'sysadm_u'}}, {@euid_eq={'euid', 0x3d, r1}}, {@pcr={'pcr', 0x3d, 0x8}}, {@smackfsfloor={'smackfsfloor', 0x3d, 'ntfs\x00'}}, {@subj_type={'subj_type', 0x3d, ']}]&*#[['}}]}) 05:19:02 executing program 5: ioctl$KDSKBENT(0xffffffffffffffff, 0x4b47, &(0x7f0000000080)={0x0, 0x7}) r0 = openat$kvm(0xffffffffffffff9c, &(0x7f00000004c0)='/dev/kvm\x00', 0x0, 0x0) ioctl$TCSBRK(0xffffffffffffffff, 0x5409, 0xab) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) syz_kvm_setup_cpu$x86(0xffffffffffffffff, 0xffffffffffffffff, &(0x7f0000032000/0x18000)=nil, &(0x7f0000000280)=[@text32={0x20, &(0x7f0000000140)="b9800000c00f3235010000000f309a090000006500660f3882af724d00002ed8dd0f0f6300bfc7442402c43a727fc7442406000000000f011424f30f090f013a360f0666b8c0008ec066baa100ed", 0xc62f98480d383858}], 0x1, 0x0, 0x0, 0x0) ioctl$KVM_CREATE_IRQCHIP(r1, 0xae60) r2 = ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x0) ioctl$KVM_DEASSIGN_PCI_DEVICE(0xffffffffffffffff, 0x4040ae72, &(0x7f00000000c0)={0x0, 0x98}) ioctl$KVM_SET_USER_MEMORY_REGION(r1, 0x4020ae46, &(0x7f0000bf7000)={0x0, 0x0, 0x0, 0x2000, &(0x7f0000000000/0x2000)=nil}) ioctl$KVM_SET_REGS(r2, 0x4090ae82, &(0x7f00000002c0)={[0x3, 0x0, 0x40000007, 0x0, 0x0, 0x0, 0x4cb]}) syz_kvm_setup_cpu$x86(r1, r2, &(0x7f0000fe7000/0x18000)=nil, &(0x7f0000000240)=[@text16={0x10, &(0x7f00000001c0)="66c192010000660f38823d0f72f0e2baf80c66b80acd048f66efbafc0cec0f01caea0a00b60071000f009c0060baf80c66b8a677738b66efbafc0cb000ee0f2318", 0x41}], 0x1, 0x4, &(0x7f0000000380)=[@cstype0={0x4, 0xc}, @cstype3={0x5, 0x6}], 0x2) ioctl$KVM_SET_LAPIC(r2, 0x4400ae8f, &(0x7f0000000640)={"f8bc812c1fa19754afac5496b20797897fb466182b7fdf5b7b14057126e2421fe0b8fb8d28f082d2ceabbf68af80f60cee4a3f7a624ab818a8deae021dd088d9c4e9f15eaa9cda3a8b928b8522044de8d782577795553029b8ce5b3b1052ce1d93d44999c3cb06c79b84a7818ff8614c766cbaea878981813b284e896c186bb35d0516d8dfddeedab8c9019e3d126a4a53dd079ab2d32814c11b585033c7f920400cf9d2f3f36be85e55b22263414c8f09a9407eb53208015789582b9fa1107895284948465095f5ea253890ae7ce2267e02afc725bd355428044c79fa8ddbc1af58c9f49850a2843ddab3e2d4ae25095a2b4d39eb7e080c488bb3a1c89d17b7e8ac46e9268a076b68941b272480a542ed95b45b326b7b49b04d34dc0095c204bdf7c8a8e084470be43585aaad9352fab995f042bdc8191d6dd9ce7bd2b82563cd820dae23708fd3941ee416227dbe63477e71ce343bf6bbd17438d0599fa4642b8d5c8ae87a2bd838233d725838e6059dcab70db8b0eaecf7bd7f203d50914303255e53b406dd56f795aad31abb20fc2f689a0f03b6b560c118a56d1fc56cd400dfa8b94511805eeeb0d103df2a5c6efeded54c556c5d26727ed932ae9be965220ef7198bfd45d0c55d986a3fd4a5ded43fb96335a0851c844a737796106e113729abfb1a9b248cc832cd13821fa9b2826f8cd183df40a57196ae59dee9c35148b8c839b0fbd87a7799b6e4e54d73c75d74dec0a63a2fd1b5962229c858e44695c7096864a451a0c9ca3c6a1a1e5271c23e32f5f72b9ada8654b7d3b80890094e1a915df9a7c88522a8cdef91408d254580e092021a69c6d5f7f6ba506b49b620c8ab9170cc90a568260aead7f029231891a58809c7d5a7ec3d9463549a58c6be9957e0fd3b83b997b7252ea0345c808e429fc19d6d1e8634a698c7a4a294e4e520c744abdef140f24d9dc7716cad445758563e0f753a392c4aebe256ad48ef42487798175b33f9ab1a00682a0fe85fd2dcf97fa30c7e80f914e70583aa8703e3ea179941247b3de686e9b089005bc2ef3ec45dcf43b0e5a8218301db7b40e9bf7c4280c5efc89ffa23b8119b2a79cdfa89367d6cb8fd2f04cfc45586f5c608efa7bc25103c3019f7ed27d1a6aa7e6348458e2f2699f979a5164437f8f6df02c98c32cb4699afd7b539368c82de11ea359c537cdb02b41011d54a968da8f876d28c69061c0a85d15bf01f1a3af5ad374bd523defceb1540f39c020b809af5e61be039850c50d2badc72e842f6a794115caedb14a81758f1926632f7e6c69829029bf0c3312d40b3a418bcba446206db6357effb80a199c3b52b1ef76715d1d8d2b3e33eb83a4d735d6abc431a3cb3e6bafa55304902482bb62a3a3eb8bb53eb85302fad8580637616a3e802c1a3a6b66b7ef91b50f7843d568cf40875f6d45b"}) r3 = fcntl$dupfd(0xffffffffffffffff, 0x0, r2) ioctl$KVM_CREATE_VCPU(r3, 0xae41, 0x0) perf_event_open(&(0x7f00000005c0)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$KVM_ASSIGN_DEV_IRQ(r1, 0x4040ae70, &(0x7f0000000100)={0x8fe, 0x0, 0x6, 0x407}) ioctl$KVM_RUN(r2, 0xae80, 0x0) syz_open_procfs(0xffffffffffffffff, &(0x7f0000000140)='ns\x00') perf_event_open(&(0x7f0000000000)={0x0, 0x70, 0x5, 0x0, 0x0, 0x0, 0x0, 0x81, 0x0, 0x3, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x4, @perf_config_ext={0x9, 0x3d91}, 0x10200, 0xfffffffffffffffd, 0x0, 0x0, 0x2, 0x6, 0x1}, 0x0, 0x0, 0xffffffffffffffff, 0x0) ioctl$KVM_RUN(r2, 0xae80, 0x0) 05:19:02 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, 0x0, 0x1, 0x7}, 0x0) [ 312.473450] netlink: 20 bytes leftover after parsing attributes in process `syz-executor.2'. 05:19:02 executing program 4: ioctl$DRM_IOCTL_MODE_CREATE_LEASE(0xffffffffffffffff, 0xc01864c6, &(0x7f0000000380)={&(0x7f0000000340)=[0xffff], 0x1, 0x80800, 0x0, 0xffffffffffffffff}) ioctl$SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS(r0, 0xc0045516, &(0x7f00000003c0)=0x4) r1 = creat(&(0x7f0000000280)='./file0\x00', 0x3) r2 = openat(0xffffffffffffff9c, &(0x7f0000000440)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x10, r2, 0x4000) perf_event_open(&(0x7f0000000040)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) close(r1) r3 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r3, 0x0) preadv(r3, &(0x7f0000000280), 0x18, 0x0, 0x0) write$binfmt_elf32(r3, &(0x7f0000000480)=ANY=[@ANYBLOB="7f454c461f810303f7ffffffffffffff03003e0001000000fe000000380000006d0000000500000044ed200002000500006d00000000000000000060faffffff1f00000000f8ffff8e4db568020000000700000008000000b36f6bc992c9dad03bd1747032b8cad5c361b5c40589d53c6773c7251aae4c87aae2bc2e5afd0b25e4651a05ed67a4d21f98cdf6aecd45124e104b1d867b6de4b1453fde1ca6a15fe219dade6138c66d4c534c615b6a4a9d935a234e45693df1f41e91dccbd92827387d22b28a2599c3afdb1cfe445bba8725683df88f15ae28f9f55194afa3e1ce508839f4f05135d206d8f9331e692a587830d0ec3e31075316dc0dd2a9d8bab6f08ca33b0325cd4afd37d9aa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800"/2572], 0xa0c) sendmsg$TIPC_NL_NAME_TABLE_GET(r2, &(0x7f0000000300)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x40}, 0xc, &(0x7f00000002c0)={&(0x7f0000000140)={0x12c, 0x0, 0x400, 0x70bd2c, 0x25dfdbfd, {}, [@TIPC_NLA_MEDIA={0x40, 0x5, 0x0, 0x1, [@TIPC_NLA_MEDIA_NAME={0x7, 0x1, 'ib\x00'}, @TIPC_NLA_MEDIA_PROP={0x34, 0x2, 0x0, 0x1, [@TIPC_NLA_PROP_PRIO={0x8, 0x1, 0x4}, @TIPC_NLA_PROP_MTU={0x8, 0x4, 0x1}, @TIPC_NLA_PROP_WIN={0x8, 0x3, 0x4}, @TIPC_NLA_PROP_TOL={0x8, 0x2, 0x9}, @TIPC_NLA_PROP_TOL={0x8, 0x2, 0x3}, @TIPC_NLA_PROP_WIN={0x8, 0x3, 0x7}]}]}, @TIPC_NLA_MON={0x3c, 0x9, 0x0, 0x1, [@TIPC_NLA_MON_ACTIVATION_THRESHOLD={0x8, 0x1, 0xff}, @TIPC_NLA_MON_ACTIVATION_THRESHOLD={0x8, 0x1, 0x6a}, @TIPC_NLA_MON_REF={0x8, 0x2, 0x800}, @TIPC_NLA_MON_ACTIVATION_THRESHOLD={0x8, 0x1, 0x1}, @TIPC_NLA_MON_REF={0x8, 0x2, 0xbf}, @TIPC_NLA_MON_ACTIVATION_THRESHOLD={0x8, 0x1, 0x6}, @TIPC_NLA_MON_REF={0x8, 0x2, 0x7fff}]}, @TIPC_NLA_LINK={0x60, 0x4, 0x0, 0x1, [@TIPC_NLA_LINK_PROP={0xc, 0x7, 0x0, 0x1, [@TIPC_NLA_PROP_WIN={0x8}]}, @TIPC_NLA_LINK_NAME={0x9, 0x1, 'syz1\x00'}, @TIPC_NLA_LINK_PROP={0x44, 0x7, 0x0, 0x1, [@TIPC_NLA_PROP_TOL={0x8, 0x2, 0xf03f}, @TIPC_NLA_PROP_WIN={0x8, 0x3, 0x2}, @TIPC_NLA_PROP_PRIO={0x8, 0x1, 0xb}, @TIPC_NLA_PROP_MTU={0x8, 0x4, 0x3d}, @TIPC_NLA_PROP_WIN={0x8, 0x3, 0x503}, @TIPC_NLA_PROP_PRIO={0x8, 0x1, 0xd}, @TIPC_NLA_PROP_WIN={0x8, 0x3, 0x4}, @TIPC_NLA_PROP_MTU={0x8, 0x4, 0x3}]}]}, @TIPC_NLA_SOCK={0x18, 0x2, 0x0, 0x1, [@TIPC_NLA_SOCK_ADDR={0x8, 0x1, 0x1f}, @TIPC_NLA_SOCK_HAS_PUBL={0x4}, @TIPC_NLA_SOCK_ADDR={0x8, 0x1, 0x4}]}, @TIPC_NLA_MON={0x24, 0x9, 0x0, 0x1, [@TIPC_NLA_MON_REF={0x8, 0x2, 0xfffffffc}, @TIPC_NLA_MON_REF={0x8, 0x2, 0x4}, @TIPC_NLA_MON_ACTIVATION_THRESHOLD={0x8, 0x1, 0xffff}, @TIPC_NLA_MON_ACTIVATION_THRESHOLD={0x8, 0x1, 0x5}]}]}, 0x12c}, 0x1, 0x0, 0x0, 0x4000}, 0x20048010) clone(0x100, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) execve(&(0x7f0000000000)='./file0\x00', 0x0, &(0x7f0000000640)) 05:19:02 executing program 3: r0 = perf_event_open(&(0x7f0000000040)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x0, 0x0, 0x0, 0x0, 0x8}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r1 = syz_open_procfs(0xffffffffffffffff, &(0x7f00000001c0)='status\x00') ioctl$KVM_SET_SIGNAL_MASK(r1, 0x4004ae8b, 0x0) r2 = openat(r1, &(0x7f0000000000)='./file0\x00', 0x1c800, 0x100) r3 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r3, 0x0) r4 = openat$sequencer2(0xffffffffffffff9c, &(0x7f0000000200)='/dev/sequencer2\x00', 0x200500, 0x0) preadv(r4, &(0x7f0000000400)=[{&(0x7f0000000240)=""/98, 0x62}, {&(0x7f00000002c0)=""/118, 0x76}, {&(0x7f0000000340)=""/183, 0xb7}], 0x3, 0xffff, 0x5) preadv(r3, &(0x7f0000000280), 0x18, 0x0, 0x0) syz_kvm_setup_cpu$x86(r3, r1, &(0x7f0000fe7000/0x18000)=nil, &(0x7f0000000140)=[@textreal={0x8, &(0x7f00000000c0)="0f306166b8009000000f23c00f21f8663500000d000f23f8baf80c66b805a6198166efbafc0cec670f20d1e203baf80c66b8fc69198766efbafc0cb000eebaf80c66b8be79348d66efbafc0cecd9f8f30f10bb9a03", 0x55}], 0x1, 0x40, &(0x7f0000000180)=[@cstype0={0x4, 0xb}], 0x1) preadv(0xffffffffffffffff, &(0x7f0000000b80)=[{&(0x7f00000007c0)=""/216, 0xd8}], 0x1, 0x0, 0x0) ioctl$TIOCGSID(r1, 0x5429, &(0x7f0000001240)=0x0) r6 = getuid() r7 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r7, 0x0) preadv(r7, &(0x7f0000000280), 0x18, 0x0, 0x0) r8 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r8, 0x0) preadv(r8, &(0x7f0000000280), 0x18, 0x0, 0x0) sendmmsg$unix(r1, &(0x7f0000002f00)=[{&(0x7f0000000440)=@file={0x0, '.\x00'}, 0x6e, &(0x7f0000000680)=[{&(0x7f00000004c0)="d7304653aa517f5f04e0a0476872b0d213a8516e446868a78589d1683f24e2febabe0ff40968a01c5249cba5bd9d48a4d984731e86360e795c27546e68fc49972b91fd38ec628530f6d801ede04f58aef315958d00586dab2c807f293add4f541f4e695b84aa5223627e286e1e56c9bdf5e3cae8462905f2a44ae607d5", 0x7d}, {&(0x7f0000000540)="80290e15e53428a3502956c36c832adf3623eacd03ec121b46365b01aceb9f0e7075c77f903fbc7c60650a2a0657e3f25ff05856eec9f65137ac21066ba9dc8b57bcc1c826a5b63e6543d34ab6e1ecb8b5ef71d3a522f568e0267b109d286702d7cc74b25ce7e846d491758a3d081cf7758b198ce07608e09cd9373ae42bfecba00437571310a69b776f7263717df658cfe1f3965ffa9bcb65077279bbd162af4384b88dadfd8966f989ed3ea119d604f81624368833bd", 0xb7}, {&(0x7f0000000600)="950ecde59a043cc98db85bdc1e6e910a171e5c40650e92d87a8a79961037dbf24dab126204e0f36c46caa90b80d7a47c88644d0075812f2d4036f8d90e0f53c5a341235d41d2f014dfb4715aba72d7cceb54db97349d8d65f0f1e937c51a6f8a277d4c818fc4a010ff", 0x69}, {&(0x7f0000001980)="d6373ca54bbbe0e1e17fd43c1d9e03063a34945cfdbf8784d1c2cdd605145240e38b7899adf1e41087801100ef9789ea16dd5088126208e4fb3a827d6f0c043f86ac2db758fabdd1379040c69dafa330da23cfedd4b4a541a2c8e3506bad3cb09c91d54f67cfa4119a404b4145a769e07d5b19a68f66ba98dde12e2772e7eee439415e5c756d87d9af846f9ba627ef40ea00f637413ac7e71662eb90a2aab0331f5171cdfcb1e4162bbaa31401f865d4f8f782fa49806395bd3d3fd92b24dcf8f514187c39b51dc334178844da8a3312b3066176e5c8892ffe2f3f3f22499f98f661581f6b61de6b021a56643265ea7fd416992c3b5451242e5f2f8b9ddd536f67bcf2717808cca43082d9369d0005622003b7bcce86992f3600cd3d98a14856299cb3bcca1b165141c7a598bf4c3e583387d65ea0836072c708aa2015d4cbb18d6607a74b7ee533c3325d6d4a72f8175bcce389b904e55ce0a70607452dee5fac3b88d918db0b893301b93ca659763302d33ef755d379819cf2fc0d096c4c1f1ee29fecf04548a65193d09ffb1709e34d1968da6c1295eedc8751e44e030ed787bf926bc17f42e3df8bed041d8320b813bc2aa907e0dce3e1cbbfda6c14090b706f67f45ebbfe5aee8c1e33708a1f78c45a1c8af5f5878073779b41d28888bd78ac904eb486e26033f7456475ab7c5c00cacaed2d384679703ee4e41c8e4109ee6521b14a9794b733c138aa16177364a742ae3f1c8a6ad18423ee1f00470b863ac58040201b860eb0652e0d74907b57657d6256fdee79572332db844c30a6f8cb0a54c1b37c1a950f556e9a11ff0c90ccfdf12e24970074f763435d1a3fe8cf4e97722e4599e6c6dbb4e424a549342893419786999f5fdd4b01d7bf50f99a59be7a6cebe839e30101aef2eba4935663fd6f6ab14ef92944e0d31040ab005790907bd1c0d42ae3cd7f1c4def94f133e9fa56ad661f67c0e4acc3dc59b15934bc4ae90b9179acf277232d0c0582d5f586668916f65b1954dc3b1cb4901a5e6f58b922b691f87ccf3705e2134268c1c872bd6ee3d1897b6df8c21f88e80e25de9cad7298c69e124f71341353e5dd81633a00705f6a32ae2c51f4729b64cef2106979bfbfe8f53a4e9fe80d68c9aa345abf8c9b3b6509a94a853ef0a45056132872b8bd9ccdb7dc5a7b7279960eea37b07b0e64378f1504a149f43fe00c78656e734cbe6e6936f13b30f7d199e05d20a209d3065340b4dec91cc7a8f27cc5ee9f5ec546fe62a2aff0a0a5f099970b8e51cde194d90d6f48abaa09abce08c07044e4ca0416b530332ced773e415bb3a417b25d73048bc5ba86c3758524921d8251e0248330c5412bf0f4e565ff83b3288c369088e06065f22d8e691f3b1671cff513680675063ca4bfa56f0bbbb0a82442bc7221fc23a38d6babbe56c762457799503150d9a450cc5f4d84af23a56c2edef158d81b9fa77bf5313df3eebffae68cd3aa6865be2630081ade13a50befee6ad4c3954ab4de7cbbc116844f3a5132f1d26b1ceaf0ebec097e7c835519fbd370293d83abc906fe55caba565eb29c2c409ee030158127a9bbd40b2de9f623ebc916b6fbfe8bf4a1c2c053e6f19a2869a6dcce5347745b3bed7a82f5b6660d414504db289dfc501b0613d28075e5c7b2871cd835568c898addbbff7846df07cc0010e1bc323a4d30a82350ba9c5b9a9b73654acfa24925ac80627759a9cadb51abe522bc0ac964a0093bf5bd244f7c4d814bb0fc74c99a48f32f3d5c0be0a9c833f283d3b7c4ff65e9a079804c67b000b4d23843e2d14d875aeac80b465b53796094a6deb6f90c11b00b106109d5fea0eb28db646a944c9af3195f49f87194ef6cf35cc05ec1d77b0c433793a4c06a5e4623f67a274231adb4c0a42ac6b7fc1aa5af414eee736b59e4cc9d046c633fd9701d9cd54a4adc567089de0d3c3b34ff66410f409a472f54fbb046a691b7e8335442d676e4f3c54340aacdbbaf9cce822833770ab9501ea6c02b6a26450d7936b3fdc277f655d8aa97798d698e601d782d96810fc56c902bd4d2fae084be4476404dcf5025692b8960a0f5e99bfa7b3ca4476c9e0f5628eec9480a69d66fb87baf712c201eac785441ae2c8e542fdece1b62df890ae31246f3fddb0b65cc50eeacfef69989e8f82b5261dfbbdbff0bc7b311463ccfa88bd44acf6fec9e63dea55a8518d6a4f725fc0596710fe4bcfd8bd67bb1bcc5cf877a295c389b606a408a03d5f9d2c69a6697207c4ff3434ce5ac1bb845f39ecad09c5972176c8c0b2f956ad7ff1bf33f3fcba7697cc1aad8921dcbc9f6b875f2c5d188ad7dcccc3721c0d310aa75ffc178386fdac3ecb281a5530818d8202ac2708104572f1cf601cec055945061faa53c28253cafbf4041e0e95ff0816d41fc532e7551d0eb1c2b8c5e160ec69791ec164cffdf00e3d6a8aa0e8df748cedb1a0bee49b486e684c4632219739ab3126b9115694b3dc1d0e4b1fd7f8b99c91c6fc77f68142fa2741ce165ebf4983615946ef002f27521eb6d9951fe8eba29d4d619a04fa31b7b16769a7f2dfde1e886f4540b36c22919b77ab48a8a7c41229f08982f38fa54955f610a7fd6867825855f187ba966b9447c0933737c86a8b196c6004f389afc9b5af44d9a7e53fc27c4eb522a87217d5dc8e085902a11b6b6150050f0d6b7ca8596a9797d46a72d604dc18cb8eae7f7763d61268eb42fd00836d63c847ba66d67ad1ce0ec76fe93ff635c6f2441a982f5d4f21b747097e33fd566fe21f4c3411c237f1b5107fbc5cbb71d53c3b8535f0c27502bf39f264f61dfc14011fc4686929bbfdbfe51636d2dc2a15d4b98176f368252468c56907d540330125240d37283ce491a64fb41038f1ef51a5ef8f57dbd0291940ffc6c045ea2a6bf42c2fdd3fadf30e4d99ecedee093ff5f7941448db77592b33fc6999bf03faee31e54412c00886ff564fbb69d5fce175dd9de6589a8c53e2f26e2b60f830997a60b7884711e10cdf7e072731f319a8ef253b01755d89a66bc00abc490cbd04fc09dfaf70e1cc1a685df1542e75aae3bfc568748c7ae4194344ff9f763f22fd43bb515238357e07eeb2a64ae0297a39c6d5d01cb99b0b492c8fba4bcf231ca33f9c99759150e010488864b70b2d77e1531a58a7084ebf5b59de71afdb33bbd7defdb7135202c434911fe034a9b4e2257f9afebbf3339134112e417298498ef322262a2c834653851139c21a6f278f94058378ff093b2c5af3379557cae458c72238fb0c8e19ae98eefab1ec203954ab8f2be21c3e1aaa2893e71d1e79cbafa9eeea92dc82b117bd9b5ccb3614dad5cd1c44c699102fce43a6d74f09580b9ce9697c5ed0d07fdc4a7a41a1a7bec25177787a8feeea65c8ba91ef66e2c9cf408b32f42f6cc936c4e35e5e9fe8cad16c0255bf75f2410c5967631105b56658762466a3550dbdd26104c140bd6721de952474fe51bcf68ff6114f268b00d60985ea3eca5f8fe66f4a4012c474fa0e3b61d1c5e80ea14b7deef8694b2970126c7d7cf05085d54f51b946e33e48e485d01fc4936dac369ab5d8d6ad7c52ed452d2255fdc75565826e155f32d89e3aa28e7f45f57640c24bd095854c5833304e6c7def8614dfad00cb732e0003a751b486663df36dbe30fd508ea14828fd16d23e3568bcaef05a8557c697e888fd43e145e5b58ea86c09dfead64c2660b5c30b651de6e230520db15d146fe9e68b6f4249fafe8f58fbb6bcb098f59b6a0871fd98fccd6b94aa5d1e8858c6f83bdc54d0d30f4682d7087848408ff0175ac83997decc5a443af388c2499358bda2dc7f8b6339fc020489ada83a2643f72f6c1e5f52680f852c86a8ced78cc58f464dbd03efa2750f79dbd4ed6015a6002d80ce06bb405ddb95877f93178847565a9f47f5bd402d4268c50240337afc9bd2ddcf23b8dd538fe4bfd47c08cdc79953c74306cf56f92bcdd40ef09db731eefd245d5dbf21aee28eebd2133be0de0da11f3e6db65dc0f9eecbd7ebc016cd0c71b38295606e352bba811033b1951fc1286d96dbb463a503bb6ae38e169be7c62a0b859d604917eba8c4ef40337ff775f87b24ea9af9137a5b2f5b48eda807978f4e56539b011d378a5589c05b4987e04d4628ab42347bf95db0d867b8a0fcbe154a5620707cee2115b38b295ffe2b4ce280ed047d9bd8af0ad403b8909d3a200cbc247b284ca36850e55a1d7484a095a8d71ae0b0c9e08a151b610e97922eb4f629178c447ae5792ee6a50ba2436404a0065b9f72cd961d4197d88bec7eeb685c1005906be1b6d0977672d4b1384c3d4939ff9db8dd5251e191b654621a0cee24549d4c9ca995b38b5dca6e4aedda0653f72298bf90f796f130374ff2345a192711219aeb335e217fb41b39a516fa0b55664962a534f1a2c7f11bd61c98429c2405a2c3fe0a517c5910ed519375cec05454be040cb63e9e2c6b10cfd5b8bc5fa928c981687a7f384a083016bc0bb81b4ee102ecb9c9048af5bb42ea4f0c91a0ed642856e0baf12ae9b836303e408985ab693bac06360b869d2f93760f9c148bf2a59c4212547e18f1189560ccf07720bb6bfe7e6626dbfc5417921ab66a100a9e1ac4a3dd7e3575247229e9676e9a6a914b09ea8b9afdbc71972ee59ba26abedce99e3a6bcd01d100da6a121f452c9e34cb9b68da57e3bb5a351ebd0af53f6ba967995205c8528ee88a608de137a9532bd1688cef01b91f9f603b2a73e0fdf79711fdedd91d6c8d2e70c34ec8498aa4b87f06eeeb1875b6e671f45eb4a1a2dcd91499f23008c4e662ac6d14a3d4319653671c722ae7362f5058118b18d554cbe4b1a26d35bba8bd79fe8e5cb0b3b65d6ee7968fdf39645e0421f3f03d791839cec176634afef4cf0c05ef047f6ecdca0e843fdcba85ceac85dd365ccc2616b38130f6abe52e11a45b7c6fc6e5f7120d072790273b35ded9384c517318c498066f11bf898f735e6641edd7fd643e5a6d50b6c616e8596793260ce9d29a541cafa4f76b7a6779bc13600cc08ed3b6ef4d3fb9fe1bd6446c1ca51482fabf4965394a6946c3b57db044a0b4528341ab8ad832b4485a1be642779a498908201ffcaf7c335dbcf7d47ae7f6346bed7de7f59e0df2b160bb7f2abe24f6fcbfcda3b1e6c4be1f72d0a1e91d2d6956a596f0eefc06c8b252cf926aa6881900cf3eb0b255fae0a3a91bc0aac17d1ac65c68e2eba8b3174a620e2d5299fdb14e80810acced7e908271b32d5ae4021f5b991727746d9008242ba83c91ccb017dbfb9cc1fae1cfb1482de71c0217bd733ed9c28ae67b083f45035223bc3e0f7c4c458f9246bb35c0b90891ba7e18d168631d8ec0dfd6e761fe795283fe441194c826f9f5ef37c1791da6c1d974514b6c3d182323d9c808e09371a0630049330382c01af832e1f2cc0c1070545d6d254a755ffb267a209538d7acea817a146c32df08fd51b628f3076825c8516b76e9b432e066ba7a9dea761de947f580fc8f2519f78fd896d2879c2d1d3dbd403b888f190bf4ea41e6b26026f9cab46d43423c2651aac65c8853a01ac81b22114320e8a6e206e803de37636d92aad4d03a21b8354a4d56da82caa105238f6aba710ab10016da1bbf855c857f6d8a38e44156067e003ac9f45d822a0a64346d22f4691d3c8fcfde585e58dc2363152d3b527fcefe47bf1756db2cbaac7abefad1363c9dd8fcf945ffb592cc4098320618723ad568909696faaea86dd539784742fa59f0a94785c7bffdbbf155d", 0x1000}], 0x4, &(0x7f00000006c0)=[@cred={{0x1c, 0x1, 0x2, {0xffffffffffffffff}}}], 0x20, 0x14}, {&(0x7f0000000700)=@abs={0x0, 0x0, 0x4e22}, 0x6e, &(0x7f00000008c0)=[{&(0x7f0000000780)="6f06a73506f220d9569103498c8fdbba00b29b", 0x13}], 0x1, &(0x7f0000001280)=[@rights={{0x38, 0x1, 0x1, [0xffffffffffffffff, r2, r0, 0xffffffffffffffff, 0xffffffffffffffff, r3, r2, 0xffffffffffffffff, r1, 0xffffffffffffffff]}}, @rights={{0x30, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, r0, 0xffffffffffffffff]}}, @rights={{0x1c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}, @rights={{0x10}}, @cred={{0x1c, 0x1, 0x2, {r5, r6, 0xee01}}}, @rights={{0x14, 0x1, 0x1, [0xffffffffffffffff]}}], 0xd0, 0xa0}, {&(0x7f0000001380)=@file={0x1, './file0\x00'}, 0x6e, &(0x7f0000001640)=[{&(0x7f0000001400)="4c6a7744af3014f5f2b6a3f17be65c79850df15fc403b83e", 0x18}, {&(0x7f0000001440)="5a72678a21c6d061a12fc35b7f0e65b779f3165dec688e018a94cee2e5a185d461c85b7708a10b2e368f9b2852f2bc42486fe7893a5dd8b40286ae60f826c98ae52e21adaeb8a0708758ebb0cb063f2f8029ef483726f3c8e74da71147555b09d42e8620d969a8123035648b594c70551da91b8ef77f1d26503f633e41f20b9cbeee41c9d01b7368c318c1e681b1a410a5a0a9a2f3a0e5e3a0858357376a3b6e95f1262b209f5354035d0a961e0d9c8d4ce79045589612138100758c9598d16bf960be22c99925ffffe93c3ae9ebfd3363ff", 0xd2}, {&(0x7f0000001540)="30771eef6152a6c06582ae6e3ed91b1ab83d6a0fcfd880a3377da55eb002e1da586a81cc063a061b54ba53e0d461bc804e7d22f48887efb2298d7ee1d4719feefe18f3b7ffc985054dcfcb458db988015727f21fc2f2a8693d4ca0e3ce50aefe674992a5fcc9545de1f59b1beaadfd42b36cf697b21f5954b79e960f4c3ac9ca24b111bb041f7b7af73d2956d8dc893926ca1a0c09de655c6ba4ef89bbb5bab350cfd7f30ab463761af00a8646e71d08be220d9f4428101bde6cd370bfcebea7a16470570b107ee8faa26d252992eff1067d7337a012afac23da", 0xda}], 0x3, &(0x7f0000000980)=ANY=[@ANYBLOB="ff004a27f43ec844f400000000000000000000000000c66e35f175738c7863353e925b23d58af299ab6c4b0413e2944c90d7541085228b0ceece7ff1c48fa8a5a83846086ffa8bdfdc66d85224bc5c0f28dc0f2a5e04281a432fc6867d6ea8f6ee58", @ANYRES32=r7, @ANYRES32], 0xfffffffffffffe68, 0x40}, {&(0x7f00000016c0)=@file={0x1, './file0\x00'}, 0x6e, &(0x7f0000002e00)=[{&(0x7f0000001740)="78988087968fee0757595bdcc76ef9fa1d072771", 0x14}, {&(0x7f0000001780)="8f33d966010367d80beb1f8bf093387ad95136fff7d87f5e53efd0582d42e976eb44cc5b23a6f68df5e5", 0x2a}, {&(0x7f00000017c0)="ee16eba62e9548ddab6292d1ab6d6c8846bbacebf3b9404c23a1ad7dfdc8b766abd508b694d9b7b86056555bbbd6b2e5c324f9a3136954104a7fc1265def94eb64c9e5a0f5428026ef2999ae97d8f406a88503486d24f2688d4383f3b662f14c947f10bda3fad7024e960b78bd63befacfee73945e0f39a2acca0cd9aea8c849fb0214e8f37c41dbb06a6ef89092124d1c1df3", 0x93}, {&(0x7f0000001880)="b26da40ce66bc3699532f3844d1109e5fb6923149fd874928bd53168e6e3bdda9a2db81a50b826777d97effa3d0fac15108e06034429f2a803155da06d05cd1bdb89363c6062a74e30ec42423887e560360d26274a8140e61c", 0x59}, {&(0x7f0000002980)="ad894baa6ebd249085b1753186ed2bf2d71f72470d9e76bf1b8b63f78e3d5f29220ac2b719dd6b3a8c4e78f7ed1fbb46780e3c099488d11c2c3bcb7be573a378fb1b6131af37d4a0f4ee7486d5add08bf963e70c04853760146b6aae3c2fff6e25805b4b87c1e20baa638050168c09132565885b25024ad9148eda2cc2ce1d5af86f28ca8b73d804c53ff55fe21c454a7a101abded67ef16fdb48b211898a9c18fd64ca0fa8aaca123afec2485b81d7a169158ea5adadf69382cb8e604", 0xbd}, {&(0x7f0000002a40)="9f9a5a4690c254db74342ea51cce3935f797ae3e87bf707c0c8134e46fe13ef0f5d2d046e6e1bbf52738ee987c01bde8e25fa9b6cf4f0c0dea66c11de94cda827a6d28a89520e8782dea4c171a0c392dd5b61dba5fd97f844207e017a90d5bb63c058aa5a1bd121ad39324e37e24cc4d317a641d94e04b6535a955a0697392e6d6abe8a30b97f0aa27175a576c78ab1e514c51602887b733f4e4beccb4179647773d304230ab7bc555f9c15b422b45ea155416a428332474dc55d1ecd95c48b6fe181ec8a848a3f857115792926ea326118d49df83ecc92d608015a845a6", 0xde}, {&(0x7f0000002b40)="8e7a6fcd37e7b13d5aa4200c7c628e618419cdc6eab3454fbb88e02b2e3d21c284b64b53e71d625def8ea932983eb79c43943248de595f543197ed9fecbdadca56a7e7e0338a7c55bb29fd2d6be452d8e94f1121964c2aeeb7cb00e5981eb0f41bb85c24735bf279aecf5750dcd1289384522311b8358851a27dd8ed4b7420119290b7e818f4cf3c697f5eaf990898c6e81b9b34a7c05643c63c27f9dbc53952fe953fa7ca1dacc7dcf7858cabb6ca6dbb0b1eb031bf3a2b67fe77d9793658a79cf7c01d4c183ce56a1645b9e00a6e67e9843de1a76a9751b8f04f98a15468f5d70b2f82946eb0c3554dbe0b95", 0xed}, {&(0x7f0000002c40)="3b22b3517a64cf33228d3c0636e69e4272bef817588dbe1cd407ea5516313aa2d59b7ff40597fb1ca708e04f0ceb870ebdcfa18ea8f55ea9d00b9e6d344162864be0dc4d9dc132f0381b507850f23727c40d20a620e21e9e4a917a0ae53637bde514944fd04a8731e0dc4196d62c73292589499cce3870d9dadc50b9021235424c06123603dd941e3194d316f7bb71c2eecae2e56694aabd7f479aa726816cb8bfd0187758940050704dee3fed89fd6b962f017df09de78e325eb828b6c4a899fcb4648e", 0xc4}, {&(0x7f0000001900)="1389fae1d2662d", 0x7}, {&(0x7f0000002d40)="64a13f99aaed25787f188313a60b0fc557569a9dd15b44c681bf5315964673f28f25fbf3c23e2b769c6f7465ee85e259f5a00fcef9a35a19f5b6329d7b796dadde2d4a42258ce78e7af9b4b15437eb93d2e780ce8b81a3daa0bb02ec5ea878d218cc2a70cbedf4de024a0c94f700db2461f8d4b21dd2b47abce5fbb6ea407ba4148925f195184347caaebe1b7603c471a3910d704e", 0x95}], 0xa, &(0x7f0000002ec0)=ANY=[@ANYBLOB="14000000010000000100000000000000", @ANYRES32=r8, @ANYBLOB='\x00\x00\x00\x00'], 0x18, 0x8000}], 0x4, 0x800) 05:19:02 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, 0x0, 0x1, 0x7}, 0x0) 05:19:02 executing program 0: r0 = socket$unix(0x1, 0x1, 0x0) ioctl$sock_ifreq(r0, 0x8914, &(0x7f0000000340)={'veth0_vlan\x00', @ifru_map}) r1 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r1, 0x0) preadv(r1, &(0x7f0000000280), 0x18, 0x0, 0x0) ioctl$ifreq_SIOCGIFINDEX_batadv_mesh(r1, 0x8933, &(0x7f0000000000)={'batadv0\x00'}) 05:19:02 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={0x0}, 0x1, 0x7}, 0x0) 05:19:02 executing program 5: ioctl$KDSKBENT(0xffffffffffffffff, 0x4b47, &(0x7f0000000080)={0x0, 0x7}) r0 = openat$kvm(0xffffffffffffff9c, &(0x7f00000004c0)='/dev/kvm\x00', 0x0, 0x0) ioctl$TCSBRK(0xffffffffffffffff, 0x5409, 0xab) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) syz_kvm_setup_cpu$x86(0xffffffffffffffff, 0xffffffffffffffff, &(0x7f0000032000/0x18000)=nil, &(0x7f0000000280)=[@text32={0x20, &(0x7f0000000140)="b9800000c00f3235010000000f309a090000006500660f3882af724d00002ed8dd0f0f6300bfc7442402c43a727fc7442406000000000f011424f30f090f013a360f0666b8c0008ec066baa100ed", 0xc62f98480d383858}], 0x1, 0x0, 0x0, 0x0) ioctl$KVM_CREATE_IRQCHIP(r1, 0xae60) r2 = ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x0) ioctl$KVM_DEASSIGN_PCI_DEVICE(0xffffffffffffffff, 0x4040ae72, &(0x7f00000000c0)={0x0, 0x98}) ioctl$KVM_SET_USER_MEMORY_REGION(r1, 0x4020ae46, &(0x7f0000bf7000)={0x0, 0x0, 0x0, 0x2000, &(0x7f0000000000/0x2000)=nil}) ioctl$KVM_SET_REGS(r2, 0x4090ae82, &(0x7f00000002c0)={[0x3, 0x0, 0x40000007, 0x0, 0x0, 0x0, 0x4cb]}) syz_kvm_setup_cpu$x86(r1, r2, &(0x7f0000fe7000/0x18000)=nil, &(0x7f0000000240)=[@text16={0x10, &(0x7f00000001c0)="66c192010000660f38823d0f72f0e2baf80c66b80acd048f66efbafc0cec0f01caea0a00b60071000f009c0060baf80c66b8a677738b66efbafc0cb000ee0f2318", 0x41}], 0x1, 0x4, &(0x7f0000000380)=[@cstype0={0x4, 0xc}, @cstype3={0x5, 0x6}], 0x2) ioctl$KVM_SET_LAPIC(r2, 0x4400ae8f, &(0x7f0000000640)={"f8bc812c1fa19754afac5496b20797897fb466182b7fdf5b7b14057126e2421fe0b8fb8d28f082d2ceabbf68af80f60cee4a3f7a624ab818a8deae021dd088d9c4e9f15eaa9cda3a8b928b8522044de8d782577795553029b8ce5b3b1052ce1d93d44999c3cb06c79b84a7818ff8614c766cbaea878981813b284e896c186bb35d0516d8dfddeedab8c9019e3d126a4a53dd079ab2d32814c11b585033c7f920400cf9d2f3f36be85e55b22263414c8f09a9407eb53208015789582b9fa1107895284948465095f5ea253890ae7ce2267e02afc725bd355428044c79fa8ddbc1af58c9f49850a2843ddab3e2d4ae25095a2b4d39eb7e080c488bb3a1c89d17b7e8ac46e9268a076b68941b272480a542ed95b45b326b7b49b04d34dc0095c204bdf7c8a8e084470be43585aaad9352fab995f042bdc8191d6dd9ce7bd2b82563cd820dae23708fd3941ee416227dbe63477e71ce343bf6bbd17438d0599fa4642b8d5c8ae87a2bd838233d725838e6059dcab70db8b0eaecf7bd7f203d50914303255e53b406dd56f795aad31abb20fc2f689a0f03b6b560c118a56d1fc56cd400dfa8b94511805eeeb0d103df2a5c6efeded54c556c5d26727ed932ae9be965220ef7198bfd45d0c55d986a3fd4a5ded43fb96335a0851c844a737796106e113729abfb1a9b248cc832cd13821fa9b2826f8cd183df40a57196ae59dee9c35148b8c839b0fbd87a7799b6e4e54d73c75d74dec0a63a2fd1b5962229c858e44695c7096864a451a0c9ca3c6a1a1e5271c23e32f5f72b9ada8654b7d3b80890094e1a915df9a7c88522a8cdef91408d254580e092021a69c6d5f7f6ba506b49b620c8ab9170cc90a568260aead7f029231891a58809c7d5a7ec3d9463549a58c6be9957e0fd3b83b997b7252ea0345c808e429fc19d6d1e8634a698c7a4a294e4e520c744abdef140f24d9dc7716cad445758563e0f753a392c4aebe256ad48ef42487798175b33f9ab1a00682a0fe85fd2dcf97fa30c7e80f914e70583aa8703e3ea179941247b3de686e9b089005bc2ef3ec45dcf43b0e5a8218301db7b40e9bf7c4280c5efc89ffa23b8119b2a79cdfa89367d6cb8fd2f04cfc45586f5c608efa7bc25103c3019f7ed27d1a6aa7e6348458e2f2699f979a5164437f8f6df02c98c32cb4699afd7b539368c82de11ea359c537cdb02b41011d54a968da8f876d28c69061c0a85d15bf01f1a3af5ad374bd523defceb1540f39c020b809af5e61be039850c50d2badc72e842f6a794115caedb14a81758f1926632f7e6c69829029bf0c3312d40b3a418bcba446206db6357effb80a199c3b52b1ef76715d1d8d2b3e33eb83a4d735d6abc431a3cb3e6bafa55304902482bb62a3a3eb8bb53eb85302fad8580637616a3e802c1a3a6b66b7ef91b50f7843d568cf40875f6d45b"}) r3 = fcntl$dupfd(0xffffffffffffffff, 0x0, r2) ioctl$KVM_CREATE_VCPU(r3, 0xae41, 0x0) perf_event_open(&(0x7f00000005c0)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$KVM_ASSIGN_DEV_IRQ(r1, 0x4040ae70, &(0x7f0000000100)={0x8fe, 0x0, 0x6, 0x407}) ioctl$KVM_RUN(r2, 0xae80, 0x0) syz_open_procfs(0xffffffffffffffff, &(0x7f0000000140)='ns\x00') perf_event_open(&(0x7f0000000000)={0x0, 0x70, 0x5, 0x0, 0x0, 0x0, 0x0, 0x81, 0x0, 0x3, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x4, @perf_config_ext={0x9, 0x3d91}, 0x10200, 0xfffffffffffffffd, 0x0, 0x0, 0x2, 0x6, 0x1}, 0x0, 0x0, 0xffffffffffffffff, 0x0) ioctl$KVM_RUN(r2, 0xae80, 0x0) 05:19:02 executing program 4: ioctl$DRM_IOCTL_MODE_CREATE_LEASE(0xffffffffffffffff, 0xc01864c6, &(0x7f0000000380)={&(0x7f0000000340)=[0xffff], 0x1, 0x80800, 0x0, 0xffffffffffffffff}) ioctl$SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS(r0, 0xc0045516, &(0x7f00000003c0)=0x4) r1 = creat(&(0x7f0000000280)='./file0\x00', 0x3) r2 = openat(0xffffffffffffff9c, &(0x7f0000000440)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x10, r2, 0x4000) perf_event_open(&(0x7f0000000040)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) close(r1) r3 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r3, 0x0) preadv(r3, &(0x7f0000000280), 0x18, 0x0, 0x0) write$binfmt_elf32(r3, &(0x7f0000000480)=ANY=[@ANYBLOB="7f454c461f810303f7ffffffffffffff03003e0001000000fe000000380000006d0000000500000044ed200002000500006d00000000000000000060faffffff1f00000000f8ffff8e4db568020000000700000008000000b36f6bc992c9dad03bd1747032b8cad5c361b5c40589d53c6773c7251aae4c87aae2bc2e5afd0b25e4651a05ed67a4d21f98cdf6aecd45124e104b1d867b6de4b1453fde1ca6a15fe219dade6138c66d4c534c615b6a4a9d935a234e45693df1f41e91dccbd92827387d22b28a2599c3afdb1cfe445bba8725683df88f15ae28f9f55194afa3e1ce508839f4f05135d206d8f9331e692a587830d0ec3e31075316dc0dd2a9d8bab6f08ca33b0325cd4afd37d9aa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800"/2572], 0xa0c) sendmsg$TIPC_NL_NAME_TABLE_GET(r2, &(0x7f0000000300)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x40}, 0xc, &(0x7f00000002c0)={&(0x7f0000000140)={0x12c, 0x0, 0x400, 0x70bd2c, 0x25dfdbfd, {}, [@TIPC_NLA_MEDIA={0x40, 0x5, 0x0, 0x1, [@TIPC_NLA_MEDIA_NAME={0x7, 0x1, 'ib\x00'}, @TIPC_NLA_MEDIA_PROP={0x34, 0x2, 0x0, 0x1, [@TIPC_NLA_PROP_PRIO={0x8, 0x1, 0x4}, @TIPC_NLA_PROP_MTU={0x8, 0x4, 0x1}, @TIPC_NLA_PROP_WIN={0x8, 0x3, 0x4}, @TIPC_NLA_PROP_TOL={0x8, 0x2, 0x9}, @TIPC_NLA_PROP_TOL={0x8, 0x2, 0x3}, @TIPC_NLA_PROP_WIN={0x8, 0x3, 0x7}]}]}, @TIPC_NLA_MON={0x3c, 0x9, 0x0, 0x1, [@TIPC_NLA_MON_ACTIVATION_THRESHOLD={0x8, 0x1, 0xff}, @TIPC_NLA_MON_ACTIVATION_THRESHOLD={0x8, 0x1, 0x6a}, @TIPC_NLA_MON_REF={0x8, 0x2, 0x800}, @TIPC_NLA_MON_ACTIVATION_THRESHOLD={0x8, 0x1, 0x1}, @TIPC_NLA_MON_REF={0x8, 0x2, 0xbf}, @TIPC_NLA_MON_ACTIVATION_THRESHOLD={0x8, 0x1, 0x6}, @TIPC_NLA_MON_REF={0x8, 0x2, 0x7fff}]}, @TIPC_NLA_LINK={0x60, 0x4, 0x0, 0x1, [@TIPC_NLA_LINK_PROP={0xc, 0x7, 0x0, 0x1, [@TIPC_NLA_PROP_WIN={0x8}]}, @TIPC_NLA_LINK_NAME={0x9, 0x1, 'syz1\x00'}, @TIPC_NLA_LINK_PROP={0x44, 0x7, 0x0, 0x1, [@TIPC_NLA_PROP_TOL={0x8, 0x2, 0xf03f}, @TIPC_NLA_PROP_WIN={0x8, 0x3, 0x2}, @TIPC_NLA_PROP_PRIO={0x8, 0x1, 0xb}, @TIPC_NLA_PROP_MTU={0x8, 0x4, 0x3d}, @TIPC_NLA_PROP_WIN={0x8, 0x3, 0x503}, @TIPC_NLA_PROP_PRIO={0x8, 0x1, 0xd}, @TIPC_NLA_PROP_WIN={0x8, 0x3, 0x4}, @TIPC_NLA_PROP_MTU={0x8, 0x4, 0x3}]}]}, @TIPC_NLA_SOCK={0x18, 0x2, 0x0, 0x1, [@TIPC_NLA_SOCK_ADDR={0x8, 0x1, 0x1f}, @TIPC_NLA_SOCK_HAS_PUBL={0x4}, @TIPC_NLA_SOCK_ADDR={0x8, 0x1, 0x4}]}, @TIPC_NLA_MON={0x24, 0x9, 0x0, 0x1, [@TIPC_NLA_MON_REF={0x8, 0x2, 0xfffffffc}, @TIPC_NLA_MON_REF={0x8, 0x2, 0x4}, @TIPC_NLA_MON_ACTIVATION_THRESHOLD={0x8, 0x1, 0xffff}, @TIPC_NLA_MON_ACTIVATION_THRESHOLD={0x8, 0x1, 0x5}]}]}, 0x12c}, 0x1, 0x0, 0x0, 0x4000}, 0x20048010) clone(0x100, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) execve(&(0x7f0000000000)='./file0\x00', 0x0, &(0x7f0000000640)) 05:19:03 executing program 4: r0 = openat$uinput(0xffffffffffffff9c, &(0x7f0000000080)='/dev/uinput\x00', 0x0, 0x0) r1 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r1, 0x0) preadv(r1, &(0x7f0000000280), 0x18, 0x0, 0x0) clock_gettime(0x0, &(0x7f0000000000)={0x0, 0x0}) write$input_event(r1, &(0x7f0000000040)={{r2, r3/1000+60000}, 0x1, 0x8000}, 0x18) ioctl$UI_SET_EVBIT(r0, 0x40045564, 0x4) r4 = fcntl$dupfd(r0, 0x0, r0) ioctl$UI_DEV_SETUP(r4, 0x405c5503, &(0x7f00000000c0)={{}, 'syz0\x00', 0x4d}) futex(&(0x7f0000000280)=0x1, 0x8b, 0x1, &(0x7f00000002c0)={0x77359400}, &(0x7f0000000300)=0x2, 0x0) r5 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000180)='nl80211\x00', r1) sendmsg$NL80211_CMD_FRAME(r1, &(0x7f0000000240)={&(0x7f0000000140)={0x10, 0x0, 0x0, 0x200}, 0xc, &(0x7f0000000200)={&(0x7f00000001c0)={0x34, r5, 0x800, 0x70bd2a, 0x25dfdbfc, {{}, {@void, @val={0xc, 0x99, {0x4, 0x63}}}}, [@NL80211_ATTR_OFFCHANNEL_TX_OK={0x4}, @chandef_params=[@NL80211_ATTR_WIPHY_EDMG_BW_CONFIG={0x5, 0x119, 0x7}, @NL80211_ATTR_CENTER_FREQ1={0x8, 0xa0, 0xfffffffa}]]}, 0x34}, 0x1, 0x0, 0x0, 0x82}, 0x40004) ioctl$UI_DEV_SETUP(r0, 0x5501, 0x0) r6 = openat$procfs(0xffffff9c, &(0x7f0000000540)='/proc/bus/input/devices\x00', 0x0, 0x0) pread64(r6, 0x0, 0x0, 0x7ff) 05:19:03 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={0x0}, 0x1, 0x7}, 0x0) 05:19:03 executing program 3: r0 = syz_open_dev$binderN(&(0x7f0000000800)='/dev/binder#\x00', 0x0, 0x0) r1 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r1, 0x0) preadv(r1, &(0x7f0000000280), 0x18, 0x0, 0x0) ioctl$BINDER_WRITE_READ(r1, 0xc0306201, &(0x7f00000002c0)={0xc, 0x0, &(0x7f00000001c0)=[@free_buffer], 0x49, 0x0, &(0x7f0000000340)="04f69abe1a2eef902d33d2f1c58d538e6f82f2091f74adad90114497764aeaf8f40847a96e63f833f4be9232334333dd84f18b172f03a9c49ba4bc2d409b17765e33a87a281e027de5"}) openat$cuse(0xffffffffffffff9c, &(0x7f0000000100)='/dev/cuse\x00', 0x2, 0x0) socket$kcm(0x29, 0x5, 0x0) openat$audio(0xffffffffffffff9c, &(0x7f0000000180)='/dev/audio\x00', 0x0, 0x0) r2 = syz_open_dev$video4linux(&(0x7f0000000000)='/dev/v4l-subdev#\x00', 0x0, 0x0) ioctl$BINDER_WRITE_READ(r0, 0xc0306201, 0x0) ioctl$int_in(r2, 0x5452, &(0x7f0000000300)) perf_event_open(&(0x7f0000000240)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r3 = openat$vcs(0xffffffffffffff9c, &(0x7f0000000040)='/dev/vcs\x00', 0x4a02, 0x0) read$FUSE(r3, &(0x7f0000000840)={0x2020}, 0x2020) clock_gettime(0x0, &(0x7f0000000080)={0x0, 0x0}) pselect6(0x40, &(0x7f00000000c0), 0x0, &(0x7f0000000140)={0x1ff}, &(0x7f0000000200)={0x0, r4+30000000}, 0x0) 05:19:03 executing program 5: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0x11, 0x2, 0x0) bind(r1, &(0x7f0000000080)=@generic={0x11, "000001000000000008fc9d71fc00000000000000f8ffff002e0b3836005404b0d6301a4ce875f2e3ff5f163ee340b76795008000f8000000000104003c5811039e15775027ecce66fd792bbf0e5bf5ff9b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ff42c65400"}, 0x80) r2 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mount$bpf(0x0, &(0x7f0000000140)='./file0\x00', &(0x7f0000000180)='bpf\x00', 0x40, &(0x7f0000000380)={[{@mode={'mode', 0x3d, 0x6117}}, {@mode={'mode', 0x3d, 0x80}}, {@mode={'mode', 0x3d, 0x2}}, {@mode={'mode', 0x3d, 0x2}}, {@mode={'mode', 0x3d, 0xa88}}, {@mode={'mode', 0x3d, 0x2}}, {@mode={'mode', 0x3d, 0x6}}], [{@permit_directio='permit_directio'}, {@subj_user={'subj_user', 0x3d, '.'}}, {@permit_directio='permit_directio'}]}) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r2, 0x0) preadv(r1, &(0x7f0000000100)=[{&(0x7f0000000040)=""/8, 0x8}], 0x1, 0xac52, 0x1000) getsockname$packet(r1, &(0x7f00000004c0)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000500)=0x14) sendmsg$nl_route_sched(r0, &(0x7f0000000240)={0x0, 0x0, &(0x7f0000000080)={&(0x7f00000002c0)=ANY=[@ANYBLOB="4800000024000705000000000000100000001f00", @ANYRES32=r3, @ANYBLOB="00000400f1ffffff0000000008000100687462001c0002001800020003"], 0x48}}, 0x0) sendmsg$nl_route_sched(r0, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000300)=@delchain={0x64, 0x28, 0xf31, 0x0, 0x0, {0x0, 0x0, 0x0, r3, {0x6}, {0x0, 0xffff}}, [@filter_kind_options=@f_bpf={{0x8, 0x1, 'bpf\x00'}, {0x38, 0x2, [@TCA_BPF_ACT={0x34, 0x1, [@m_skbedit={0x30, 0x0, 0x0, 0x0, {{0xc, 0x1, 'skbedit\x00'}, {0x4}, {0x4}, {0xc}, {0xc}}}]}]}}]}, 0x64}}, 0x0) 05:19:03 executing program 2: r0 = socket$netlink(0x10, 0x3, 0x0) r1 = socket(0x10, 0x803, 0x0) sendmsg$NBD_CMD_DISCONNECT(r1, &(0x7f00000001c0)={0x0, 0x0, &(0x7f0000000340)={0x0}}, 0x0) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)=0x14) sendmsg$nl_route(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000680)=ANY=[@ANYBLOB="3c00000010000d0700000000ff03000000000010", @ANYRES32=r2, @ANYBLOB="00000000e60000001c0012000c000100626f6e64000000000c0002000800010006"], 0x3c}}, 0x0) r3 = socket$netlink(0x10, 0x3, 0x0) r4 = socket$packet(0x11, 0x3, 0x300) getsockname$packet(r4, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)) sendmsg$nl_route(r3, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000040)={&(0x7f00000000c0)=ANY=[@ANYBLOB='(\x00\x00\x00\x00\x00m\n\x00\x00\x00', @ANYRES32=r5, @ANYBLOB="000000000000000008000a000f000000"], 0x28}}, 0x0) r6 = socket$netlink(0x10, 0x3, 0x0) socket$packet(0x11, 0x3, 0x300) r7 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r7, 0x0) preadv(r7, &(0x7f0000000280), 0x18, 0x0, 0x0) openat$nvme_fabrics(0xffffffffffffff9c, &(0x7f0000000140)='/dev/nvme-fabrics\x00', 0x80, 0x0) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000180)=0x14) sendmsg$nl_route(r6, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000040)={&(0x7f00000000c0)=@newlink={0x28, 0x10, 0x825, 0x0, 0x0, {0xa, 0x0, 0x0, r8}, [@IFLA_PROTO_DOWN={0x8, 0xa}]}, 0x28}}, 0x0) 05:19:03 executing program 0: r0 = perf_event_open(&(0x7f0000000180)={0x2, 0x70, 0xd8, 0x0, 0x0, 0x3a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x4, @perf_config_ext, 0x60}, 0x0, 0x0, 0xffffffffffffffff, 0xa) getpid() openat$procfs(0xffffffffffffff9c, 0x0, 0x0, 0x0) r1 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000080)='/dev/kvm\x00', 0x0, 0x0) r2 = ioctl$KVM_CREATE_VM(r1, 0xae01, 0x0) perf_event_open(&(0x7f00000003c0)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1ff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) prctl$PR_SET_MM_EXE_FILE(0x23, 0xd, r0) ioctl$KVM_CREATE_IRQCHIP(r2, 0xae60) r3 = ioctl$KVM_CREATE_VCPU(r2, 0xae41, 0x0) syz_kvm_setup_cpu$x86(r2, r3, &(0x7f0000fe8000/0x18000)=nil, &(0x7f0000000240)=[@text32={0x20, &(0x7f0000000040)="0f0836660f3a633ea4c4e1bc5649deec9a13000000fb00f00fb18500000000670f01cb660f388054fe04660f3a0aef07cf66ba410066ed", 0x37}], 0x1, 0x0, 0x0, 0x0) ioctl$KVM_SET_VAPIC_ADDR(r3, 0x4008ae93, &(0x7f0000000140)=0x5000) ioctl$KVM_RUN(r3, 0xae80, 0x0) ioctl$KVM_GET_SREGS(0xffffffffffffffff, 0x8138ae83, &(0x7f0000000800)) r4 = openat$binder_debug(0xffffffffffffff9c, &(0x7f0000000080)='/sys/kernel/debug/binder/state\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, 0xffffffffffffffff, 0x0) preadv(0xffffffffffffffff, &(0x7f0000000280), 0x18, 0x0, 0x0) ioctl$SECCOMP_IOCTL_NOTIF_RECV(r4, 0xc0502100, &(0x7f0000000280)={0x0, 0x0}) fcntl$setown(0xffffffffffffffff, 0x8, r5) bpf$ITER_CREATE(0x21, &(0x7f00000000c0), 0x8) setsockopt$inet_tcp_int(r4, 0x6, 0x13, &(0x7f0000000000)=0x8, 0x4) 05:19:03 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={0x0}, 0x1, 0x7}, 0x0) 05:19:03 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x0, 0x0, 0x3, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) [ 313.103936] HTB: quantum of class FFFF0006 is small. Consider r2q change. [ 313.115682] binder: 11029:11037 ioctl c0306201 0 returned -14 05:19:03 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x0, 0x0, 0x3, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) 05:19:03 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x0, 0x0, 0x3, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) 05:19:03 executing program 2: mkdir(&(0x7f0000000000)='./file0\x00', 0x0) mount$bpf(0x20000000, &(0x7f0000000100)='./file0\x00', 0x0, 0x2001001, 0x0) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1ff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext, 0x1c340}, 0x0, 0xfffffdffffffffff, 0xffffffffffffffff, 0x0) getpid() rename(&(0x7f0000000080)='./file0\x00', &(0x7f00000000c0)='./file0\x00') socket$nl_generic(0x10, 0x3, 0x10) mkdir(&(0x7f0000000200)='./file0\x00', 0x0) r0 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f0000000280), 0x18, 0x0, 0x0) perf_event_open(&(0x7f0000000280)={0x1, 0x70, 0x80, 0x3f, 0x0, 0x5, 0x0, 0x8, 0x400, 0xe, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x8, 0x2, @perf_bp={&(0x7f0000000300)}, 0x8, 0x100, 0x9, 0x4, 0x40, 0x1ff, 0x3f}, 0xffffffffffffffff, 0xc, r0, 0x0) r1 = socket$nl_route(0x10, 0x3, 0x0) inotify_init() umount2(&(0x7f0000000040)='./file0\x00', 0x0) sendmsg$nl_route(r1, &(0x7f0000000140)={0x0, 0x0, &(0x7f00000001c0)={&(0x7f0000000180)=ANY=[@ANYBLOB="28030000001000", @ANYRES32=0x0, @ANYBLOB="000200004a04000008001b0000000000"], 0x28}}, 0x2004) 05:19:03 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) [ 313.621667] binder: 11029:11037 ioctl c0306201 0 returned -14 05:19:04 executing program 4: perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={&(0x7f0000000000), 0x7}}, 0x0, 0x0, 0xffffffffffffffff, 0x0) pipe(&(0x7f0000000080)={0xffffffffffffffff, 0xffffffffffffffff}) vmsplice(r1, &(0x7f00000000c0)=[{&(0x7f0000000180)="77690addcfbe1fbb66ec", 0xff3b}], 0x1, 0x1) close(r1) r2 = socket$inet6(0xa, 0x3, 0x8) connect$inet6(r2, &(0x7f0000000040)={0xa, 0x0, 0x0, @remote, 0x4}, 0x1c) splice(r0, 0x0, r1, 0x0, 0x7fffffff, 0x200b000000000000) 05:19:04 executing program 5: r0 = perf_event_open(&(0x7f0000000040)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x0, 0x4}, 0x0, 0x0, 0xffffffffffffffff, 0x9) r1 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x800002, 0x12, r1, 0x0) fchownat(r1, &(0x7f00000000c0)='./file0\x00', 0x0, 0xee01, 0x400) ioctl$TIOCGPGRP(0xffffffffffffffff, 0x540f, &(0x7f0000000080)=0x0) sched_setattr(r2, &(0x7f0000000140)={0x38, 0x5, 0x10000042, 0x449, 0x1, 0x7f, 0x4, 0x3, 0x800, 0x7}, 0x0) perf_event_open(&(0x7f0000000140)={0x2, 0x70, 0x33, 0x3f, 0x3f, 0x3, 0x0, 0x1, 0x4904, 0x5, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x3, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x2, 0x0, @perf_config_ext={0x29, 0x8}, 0x8, 0x5, 0x619, 0x8, 0x3, 0x7, 0x5}, r2, 0x6, r0, 0x1) preadv(r1, &(0x7f0000000280), 0x18, 0xd9f, 0x0) inotify_init1(0x0) ptrace$setopts(0x4206, 0x0, 0x0, 0x0) ptrace(0xffffffffffffffff, 0x0) r3 = openat$binder_debug(0xffffffffffffff9c, &(0x7f00000001c0)='/sys/kernel/debug/binder/state\x00', 0x0, 0x0) ioctl$PERF_EVENT_IOC_SET_FILTER(r3, 0x40082406, &(0x7f0000000200)='\xa2)\'\x00') ptrace$cont(0x20, 0x0, 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, 0xffffffffffffffff, 0x0) linkat(r1, &(0x7f0000000280)='./file0/file0\x00', r1, &(0x7f00000002c0)='./file0/../file0\x00', 0x0) preadv(0xffffffffffffffff, &(0x7f0000000280), 0x18, 0x0, 0x0) ioctl$KDSETKEYCODE(0xffffffffffffffff, 0x4b4d, &(0x7f0000000240)={0x96c82984, 0x3}) clone(0x200d4880, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mmap(&(0x7f0000376000/0x1000)=nil, 0x1000, 0x0, 0x40031, 0xffffffffffffffff, 0x7b7c4000) 05:19:04 executing program 0: ioctl$FS_IOC_READ_VERITY_METADATA(0xffffffffffffffff, 0xc0286687, &(0x7f0000000240)={0x2, 0x4, 0x96, &(0x7f0000000180)=""/150}) r0 = openat$zero(0xffffffffffffff9c, &(0x7f0000000000)='/dev/zero\x00', 0x0, 0x0) ioctl$BTRFS_IOC_ADD_DEV(r0, 0x5000940a, &(0x7f00000007c0)={{r0}, "7615aa34096250151be05ed1f0bbe051e931cd85680ce92ca5df5a40b97e824d96a989db05bc387e3571315ae15002a9881421de7e9bcc342c1a82e5660e491015f6e4e6c93935e88686f548c72403f93a4a6f2c803aaa7c7fcfba5a1ac20c19265972175b2cc589462e1cb43bc300b8054caf6ba57b250fdbcfbb2a15650afd0d5f954a11dceb48a2744044212f2392e79dd59e627b20029c8d871e1c49c002852510ea2975004ccbae5092f15b8277ff7fbacecbf32fac351736be333a49b1a369620c919d22681ce2e57d5316f08acaab80ee7929d873dfa4525d28872cab048a03b0e2e23c1e3bafa40895769d44cd0384fe8e5faf25a3e8e394f2527fdbb7a1d62fc7ed0b62263d887f72a1b04f1c0410a98e878cb1b303759e62b263a0137bc8b49829ca65939bcfff8b475102118ce6dc31715b70d4f0c19bc34aa5a617e19c084e2b53485d1f27b44a9ef051a8859407e04d69f5546c6ceec40d25f92829c541a5bc0812763d93894f6486e8bcd4349283b26295bd7ee9d7318c7976f8f040d5e04e0cfb592bce748ed9f5cb9d49c1ed799a7a5d199004791510feba5a092b09d00e3b52e8b978b885ad6c82125e6b1f0302974d46f9d67fd09b9ee6b5c0169622d5b93a89d5474847a21d78f5b69549171e4a2a0f3dcd3dacc21790ec1bfcfcfec86660d6cd9b7655f19d9e5743ddedb245374806f40e68f19792c7492f33711f1568b2d1e94e174578fe643903eb713c72da267fafc0148787848b857c82e118db4c4b83115d068ab00f4594de04eff8eadfe868283781318ef73cef4baa024f4d5769d14061ccaac974606d605c2e9206a34311f8a0c03ca0f2676652ba9d6a316384d6b33d5da9a45f0f2bf6ae2e4d8ee9adf2d17d4d08d1b11c9246af3a4fbb319807efd8ca283436028b19cfbe71ad833916dc103583d8ea0bc181308a26af8301e30ed9cc9d180a3805ca36ab447b8bbb22a213927b91c692dc8576c64bc88bde7b63ae1143d153a432642cbb1247e5940a44ff5dad51a02ad88a01a7260267ec9f4f81ef6ccf55ff2ec2b95f771ecb02ee5decb7bf16f322c4672e0762b29103f7568600c4730f924704feff654fc29dca08a881518f2aa2cd9c0f7d0f5edaf609652d132b78124f36056bfc0af14f2befd66e868db75b14cf988fe6d134081a980c30cdf7cfd3c53f74493962fe72fb51b5d4531f2aa52c02438f241c9d68c98199781262edef0f6b77fc4825f6e217884c519f0f0c45738bf3ab475718f47d49c2d0089459d4c3a87922e1acaa2b0588c88b9b15cddb4de328211deac4f5e0583e905bd3742a9290558911d88fa5d86d50fc9ddac3123262ca0bdc684c8e02f8b62c63f7017a83671018f979ad5e495d653adf9ebc474b9573390c091e433ec0d8b98e36a31d3d7499777b41a15f807ca3c997006b8ab00859cb8a6eb371b4bb671671642c9805812f863109faffd8fccdd6579b6359c4525d9a20d41e894b721150ef246f071f5863e6269c5988e934d7a2d9d64309fe6a330169c4705125f88a4cc3772b56b258ad86412b097d0f0fa67521658a971cf473e6684fcab144e4a0cd19cc1e8fde2feeb5cb97f6c4e87941aeff9ae678758bee59152471416628e552dc501f51d9518fe2a33136005da5814301978c96c30e537c712f0313fd46e9953565892e48ad4057b4238d0707d9f8ffcdfcc6db91e44bf3f3423b147b8babada54239d33d2810f8586b51fa80d376033434a81d0dc9164b67b4ab46663835306213d4bfd3656432aaba8c58591ad10e3c6720aedebfa4239d2ac4a2438f557066b00aa38f7a3f041005f96e9356cff991022bbf748bf7f5d2f994d97b3baadf1a28ee088c287f18ac67b9b39490726efe41c599dfa95a0a0c2903452739b5c60fa82c4237c02492798790734083e4420cda6a4e1a1a86b4e8f4bd0c746596a63a94741cde21f3724bb711677b4c8c211fa8f6c05d7b3e6bc42a71edce4da655da78ac36af7af6ea6406739c313c976ce093ac332171e176b4d83a519869d64f3bd06a51d637588cde70a2fe65b31a3db55f0ab6308b3d6573528b5788a1510b61baecd54709e19419e925529cc8dd4bbcb287ac5e31d4584f705fcf4343a47f988e086cc686ecf8f711e0b0ce2fc3d1452fee22a2fc87821c6faf6db197aa2de1b191b23f3448b6fb2ccf9c10938bf34b2ac23d0559851b6d5c93fb674a8332f1927dae2685a3f16f8058dd36e0768a7dd7703a9dff618b22cbaaf8746d4900a4a15f030e7821d54cad8883c2cb024cc67a33dc4b908caf002cf8442ea79956a7397270cf49a1b7bde3f39508423ced429eee386f3cbb14466a415dda8c9d7c468eb01519c16265071eb25b21a5ef802c1e81aba0e27c5fafd4589994bc895be30be95e8bcef723a2bd5549603fdff8b4c5678746491dc1dba921e6e205803409d4eee9e51e4108fc6a1774d0ca5051a6483361603562f6b88a2a8b7b821bba9bdc0360feed1377898671bc74c487a6162424cc7a1a025d27fa25ddf7b8c5f836cf5d36d0e3533ba5aa77b746aa967829a78c23978a283bf837404b28bb40313584feff661652de86bf5714cfdd4db76799b08a783dd00aa61ac6be156b11d99d519644a002320c45af240413467b8668c5503dc2b29cbeff1050cc12173c69fcd01ec2568b959cb5fa9b8c9bfea02b59d2f9e7fbc73f73b151bd6fd1b321571531a67a60ee55687c001dd5ed4cfa9cbe0b2890bf73cb6e8e0b63da95d76bfe295861b86cc574f6e73f48981c79fe96354e5903791282e0175fc9c9aff6e6198d28e246a83abb6878ed109c336e279fdd00944c65248a05336e58e5c177202ac9537ee3dc5720c6fd2c265cc712eefb4d471024d2e064c84fc3d809264b14c2778176fa03d3a7e1cdc9f88a9012f57a5841858ec20d48c78e3101005997b5f832157cd42c781f41251e8add130607fde3bc315c303a6ea24fe68e9a58735ce6466f0577106435c71b86ca94eed93d56098c74394027844e7cf51cd59cbe735c37f9778f720b6997ebcfad605f9e0b8794bf0d241cdca702f949f602d61e3192bed6811f6d9eb9aef3092ff350483d9e2e866b437ac279773427f99243374d9f3e1d0e3608e048181c178e26a6972431785c34ac48f8747523e083773fb6d0a5cfa8bf294d1bc940c40bf5d20bebe428b77b605182644e02d3ba4beb28d1eb6d2d8e15ae0dc78a9123e6ca7a8ab1f74c484afe1ec559b7cf9b56c5bb18516ed20737a69bf3ca030685a50d38490543c888de09bc432194838aefb0da901146ff4e472b6bac03164431a5a5d2cba9e95c406677dd098e6ed7cc50a9055f2ec0a2d9e71d304a44b1f829c0a3025fdf1a730b6b3b809113c25dc14163c14cb3d1742667c2441c946329f9f3ad637f33369d04c41d0f1a9b4761cf2c1bd61ca0d0400c92bf743a6fbb2ec1515dc6df24d6982b6e61f95d3ea95fc8bac8455f6122dbf0c4ca0b46accfbf27582b0cd8bebdb5648e5bd1e9a59f48296de3a13de2012102971f8b38dd952970be6c1f75e0e12978c890baf18c8f7b92817bc6862d42f9595df6c13fd7cdcb02f1903838236da979551ed421d936189d87c05f51f6af21a4a9026ae43a4f9e0ee3eee23516e7a320613a20ae76ab1b664e6ebc2f2f1fd1f06b25b2f7ff8a0d709b8be349b7b024ffe393918f360849b38a8a6649ebd3b2afbe4a53342a556c04f3ac71184d2a0deae90cf010ae0c01bc01caca4e73a291f581653f5438f59026bacbf4d4422e2ab6abf68551655bf15bfaf406fb352b69b3819849873add6d7f59092edc239db4fd3eeeefaea9110a144febb53a3c0a1d0831e6725e9306c4e5934eb61e9cb82b6764fe0a33cafb4cb5442ec8cb4c1af5afdc1ecddd523c8a18d6cd433f496a95e010bb3c68dfe08f7267c1433da6729f00f9e8fd59aa3a8384c175cb0ec3cb7180c5a17084b94f01f2fc83d37085c2abc6888c27b56af153302bad67f77628287dd9564b6358b0737e925a2e9805bcb74ce08a873b77b66f275b217aa81358d74c51bca71645015dc7bb87b3b43425deb31491a05819c82c2f7d04151741371cfdaddd0facecf9f0c2caaec5c2862031449085ffba14b591a6c93a13cf913c2b70fe3ea960e8bc7f7fd6945c051a417c72e116a28867aa8c9700ccbfafe4916bd02a5fa2d8f612a9bd295f695d9cc5779b1b6f39345fa13bcbb8524b9554b0168844b2788521f0c80549559b6af011de932aa81b9e96f4f44062a7adfb01e91fb9cceb396924b40cb733aceae3108976289f84f6ab230da1e0d02da067143f9e0e61f3463c0209023d4d07d42d309fbb364ad1e81d5479765a1e095c912d3b273a215975cc54b31ac013cdeb4af9972abf9d648e29f9822131ebb1d00f792e347fdc9a7b14caf248f1a221a7a7eb0db1354313fc7fe410044e58f4bfd622dd9f33d1e9b37a8f3265b3f0dc560cc763dcc6ff18c149fc8a08d3b1ace4dba92a41927fb13375662f1be015866942ef622d9695b035a9ebf52c1b0abade14b63f41600672a6d991b15d16226716ab8396402a1a7e93cc2d63169d6a9a77b788aab061a80b7fe740615e3c9582a0bf37e5a598ee8306b17bb11782d13e29de981ac78a89aff981f9884fef3468a2e3266a9ca05216737346913365c162890d81c487b5178f329fbd2d21f0cc8668dd723147d0f4d351d942c7ef958b042571e55c0620345405b218a02ebb88e6d4a8ac23eb0359ef36c709decbf18e570d34b48f783a7bd9cc6d0988f488f22eef7682182f2e68daf4264e4e7709666d306b735c8e77d6b398b5cee60300d22b644599cda427c0f99e1e6be262916157d4cc34f0e0b51d4b7b1afa6f099b2edf44e9986176211d07ecab2cd6577702902f7d9ac6af7e523dc77baa48bde8a2be6e123994f256f1a7cbbfa1bde1db1b377e58e29f93ee07292a7fc51e25e04b2f5dfed7b9ef40e6a8c6949dd2072776a85232fb6255a4d797e4ef6dfb31ed172d444420148da8a02c37612b861f50bbf4178675923bc7fff4ef6a85f04f5dc42ac025d3f860a22450c39241f8f9d943181bbc8d89b98b836d5973ca0acd39ea276e1582c3f030c850f39ca70ce0906236e2d591ccdcb8ef92585b7b1595fe9d783a1dbe2bb717bf7184ef7baa69c5b6939604b620269021ae16f730518bc4103a9a610a2e93d848bed0ec2e454021092ebd9280c008c58035c6f2d185a3765e4ca1cd645eb07e19ac74749c1ba1f44dfeeebe18cde053bc991bb79e74c7f998a9371a8b4cfbf2924ebcab8cae9715dc619590f0d9c8c43fa5215af10771d1b8714446bbbe669306c973270acef2d68c300b0729184c6ef21a1e2dc4b8b31daee0eb419528f8ea540d40cfe49a163ca8f542fa836175931b4705c913899d42b7d29f9b1db6bc554593c01ccd9c8db9f73ce148cf835908aea43704f39f358e5ce3d753a13321a70f8a1ed424e18c9f7714050630494d79e0c2d1ed24f6fb14f9051908402d6d2ece63069fecaf7a57602685bbe146e0cea7f111411d9c9b364c1e710935fdf11b64738858be1fe717c936ac7fbe104fc72c4e71e98c5d00c908ddd66ab56cc461b5b7fdcfd19c7731cd6c81565cdc992b57e61a7dfd91a494233c7570d647fb492db0bf6a05157e2d66c914ab7719c3d2a62a048a918fae694141a72e5e940088bedec38c3c5498d3298c3e78369c7384de82e46e96136920b5d119a368a0396a76dec54a031b2fb6addd5e85"}) r1 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x214040, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x3800004, 0x12, r1, 0x0) preadv(r0, &(0x7f0000000280)=[{0x0}], 0x1, 0x0, 0x0) mmap(&(0x7f0000000000/0xfbe000)=nil, 0xfbe000, 0x7, 0x31, 0xffffffffffffffff, 0x0) r2 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000)='/dev/kvm\x00', 0x0, 0x0) ioctl$KVM_CREATE_VM(r2, 0xae01, 0x0) dup(r2) r3 = socket(0x11, 0x800000003, 0x0) bind(r3, &(0x7f0000000080)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) getsockname$packet(r3, &(0x7f0000000040)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, &(0x7f0000000000)=0x14) r5 = socket(0x9, 0x2, 0x0) sendmsg$nl_route_sched(r5, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000100)=ANY=[@ANYBLOB="220078d598c01831ab9d44b807510c06cf0f1900000000000000e3fe260240dde1538d9b6fe39b2bf8aeffff557847d4c0b754", @ANYRES32=r4, @ANYBLOB="00000000ffffffff0000000007002100667100000c00020008000a0000000000"], 0x38}}, 0x0) 05:19:04 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) 05:19:04 executing program 2: unshare(0x40000000) socket$netlink(0x10, 0x3, 0x0) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x3, 0x8031, 0xffffffffffffffff, 0x0) r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000)='/dev/kvm\x00', 0x0, 0x0) ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) preadv(r0, &(0x7f0000000100)=[{&(0x7f0000000000)=""/63, 0x3f}, {&(0x7f0000000040)=""/109, 0x6d}], 0x2, 0x8, 0xa5) getsockopt$sock_buf(0xffffffffffffffff, 0x1, 0x0, 0x0, 0x0) r1 = socket$nl_generic(0x10, 0x3, 0x10) r2 = socket$nl_generic(0x10, 0x3, 0x10) r3 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300)='nl80211\x00', r1) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000480)={'wlan0\x00', 0x0}) sendmsg$NL80211_CMD_REMAIN_ON_CHANNEL(r2, &(0x7f0000000580)={&(0x7f00000002c0)={0x10, 0x0, 0x0, 0x400000}, 0xc, &(0x7f0000000540)={&(0x7f00000004c0)={0x4c, r3, 0x100, 0x70bd28, 0x25dfdbff, {{}, {@val={0x8, 0x3, r4}, @void}}, [@chandef_params=[@NL80211_ATTR_WIPHY_CHANNEL_TYPE={0x8, 0x27, 0xf6d50cf44b278aac}], @NL80211_ATTR_DURATION={0x8, 0x57, 0xfffffaf3}, @NL80211_ATTR_DURATION={0x8, 0x57, 0xa}, @NL80211_ATTR_DURATION={0x8, 0x57, 0x1f}, @NL80211_ATTR_DURATION={0x8, 0x57, 0xaf95}, @NL80211_ATTR_DURATION={0x8, 0x57, 0x7ff}]}, 0x4c}, 0x1, 0x0, 0x0, 0xc800}, 0x4000800) perf_event_open(&(0x7f0000000340)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r5 = syz_genetlink_get_family_id$tipc(&(0x7f00000000c0)='TIPC\x00', 0xffffffffffffffff) sendmsg$TIPC_CMD_SET_NODE_ADDR(r1, &(0x7f0000000380)={0x0, 0x0, &(0x7f0000000340)={&(0x7f0000000280)={0x24, r5, 0xc15, 0x0, 0x100000, {{}, {}, {0x8, 0x11, 0x7f}}}, 0x24}}, 0x0) 05:19:04 executing program 3: perf_event_open(&(0x7f0000000100)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0x0, 0xffffffffffffffff, 0x0) r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f00000000c0)={0x26, 'skcipher\x00', 0x0, 0x0, 'ctr-twofish-3way\x00'}, 0x58) r1 = accept4(r0, 0x0, 0x0, 0x0) setsockopt$ALG_SET_KEY(r0, 0x117, 0x1, &(0x7f0000c18000)="ad56b6c5820fae9d6dcd3292ea54c7beef915d564c90c200", 0x18) r2 = accept4(r0, &(0x7f0000003480)=@rxrpc=@in4={0x21, 0x0, 0x2, 0x10, {0x2, 0x0, @initdev}}, &(0x7f0000003500)=0x80, 0x80000) setsockopt$ALG_SET_KEY(r2, 0x117, 0x1, &(0x7f0000003540)="83025de43ab79b7c3e258c0697cde76cac80bf457d2680b1cd3dd5563b8b79fb3f2c7b76bf47eeeaabe2fcb6b71cfe5757fda5ae5d15ee338a4cc29d611b74f864cd3b52c575296b312896fbcee44519925ee84f289d977b7810bbcc0f26147a28a9e52e8b67d892db4ecc00d3ee03d771a7ebf672f13de15f6c9ee697bc706c3e8ed47779e4d53237f0ff191b6a102e46daf70887c0e679976e1c882fafa86c2f2b10f7c477161f7f2e5b51e1c7f3eb589d6cf6f9bbf84a20", 0xb9) getsockopt$sock_int(r0, 0x1, 0x3, &(0x7f0000003400), &(0x7f0000003440)=0x4) r3 = socket$can_bcm(0x1d, 0x2, 0x2) r4 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r4, 0x0) preadv(r4, &(0x7f0000000280), 0x18, 0x0, 0x0) accept4(r4, &(0x7f0000003600)=@l2tp={0x2, 0x0, @empty}, &(0x7f0000003680)=0x80, 0x80000) recvmmsg(r3, &(0x7f0000003280)=[{{&(0x7f0000000000)=@tipc=@id, 0x80, &(0x7f0000000480)=[{&(0x7f0000000080)=""/56, 0x38}, {&(0x7f0000000180)=""/141, 0xec}, {&(0x7f0000000240)=""/126, 0x7e}, {&(0x7f00000002c0)=""/220, 0xdc}, {&(0x7f00000003c0)=""/187, 0xbb}], 0x5, &(0x7f0000000500)=""/3, 0x3}, 0x3ff}, {{&(0x7f0000000540)=@l2tp={0x2, 0x0, @private}, 0x80, &(0x7f0000001700)=[{&(0x7f00000005c0)=""/179, 0xb3}, {&(0x7f0000000680)=""/109, 0x6d}, {&(0x7f0000000700)=""/4096, 0x1000}], 0x3, &(0x7f0000001740)=""/84, 0x54}, 0xbd6}, {{&(0x7f00000017c0)=@pppol2tp={0x18, 0x1, {0x0, 0xffffffffffffffff, {0x2, 0x0, @dev}}}, 0x80, &(0x7f0000001b40)=[{&(0x7f0000001840)=""/74, 0x4a}, {&(0x7f00000018c0)=""/39, 0x27}, {&(0x7f0000001900)=""/109, 0x6d}, {&(0x7f0000001980)=""/231, 0xe7}, {&(0x7f0000001a80)=""/158, 0x9e}], 0x5, &(0x7f0000001bc0)=""/6, 0x6}, 0x1f}, {{&(0x7f0000001c00)=@ipx, 0x80, &(0x7f0000001d40)=[{&(0x7f0000001c80)=""/33, 0x21}, {&(0x7f0000001cc0)=""/107, 0x6b}], 0x2, &(0x7f0000001d80)=""/184, 0xb8}, 0x3f}, {{&(0x7f0000001e40)=@caif=@rfm, 0x80, &(0x7f0000003200)=[{&(0x7f0000001ec0)=""/85, 0x55}, {&(0x7f0000001f40)=""/98, 0x62}, {&(0x7f0000001fc0)=""/4096, 0x1000}, {&(0x7f0000002fc0)=""/74, 0x4a}, {&(0x7f0000003040)=""/186, 0xba}, {&(0x7f0000003100)=""/12, 0xc}, {&(0x7f0000003140)=""/141, 0x8d}], 0x7}, 0x401}], 0x5, 0x1, &(0x7f00000033c0)={0x0, 0x989680}) sendto$unix(r1, &(0x7f0000000180), 0xfeed, 0x0, 0x0, 0x0) recvmmsg(r1, &(0x7f0000008140)=[{{0x0, 0x0, 0x0}}, {{0x0, 0x0, 0x0}}, {{0x0, 0x0, &(0x7f0000006e00)=[{&(0x7f0000005e00)=""/4083, 0xff3}], 0x1}}], 0x3, 0x0, 0x0) 05:19:04 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) [ 313.970098] IPVS: ftp: loaded support on port[0] = 21 05:19:04 executing program 5: r0 = socket(0x2, 0x2, 0x0) r1 = epoll_create1(0x0) epoll_ctl$EPOLL_CTL_ADD(r1, 0x1, r0, &(0x7f0000000080)={0x60002002}) epoll_wait(r1, &(0x7f0000000040)=[{}], 0x1, 0x4000d898) r2 = openat(0xffffffffffffff9c, &(0x7f0000000100)='./file0\x00', 0x46081, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r2, 0x0) preadv(r2, &(0x7f0000000280), 0x18, 0xd9f, 0x0) r3 = dup3(r0, r1, 0x0) ioctl$int_out(r0, 0xa8c0, &(0x7f0000000140)) pipe2(&(0x7f00000000c0)={0xffffffffffffffff}, 0x800) ioctl$TIOCSBRK(r4, 0x5427) ioctl$BTRFS_IOC_QUOTA_CTL(r0, 0xc0109428, &(0x7f0000000000)={0x1}) r5 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r5, 0x0) preadv(r5, &(0x7f0000000280), 0x18, 0x0, 0x0) ioctl$TIOCGPKT(r5, 0x80045438, &(0x7f0000000180)) shutdown(r3, 0x0) 05:19:04 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xe, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}]}, 0x70}, 0x1, 0x7}, 0x0) 05:19:04 executing program 4: prlimit64(0x0, 0xe, &(0x7f0000000280)={0x9, 0x8d}, 0x0) r0 = getpid() sched_setattr(0x0, &(0x7f0000000040)={0x38, 0x2, 0x0, 0x0, 0x9}, 0x0) sched_setattr(r0, &(0x7f0000000040)={0x38, 0x1, 0x0, 0x0, 0x3, 0x8, 0x2}, 0x0) pipe(&(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) sched_setattr(0x0, &(0x7f0000000100)={0x38, 0x0, 0x0, 0x10001, 0x9, 0xcd47, 0x20}, 0x0) fcntl$setpipe(r1, 0x407, 0x0) write(r2, &(0x7f0000000340), 0x41395527) vmsplice(r1, &(0x7f0000000000)=[{&(0x7f0000000500), 0x3528a9c0}], 0x1, 0x0) sched_setattr(0x0, &(0x7f00000001c0)={0x38, 0x2, 0x1, 0x0, 0x1}, 0x0) r3 = gettid() r4 = creat(&(0x7f0000000240)='./file0\x00', 0x11) write$binfmt_script(0xffffffffffffffff, &(0x7f00000003c0)=ANY=[@ANYBLOB="55f604001865355710044e9ab25cbd5fc6feb9d686d7157f0798b3af4999136fa7dbadb24931cc7c2e5b2bedabfce853913332a403001d969e7d95e94a3c12f5f82ed153af53bc6c545c2f1db20800000090aa425a9c259ff6d854326060a0ea1715dfac4f3c43d52063107bc169e0269827a63de5ef09baa06cffcb3c430e7fed8593a00fe1f1e8db0a4a5eaee70a54537b93cc35dc235a1fc840947c2924fd550e0f9808d32e99585c331d9260d73ac5bf306f15b1f9baaa5ced011227a4"], 0x141) prctl$PR_SET_PTRACER(0x59616d61, r3) perf_event_open(&(0x7f0000000040)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x401}, 0x0, 0xefffffffffffffff, 0xffffffffffffffff, 0x0) close(r4) clone(0x2000100, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) execve(&(0x7f0000000180)='./file0\x00', 0x0, 0x0) fork() ptrace$setopts(0x4206, r3, 0x0, 0x0) 05:19:04 executing program 0: socket$packet(0x11, 0x0, 0x300) r0 = socket$vsock_dgram(0x28, 0x2, 0x0) r1 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r1, 0x0) r2 = openat$dlm_monitor(0xffffffffffffff9c, &(0x7f0000000000)='/dev/dlm-monitor\x00', 0x200001, 0x0) openat$incfs(r2, &(0x7f0000006dc0)='.log\x00', 0x20100, 0x1) preadv(r1, &(0x7f0000000280), 0x18, 0x0, 0x0) sendmmsg(r0, &(0x7f0000006b00)=[{{&(0x7f00000000c0)=@tipc=@name={0x1e, 0x2, 0x1, {{0x43}}}, 0x80, &(0x7f0000000480)=[{&(0x7f0000000140)="afab9aa0b9847f06d4e8b6840fdf2165a67ed01b7d2a3467e007250683350a5e5ba4d81d07ec1004af1f29bf60379a9605946d6da14ad97dcca6dc996fb9e5616d9525b5ee1062fbecb86db397265f5f3aaba90dd1352340e17a6ceec5dfd633e89626a3279d97c3387ba9c60c783f47388359145f7d43d51fd54a7f885651de6df524be017dfdd7450ee663814f6cf1d4692eb45a4b036a59b9d8c33b09a4f8f7ea080682465bba6b4ab331e7afa93893b0dbd0a7baff64fa986f4e952a418e2d9cdb5c91762282ab618d37a0708d6da63d746eb61ed177a299950b", 0xdc}, {&(0x7f0000000240)="153705d217615d19c45236ce289edfab606e511c4022f01555ddaebd25fd3fe38a5494deaeb899da440fd08c3afe1a8bcc5fa7ce3132b00858b5b10dda47ac08c41dd82f73474f5e4cb9fb1cf85e2891eae21e70501add3acc32a641d7d01a6447c046ebd1eaab79ccf4db392507d2577ef3d592b40e8421ad1851684c3cb6fe6596acc283954bc53bb73e697cbf0e7fe120c45fa98a5a472afb52914d64af154417f0089f3da6422346fe9cd272a876adeccfd056ca3f28a0c38908de14ea28f6ba9a2a9b92f2633415f6fe91cb8d15abc807b6fb58bca47394742eb257ea", 0xdf}, {&(0x7f0000000340)="e73e773f8a562b5da9e1c4a30d72164fe5f040b76cb1fa44543d", 0x1a}, {&(0x7f0000000380)="4c7af2e415cd2d5feb40a78834d46758", 0x10}, {&(0x7f00000003c0)="9711bdf871df54acf8a0228f2a2c53f767989b0a5d3f4be186f9bc5ef374145da4bcdd3b9f930d31ef15f6dc86aed6af751267", 0x33}, {&(0x7f0000000400)="6f9d5ed4351409f84d8c253aadb267da856985bcea41bca6d07600ef8a2d97bf36c9e719be61fb19810a5daa67c263f96662691534e46eaf06298e764b388d8af695cfd6772c5d1ca4e366c840aecab3a643dc44edb2c96cda85f9e266969b5ef74924", 0x63}], 0x6, &(0x7f0000000900)=[{0x38, 0x0, 0x1, "0ec922970b8c5809e3431184be672d3b1459303da004744963a263a7fbd0b63345af82"}, {0x100, 0x110, 0xfff, "3e3b3a2a9732270973fc9ef483607500a7286a1bf5ecdf0b74a3f2beb444f6082bb8be609d0220e42198701930c945fa804b70de0c50f8c13b9e9403542b4a9f602988d13863c004d337405609c13ae450d48ee79f81a1b139004d535e223e6fbe27b6666af3541423e3c8861e41060832694afcf31f30525e3c9b0bcb2c2cbc38ad5acaec1d15229340117b43ed9ce4870c16fe44856e15e80b62009ca70836eea4144f703b0eaef8c0a8fb40e540a8a3a91d233522397c12da0f900c166ca25fd4a31544b44ff9f649fc44d167919d8bfce10cea470562c457475563e318e903489fdde3d6fcb9d6c5924389da53"}, {0x78, 0x10b, 0x6, "e73d4696f2ea8318ffa4d1f083e1c3a0983638e01a7b2f808ba0ea40db4a171113394436a6a6749d7a9a1291a3d8afdbca6e31e65507801109cda88894bcbb0ebc2a627c65df3bf81117fdf4b718007737f650a8c7c0bfcd128072c0bf7da7424a77caad"}, {0xe8, 0x11, 0x5, "86a179b7b905586693accf57c7b2e5e6382af11028725fe98e3d07d0a2fcca52c7641b350dea1fd8255c5a3d85f640147dba2e4a6ebb8fcf22de436a0a7259e312d2c5470193aad8f84be4809afd47ea83c0600d725fb0839e7dd9bd261c82ae5eb7bf8c776a9180f25e4a165fbc142b4fe881779403073178b7495ddd266b51620c2b19aa4fca4581ff382c0d8cea008b2f21fd20ce7f70223c39a9d773a7bd46d9a59507f93c35c6c805b16e3eca09daa5072fd196d7649f407211a02f5bb5cf75bbfd4f674570c90ba806f31c74e7e9"}, {0x100, 0x1, 0x8da6, "3620630a8de096c2146220bc82b9bef3f907ab55d0e7d085b6fefa083d17a5e8c8f1a4e03efa2b2335c70c30306e8839c2452a94376cfefb60924b6a2ff5c9d3c908d19a0b41f1b75969d9ade6dcf3f58c8e66f81f893934bf394ee42c76e8b644e7b5fa855430f57320f76d2b0a8c140a1c121f19a523d219971f014beb8e525b0e6789e62cb365b9b607c7d5b0464cd40d9b53ca57a3974db8a0b915037cd236be90f9fdbb82a0ecb885ce48a26394813a6d6e2cb6515800342513879d489b98f94bd81d3e060f2713cc5a5ddef9ac24cf20e935a11e66df959b6b1bf5238dc30024a14c00392875ef9c22"}, {0x88, 0x11, 0xca251d8, "11aa86e9c9182ebdaec6debb75c0626fb53808111cd2fd9b07a05023d280462c61c58d723d9fb69aa0e28db1014cb4378a9bf27df3f000da04dd2475a0d197d241a742c11160e99e1098c61ec1057c729b1813b889858ed7c4fcfd87a6d1f2517bf1aada940cf504c65d49c850f9f38c4bce57"}, {0x1010, 0x177, 0x8000, "96cad91efd8a65c56677c8fdd0758b860078b2598b9df3f6bed76ad27b98143929d060b5777cbcaa12dd3e0b43914ff1eddb68b94a51c2cbfcf0d8bafc46a75300b470bf602a504b18a6ae85e5321f5959594b7dee89ada4ed89807961a80bdb8fac609f339e583de0b1cbd70a4fddac829b364f086aa12d39f9ffa6673898caa54067602b78022eab3eb813d3caa45ddface6ad3ae5e39fa85f0f7bb8d918d6409da84a6008470e321234cc3d477a5ba2d0b4248965ecf5aa9c3b21d9a8c07596022d8cba119ba27b479a5e36f8491c38433333196f3d3b23aa5a05a4c0a6f1e152dd934aba33130dfdaa68cd8d13a15996441a4d07f8ee9489e6fdd5fd5803677027f056bf16e56966de91bf82a3c540ce36d71a5e1cb130956d92d09a7d5c200bb9a310e506cda3a4b45dc708277b32485a9ae936b60a8e3e5327c2887905ec732f98afbd72ba3827fa64ce0663ba73195a94927ac1704d64923dd7414187e34086ffe2a840b46cc23ac7c635b5a62e5a0304368156f8f6f5b448a9400d6ea68056b8f0f52226fc819c623be9730539d1f6b9b82bac284133db00af6cc4ef36fcebedbc62f9aff9053e0927dca938bf753ec6b1409ee37a4d08585901479efdeed0ed4cfe558817299723579722e732a764600ce985ac4d0230647764b5f8e317fea9f37cdef3732cbb76d7a15cad923276b01490e795d89b70e8088428b483e6474566023e838a8607daedd5d75ce08ce6c7c2ed92578dac28eff2a821b35d06ecf7dc97d0b8c9434df7185f7142591d936075033782be4e7f4969bc0cedd87b10ab94ddc202d9e62c888e210fab31b1a6b9e888f6a82a42acbbc269b2fa844c38571ef84027e8166163b262c741ff959a129cd69efe8cd694b65fdb6fde778f0f7a81f22b69d53500f8d9f932fb490e39a00ab2c01e16d43b98a9e23d73baaa9157e40977c5cff0b8c033cec61e48817ada766906e6387a7f9fb132b739e51f157164097d7e95462412a737adc939333ed958ed2c8e8217d0ff5bef62c8279a088fd80f1830ea0516042e1bc295a5cac5398fd61b875283a7734fef789c4a3a7dd7b95b9f19a80d67ad2f82dfca84370ad0ab53f7e81fc6a8e083ad4b6e5f0d18a1d95d900e9e270a5ee83bc559f7913a06671ad2f3622448f2b7be50539436b1dd1aa916448069b74dd67d5d66831c955eb28ccc578bc0e30185e624771c58a2fc79fe6e5f0e08d46c3e652ff3c8bb2453b53ba971bc55a832fd30bee74db939aaf7a3a442a341335bbf8656a127d229f9b037fdbaa8295cc38052fe1e6e79a7e85d7d6df94611390a9f0d9db08d153e23d2a579c529612d8f027455aa5fcf805d82b71e72a9734146d567d9e693e8244bf3bb027473498ece53b4a5544990ec2ecf7a14280f1f790be9cef59b991e54c0bb85375a63c606c571f30bf99290b7829b8886148d908ccf4ff928371289012e17573e1966b065c1ae7620ddb8552557cf01db0f12b7e9ff78a5957e15c36e258b5e0add11cf8b82c39e34a971f53a2d82460d461f1e9a2093136be3860be6c56e013eefe0f051bfd1ff32e14dcb62fc60f00f56de929ad0d75d430503022065e90c56fb0b36f8c6145f198cfab4b300eb85f373b40a4cc1926f721805e019afad2e256290238a9d18cb732e1c387dbdd77339d7a0d4b1ebe48ffd30d0153290715325973cf2ccfb74520721fdc56c5c1b13cc62dc8bc4dff1c9b65540f9e11c3320b6ab493d29a12144455175a263a53e1e24d7a9744267c785b0ee628330f7e190992afd4bb723ee2642b0452b7538ca334b064a1b8739943811547a0c6a2eeba26fbe8e0d303d0107320d5728fb663894d5d45f8bc30cf95c405a10f62f7d45fc8f5e26e2b645eeda6ebc191e534734a38ff5e327d4ba9e8633d973372ec9049dce60c9c791ea100bb0b61d03e29f210d1be7fd479e8142b1c9b618579b0e4f58d92e1d86721d7e23cca2131ca4fac37a1af5231695e002dab9101d34ba1a1bbd795697fdfc047fe2c2074eb6be3458c473a5cb4870611b7632f74bb2962f4aa3cbc49783d537d109061a897311ac8edfb334a0105f0b61a345cfdd21192297c58489b785bec10fb0b0030e79a4d8c0d76359ec7c99e92778e56c239e9c14dc3cd8cc010638c2b9c6a41f670a6b8e744e89df3b365656308bd7cfc5834e48de44f9746877ab89aee9e27023fb69ece50a141832cf5305a4dbedc5f67b74ee213a09491eee5a16c19eb08aeafd25fef859249f7da0eea014e37607db6dde0fcc6cfdf2bbeaec45adaa7fc5692bb9ca528ab15bf15596e1e33943c3401e32f9f76026829762094df7638e820c3daf6b0f2a68ece60686ebc313a1e26681422f58cd582bc4af99597f36832b0558623d6029039974321e9018ebc64912357c2c3697b353961d0741604d577fc2adaef72059faa9563154ad95150e0a1daad8fbb8e5dbbf6b99d7746a7a304084902204a78b3939940446503182c8b5e328285107e53af47d761ab2b49ba602a4a15c7388161379a0b2f11d51b7f674349a9adce299e6c6d20832caa938add59531e06a5baba6d5002d579d52643f226904189c0d9cb55d565c707449ea2d63685a20b20d4512b2be6055229b728d130d1bf4068e918422ea35c4dcc75693bc3250a6a9421773470e4323807dbefff9d1d459a56cc2494069219398e916469aeb3b846a8ecc34860d5a6f02aa38bd9f783bbaf4679e888fce9d4b75c531d0ba00b9c877d3e7c23b52986938dfb210f762342267da2e8acc60061d2e9cc9a2e34df4d59e39517eb19b359e49f3290470d75ebcfd50fa881730c94fd3d061b72126c1a49b75d3daffd5007ad94e248a4e753eaa3ec221e2d1369009c533f389176ca25c81167a8b063cedd73628e793f2b43bd0a61753daaafc76eac22658d17fe7464729bc95cd87d63113936eef078af6af537830df355e5abeef674d03674d9c0dddd87470f5a2daf04598ec2f575002046ffdefe51213b8f6220fe84091f51e79a968551871c059408cf5689e255940819984ed3b8cdcbfbacdd16a602f22f53bc13faf81da7c10bc273874d7dc3d165f29a6a597165275687131a05bc3a89c9e39b34e8c3e062fbd3d5f593c39ab28dfc895e3d1da7e253fdd17e25e777a221bff75f18c8a7b22f7e80167df8ce2027fedccfe60d31513a48396ac81ab10ad86cacb28b8e66e1db6b412e672431da268f1fc68cdfe9eae6f5af910d24f90a6d77b0b67c6ba5603542121b0f93d9c4ce9ce9218cacd2223432f3783806655a06333f1ff11fd31dc51247fd83562ee2abf41ff0e98543820aea57e0d9e2f8b1a19b4fb036918c963a00e20e916b94b76c55fe4bdae657218f5a2fa349332fbf25e78f713025fb3c5aa1374c7dfb4c690b9568b023bde44c88b0b352d1574bb8a20ecf43093108c0916571f36a98298270dd7cedb65df31d881317122a13a4497371237ebb749d4b2ca8a0da42e6ed1c491a4c844d2af293bf49a04b5edf86cfccf880bad5719e9c149c05bd6e158494e7cc06b373bccf39db58fd117ae7a781d87ea7b9933e7e17083a62dcf6a20244b687b316ab147b50b692c7a44b72d44d76bdfc4e42b09513717a739ab21c9b1c5c93e563af1931b5d2083bdea52dd8a90218708e3967b6857c28d226187f03db45c6083eb88292dfa2b24f5e18f5689b0ce5bb7d2e8972a399a88f4a298eca4cac557761ce53a4f5a6c654214732d26edd246755e49b4a160f02bcbe1c786e737c2048f4beeac5b2ab06d39cd995f9c0cd7e21221d0c2b576dc1f7924349f6a6ade981cd465f16b4af87ea5239df71fa604e54c3fd107b9211d1a1ea07af23c490734011cfeca02cad5da724d35238d4a6efaf9e0b693086ac7e902a3db4638ed955475473933d8a38e1b2abb05044d840fbc6fed11b7ddb0c5ee03a8f3ec90d8472d9012af855c49e2b547889213bcc2851bc9bea8b7777249c885b67e6256239f00c396bea92f90152f8a98239becccc43e30e2c56db6134521eb9d7735df0a7eed8668b7ac8f0dda583aa30d979ec47e27883cd2f747e4af3e0b6725adf9f1a1cac385d1874699939499c6f129937c46d1bf3dd73c3ea47b8d163b51107a0fbb655f402c6bd8e48f28af4b481d264a6ab404a0481f88ad4e30456f2f88895b4ed7f1ab7509e3631c5a2d1853c0ba841ed99c85ec2e540b591867bbdce96ee405e9a3faa44420afc4184eb2d376e49ac2fe48047cb190acdd49a15101fcb346a0f9fc35bffa5b9475fc16181796d059d989840858c53ceffaae51d43e9e2b5a5cde98d5cc43905ee13611a4e33884c7eb7e19475c833827d3ef5975f763d74e674d609c6ed1f36c0d4d7e72aeea5f25abaaad1aafa86b795070056bf06cea698d30756cafb90b6ca217399a18ef5267f5fa87b950981d12b30828a5c431e3063fb09139848702b0102a83c295698465d166afee8f22be5e41cd3fba90a3ee5cbb9d0cb1d1f3995f2839786919dca09c96c349f6bb95c29a72b28a363b86d183abeea08cca761ab4d14411d4c5b93857b705aada43a0427eeb10fcc505f88b80db95f681c03c88c1719c2cdbe902d6402b7b48ecaf45a411da8ff91638baada79f514a37b0d7dc401917173ab09d088b29b31bcdf8747038b3ef214bb88200aff2f65ee9fac310346d9fd1efcc5e443040a81d6add8664ae7800d78b9720828bfced9b17115f4e0d01453c8f9984ae4548612e1630763bba5510f159b8e7d8f47920f1e74d874bfa957b2c0b703ef1f926fd1d87248d69d15aa6bf2c86a9c89a94850d363eace1ffc8fb90bbb881f46922096e3af1fbfa4c7996e00125eb8c236594fd6e98bfb3d38dcb6562557c6fb39aec7fd11e8706df8113d7ef9ef8e61f891d2c00a34aa29df3ac5697ced94a4fab342a7284115bcaf2ddac3782bfaada227a8b7b618939d61284d7eeee9875d2519ad2cebeffe0044e87d77deb631292a68bbc7457872a343a8ada42335f05185ba3f2925739852b705f8646c33af956621a5f91d6dbd88c92e007750c72061e888e7c4b184fce6a4dd55baed83a424a1ae3a3c2aefe3529c6c7b2aa017bba448a45f117c9a20c2b57a3973e8b4ccb4e3f4496ee118c0bb1b76b2808ef8940b27efd2949ac8a7745a8e7506ba99c984dd7bed2eacab4ec4b076b4ba3650b71b319adcc69ba77d4b4ee2170871e8fcf5cb783a6dd0ce4680799f7098fec841038ce13afac1603380444933756cf40e6fce410582f8a2af3a9f6baaeefdff15fdc1911d67c98c05d56a51b521ac9b2e08aff3d6daefa87c26bf4759f41a006247c41d1691b9e20e77aa3523f6791ddf5306f5d4ba4c1585f083ec6f0f0598c00a956ef81770919229de6c4c115c804e3b006fc30bc0972ed566f82334c00fb91b05c0cf4a231185ac49c8fa60c6e97f2e2b47e103c87a110400679b044b1af7b6ec662cf5308531010b8c0ddeb65ae225a95d47da1efa5e326436ede48dc94d8f4025a118f6281c4bea0d9b7e08bf03832a8dce7240dbdbfe4e57ad61cc9eecdd8f5f528b0702f62644bdef6e2c3e7966ea0b5c5dec90885d6fa2bb1090ccdd517bde59ad653479fbd188a50c277c4798a59c0fafd3461fdcd80719ea794c0390cfa02977cbdf3fb4e4fb6e73599a78bf4612647152979c0255135d60a9bbe1b02936e775faaf5d33b02d577c52d2d2a8a103e3f02da51f4754509b495e40190901cef2e6a2bc837e01c15b68fe940ab8ac682ef24c2acb6164a3c5b90ef1253"}, {0x48, 0x10a, 0x0, "1cbab60caad6b32be888562c6aef6c48747d94a5e369447d864dce3c68a55ec7def79ca8c34121f982d726da32884a9a9302104b"}, {0x98, 0x116, 0xfff, "cab5a182d6ea3a0e61ebe86a3b0e569fa84ec353920fc1c12428ff73db280cb94029af570c38e7bb99b8d7aea558292cfe89f75d7e2b20b391cc8e81d534dc7992693d56d71c145c54d3ab625ff956294093404bb777f887820aa787aba7a6b4d0dc48432c0d11caccec6131a93f03b99a594d400a5ba5a12e90018cfe2eaf47c1bdf59a6b"}, {0x78, 0x103, 0x23e3, "4a3e65f99ebfea5505125638087c5f84d5cafd75a0751eb9951f712d9bcb059580491cc59b9cff88e51f025c329c572542cf9c52cb52de693b90d03156d35d5abc302717859503277614e593be88db0e729a14d8a1c92b0e269b70e425b8cf5128a86c"}], 0x1588}}, {{&(0x7f0000000500)=@generic={0x9, "5ba9cb152e1bcc7a2e447046c9cb40d6b816b59c1386474703041c00c5ffabe645b5bc5b4574c340d161afa0831b2e866984da5fd27bff4a8aecc02abeb611e90ae9efa67fd8c1f53133bc3464fb774b57da46d12ecb1e6f6ee3362d261d992fe0211f3184ea20d56fa71765468f8c218beda53610050307f37d5c91940e"}, 0x80, &(0x7f0000000800)=[{&(0x7f0000000580)="34d778fc5a670d590911d429daf9cbcac26f82d7b820109ecbe3cf15f7", 0x1d}, {&(0x7f00000005c0)="28c4c8bfba98bc1eb703e0d6a9a724f3440ed6f87737f2dcad916dc0e383009e3d0c3d7eebe2b12902a545539108a6f3e35ed230c043b2895f0ecbd206ce998b88e7bb3856c597dd796b892a9c731dbf0f032b31c8d03357d65d7b8df9db48b991d432321a01a0bc8df7131aab6aec98dd68bcfffde9e213d583a9ff5c906f226073c7b230d05a3087f032481f63da5aa0c589f24a8da09e1746e2e30c7d062d9da1f4758121b1c7f3b20951a4ec1a35596dfdd6495c050f3105b8804101f85d1cbc69da805b564e713b7dbd427ea375b14046ac45fd6e1af38d53", 0xdb}, {&(0x7f00000006c0)="3b44b26ff7c19dbfca2b02e9bd3a896ba8da9b60f82c8d27f68e2e3dee4dbb443622a1df83df2c8ccc73fdc43af8568bc41993a0bc5042c44044ca5eaa95a685ef67205220a1c463992485", 0x4b}, {&(0x7f0000000740)="5b3dd041a998b1dfad7ce43e2730558d154ffe405efd31586a0bc6f59b5c7bfede6b31e4c9eee1", 0x27}, {&(0x7f0000000780)="1b9df0cfa392a7fbf8f2890d78cba6e789c976488b1758ff71c802ae99cdce1a8985dc8f5345b6038f2e677abb8852db521ea3a5b500d3baeb2c53878a4d4833f7", 0x41}], 0x5, &(0x7f0000001ec0)=[{0x1010, 0x105, 0xfff, "882a089cdccf2ed6093906f07b02f1c4c32117ac4db72f63753a77048ecd4cd8fd468f3958b69570a304b1de8478571370e76402f73affbb2604867da6ac0e9e0fbbd9b251259a172d6e414c897ff5eab8faa744735a4e5a7422ed5dc1e42af32ab53aa5958b07516dfdf34d0fc3f99a1b5e6ad978aaf59e7ec092bfe9dca68b59ebcc21942b25782556279541c02ab8937776d7d85a041821940c47bad6ed50fc5a2f86e119c1afe0d5ea797baa91d96b717281ab465aa891ad9bf2b45fd2a1d1a54d39ccee3d016005ef0299c3365ae4096f9a599eaed5402d85b080448c2b21e2e54e5cf6738d3aab7bcb0464b12c6f78bbce6d4573130ebfe012e011703cce971f64edba825020e566fbefcc7324b51523e4e4956102083c530791388fe8d7ddcd8299e6959820753760e6a1a2d082fda220a87b17083855348238b5ff4745b806c7dd52dbc445184e141d44c45480f3c857b87ec33b0ca2f063fd5073a8f3099f935fa8b4bc584a6c4a63d01530abaaf73b9ef2a7c4bb487e4ea35d343518d8a0e87ded5b36e42a058f2d03cf33dea2b7175cd8de9570e6f3e75f6dc21375ce00e27fb3f565114d22333d49052b3f491574bc03bba033bf017645efa8561363c8fe46c4dafa65e1ef5f32f92a314c664cd328330f8f2102ca539bbd4823ef0b64ac6a9a47468620da0194be6cbd80aef8344d9d5470be92168792fa000ea76d562700510e62f467b7212d7e023fdf603f1b5ddf4390c8eb8c4d85b943bbb0cc6e2355ad970f9cd60a6e9117141e3b1d93d011c74e0f53a9c713b30445478583d15d0bd4cf9f93859e677909fa6ccb3688013a2a478f6270d4c4b0e47e4c7e898fa526e754cd7412936c65ef1536c90bb6ed4b8f0c29f6cf4ffa17afa913763be44ff233634ac86d2603c6fa70a51d7cdb98237ca8813b6ba8ac3c3ca1deefb855083df7f00b04b2337d6755587b0e1d12733ccd0d6a87feabe318673c2fe079eeabffc455289e260d11393f89c4b57d3c40a83b6359bbf7a0d83bd884831c1988e0ff4eab34e649970c13c575dc9a65e23d066eb368db936794d8810f6817b035d94e0e4d3546a80b913224d36b7f1aef026d5af9a00f90596c810020d3e52d9a0b0a9ae0a495b8ee2510bc1327c41f66c7c20382d83c21868bb31d423601206bf0c6845588bbcf74cc776531b4c041513fa27fe8dd5f74977e78ea45c904ea9b75bbbc7a6874c96cc39023093362a26d743a87e95d09c81a24a5f4d7ed13978d4fd3e0272c9f2d30369cb9802b11195b8ccb0a3c9ca0fcef5eb8c642b65e2344b8eafe41ed9a8980c6f1009122d1b80f0d870033fcaef41530cedafd4b84aeb1721cf18965b4f3480eb42e97e8dad7b58c9ea78910701c74b06e6e75a19d5565ba2e03724784c187cedc0b0c6325d430e4b9dde31c1bd930f77ad6d9ebaa9a4862f0fcd4c4b6fdc7a4deddad4eb12c25f2dd09af81f4481f5180da7ae6cf481935c748555e81feef8c66ab316c3a3100c33f192a01a7600c8ae259df033329cbd061094a09f817231a4a1fdbc3e5fa55b88d1af5131bd15606c67873d92216685190b1e2dd451795c5fc7b29252a4405f855ff4d43540016f27cd3dfb9ffd0c6c321d29785331437ab3bb913130aa7679e1721f07ad56740e43be10106aee27667619ba9cf223e646868b3320dede7247ee2328da35e6e4d30ab6f4d0fac615d36f5dccda70f42617a20e311c6563b9bfc01281b803503ee60be5d410e24be27a8c002f1517d971f3babdf14921e78ee8936d685adb32c6dc30a7deafc1b7bdd6edca9e9e7ce4f57974cd251e808bd0e8530fe665bc361e1df0b1b0c8ec8a0d825b632324ea7025959900a9f2f640c88c1712aa1115622d72b65ea2f4d85c212ff11eb4e104b3e6d204f57357a691666d23f1572269c5fabfb9c5987f2741ad3a3c7db4f3cbc2762882a9ae3f3f41119d6ac8a51f16d9f8317c51c4e0f52c44f0f9235a4e3fc422527ae90fba3d9669788c7a3aad4a7ba9feac97ef0153476972e236caaab4a4a33b84a6c96c147002219e749790944babddd52ad7d36f7885de03b5d9a026dca32de54b4a3afb219d597bede39d6702966066ff7d0245de38a6fdd2855baad66398a193e895227804af3b3fd9e924e6df5d801ed9672b66231d98777c4203733f25fc49ba0bcb42b88646e0fa697dce37f2572491dd596b92f2a76ba641b4f0c6f950da304e6657e2d76cc3f43a26a1cb2c8c806ac3c85c9c6b6c5e37125d2ddf1b337724d5522b6a7cbddf5076aea7b36e7f62943df15b17857cf14d9282463038ad84aa8391f990cb0ad775c4484dc78e363a581b33c0d46e01f02e9d3f05d2ce9c3f689884153878f29bc374b4308cc08808e932ecca537f99112ada3ebcad5ea0aa542d50f8a2f25481980c57ca050fa30bd46b8d8b052b2cbc927be20d97fba587cd3a77afd81b2df88a0ee0383bcafb2346ea37f78ddf76a56646deaa8d5a2bf830bdbccc582a291cea32a21ed4a746c1a4437359de7ac8e5dcdc0d1b2d55e8c33fa835adbe1140b151b228f85639ecf12ab4d1d11627e413cb7b6d93d5e9f088310741132b63053913a9a1f3d6c2df34fb128a48d26ee78be91c13a8a585da8dc98cab47353fc8d4a91245240a1fc31216e69d0ff248375c6ddd5b9411382b947114c9d2336a856366f9c8a05430fa5e5d870daf7bec3e2dfc50446de3509ed02d4e5bfc4ceb80ac1133ff6c78992d4f2440f4b5353997a77cd8289b0281c60b608fc443377770e04384a0297c571439297b6f0e32df70198553ceddf297b9514b13acaf186fe3d1cbb945ea4f145d7a68c266cca0d13e7836b9d3129ab6b40aed748091701a49b152b0c278a939f21b099405164f3a60e3b79ed7554a694e103dc8c3857b7cff50766117b8e90280c096af20bb7bb1d71a61788edc264b85272c15e67f3a9205d7b1327df4044ce97d9a86e589ba19459a84ce70059c8856c7ca2d8a8ef81d9eb1750df2e2f62594b3e4f4e2de64dda74516ac957459f6597d2dd2295596493921b5dbab9396686ccd71da706cc4eac62ba52bea8fa9b50b2a9cb3eee086e8b0325823020f9a7fd0f9a3f5aaf857b939c7ce7e51de77ac004224767c5f21f308f82e1b7fdc0981e46a3951daebd8b478be72d5cae05219ebcecccb750fc93da6e5dddda1866c38d2116c7ed4810d1a60126f0abf28a8eb43b602fcd7af45936d01eceafa5fe312bf9d4dca4ed401192b648b816d6fd749d446485a9ca818a3cbf8e01f68ec64fd65227bbb43d8a0a82981dc686ebfa49e8a5dfb1e5f08c699aa512951a0caa7116ecc11541d644ea1476c1e8fdd0b5e30351a3b47433db3e3262fdd36dd54ace34a0b1b4d776909b1036b8d82192038eee8d45c2a9290efa58ef8f74fa4ebbe36e77431ffb34f7d7a5cf49d137f817d96f09dc4c2ed9bcfda13e9c5571fb14288f9f64d270cb15f6e64994e6bcba78574fdaa864f4ce028209de2da03925bee3abe1728c1866ea7594f66c579af91142516657ef3341e465e17dfa84b762f115c783945ca6ae0fc076b9346124b84e6fb18ff6fc86b217c9dc671566e6727b1c62a780707b21cd8dd4ae9ea15860ce1a91e101d121d865b71f97ee92baae9c6eb82fdc1a758cf7788bd415cbeed6b741e4eb046285a5c489479e53b2252adc3f208f31061db0fea0511e11afc644b715b2c4c4091e59d7e88529a2cd1088635505b4ebe306d926824c6edceb48c27cdfaf377c3eec2f2d5f91189dca53b0232c9af8f838ce61e52b6bfe071861bcb27436e139a186eede173420e271b1773ce67148b14aa5c97b51574a8a8455cac39a940b413c7a604defe2fe997415ec1dd2a28e2af791da1bddf65a49f6f87fc5247b7dbf952171ca7d08b0542711d460970e2983fff6ff8f91c89ccfb92db1fd41c7704fd24baf1d9ac39c3b65821d5f4c7f4bce50ac0c2eab65584efb83cded3c2184efe7356d40fd1c5690569f18f8ed6135771e7fde63ac4207c44b41c0d03a2ba4fb936b7220d2e7e8b2efe355994463fbb2f2aa96776a8a6e8effa4b0b8917b81bffe80110a35716fedc154c475e20f86a169f65f6a6a9ecde1b9a40dfd0099693994ad87636342db6fd37a0e125331d7f3307b763aaff8aede24b54ef90bd179a9dd285bca80d17d9322240b2ec961f8f67b78cad8f28ef509e041675b403814fd267d8008adb3551df85aa098f83a46c019b30bfc5d269ad6bb07187a0c5fe851d421a0d474cd86cf4345b462339bbe9dbaca18486f4c51828b1f29adcfa1eb76b1d9b2fd31cf65f141b542da8ce12c42c09e61a504e35783f81ffb74af2628b0c31fae8e378993f8882141b0991d9311074e1fe3d4f489ae2b4fb05b4a53b825aa606444442a3d8c7cad32d597bebf01a2427a32968c1b49d6a731c44bd459f739a5c15f53d19fd5757220cc1b39fcf13a1f4e9fdee30f11462123df07c41057c3415c1689018d609c67407cb52f7584af21a5ffee3857a75ea93250f63e363979d63fff824e4c61044e928d1a9b0280c78e26fb1b9ee32c5a66db21e08d260115d450b35d1c30c31968a4bc60f423f80300a402551c8f4065bad67f4830b684ac49e06a8d75c3652a6b2a45140457201f3506cc3f72d49e30fff8289914d56023a8a8307c902ec233035b0f1e1853351b7b5403547c5ae9460c79dc6f982268bd20eb5087027dcc98e43dcd173e511f429d3a8c8592d38af107e6652c17dd293279189dec8548b0bfffb0486a74d7b81baaeff50ce1faf6b92eab749d070d914c515f15f532c880ccf3077d4496a3a9a345d36dc5ab1f9a58425f5ceea028e427a8604cbb347365b05e1a11403d3c2fd7a1a4085991c6d9a15c377ba75a2b09ef214178e7d7ea468ab34377b3f1f028e40f4da98af0dd4b05b40724099b5b0100d9985b6d8b8ca5811fdcbe30662f8ff8753ebb512bfde9682766a455c92db8a58b630844308c62bb74cd29b11f24e700238390633c54e71a786436168eae35497a00869ebd06f7c23c2dc18a910b50d9ee819bbe72990f049b5e9b47321579b39b8302b7a9995244e6a47117b5583c1cc81d487722d938d3b15e4a2dff8f2640e271ae590b6116cfa5691a01eab497f34ac188e93d07d4cfe8ac7fe955ea8891cea721c571d23babfc083755c94acd30adf663f94db5c0a0c768b6a46c4766c952d40bf658a4a7bb9af3f97a81b13032478c354045e29eb560ba6564f962e68f3be5e933961d4286d432ce39675bce4b6a54d8040221c0eebc788e4b0ce929cda66fa17b29c652bd2681235d068d96214f78763f7d9cd2c6a5fee38241bef2d1548bc8bddf8c9951a9a41bd4cb4ddcda4b8b52409cd7ea0cedc4c367e7599dbd3f2305deaf9d5836ac067fd1190e76c36f761c2581ea615d9e5d0e4fb093212529a1dfb7ef36b378a857bf8f6b2a187a579ed81e47eaff0d1b66eda2cd3a0585fc33abbe3a8703a3fdf6724f841fae5b47afb1212daa9216c7ce032fd74bd8409b7a3e1818003bd82af8ca973c8a0503e6d2fc9d1f5b194724d877d0773208ee1bfe7e65761a4ea4de947ff5f68c890303de599dc9e395afa2001f1057aae3a94ae478ba89f5a19e65a925d93bb17e917f30f2ca2d8dd7703148cfd646f8a81faa7f4a0acd83edb4f63abd25efb68d6ea113354c9ac41f951d836fc386eab53f819b34abb3e24d31e1b63f20be709594765de55983b82ef689244c7500d43dfe1bc3722a2ae2629e506477b5580f3dac0a"}, {0x30, 0xff, 0x6d3, "0f4f5ccbe3a8b1266b803a5c8e747e408c9663e5f30bb5d99fda"}, {0x70, 0x10d, 0x3, "e309aaa9a673da44170cc6b43a29088c96e71222a27b08330d00fdba68295cce4d6e28256dce448958953a2824c6c13739b0b22705d636c53ffdacb63da187e88aa637729f00ec96f02c29b34ed00b6475a13eaeedff0228c17f841ccd6c75"}], 0x10b0}}, {{0x0, 0x0, &(0x7f0000005200)=[{&(0x7f0000002f80)="3b19bc020ac4ef9e2e6bd3ceb6c15ec48a4ae5927ac4c4424d39a1f5639d6939d378699d9921142956160e7898c08d24b41daddf2a6c567fdf42ac0a8df14280b98816fdf175b61dfccbb6db798d5198adeb461b3883a500d07a5f917c77c63f0228585eb3d1ce20a753f4c8744bead11f17dfb0849e82dde41cab64d7bc0eb9ca8e612e16a8c33b5ec7d20a604584ed117e1ddfcf327111e1222ba2d2974f2b487ffa2279d699fd1c2f309f7fe195b69337", 0xb2}, {&(0x7f0000003040)="6663727a4c0e6b46856a594f818705260e747dd89f78f4cf5889830b2c53d809285c4d4e67a0ee29e765a0ad2ef654ab28c530953f5f06d191367fba66d939bd672f394b04b623b0284151ebf57577469e3378151b26d4650f91f77a091cebda559d2f39a8a9ebe6b7fc36ef83157cce05c9c72820353e15beb6b15dacf03a15cc290244549573eeb20e3202499da2d5b7f65a83be9c4ad47086f122baa827559b586068e14470656e2ff0fe56112057e902377f006c2abf094e36704af82ea5ac79edca279dfe95f8399fc759d5059f3a2bf07ef751f8ff9bdba3d74dfd25b4005e02bdf9fc7dbd4392b5cfc7be3e9e3fc805883f0785268bc545b46dcb", 0xfe}, {&(0x7f0000003140)="149819e0a15bca62443407f7af53050ea4107c63f90427422977982091a232411ec3daa38321a6f6c409bd68bac75649b5f2b0335aaba40286407efbdb7e11cef96a0ef52369b17b37aa5aff7de6ff72a15841d89b9e35d3cbbd5a1f03757500075cd4e36895fd8a7c603c0362b126027a63f071e25a9e0ebcd36db5c2132985436a4f11aadc75875db69ef49c1c63c91bfa0ea9ca36b29da00e352b0b1c26f18462cf35f6014ab423c20bdfbdb2ec443a87cb3baffb32c333ba3ae3e98be41b2c4f7020f6cfc7284222afdae79250b9d5cf04d8a035bf231ceebc7439ff71f6b90b332b02dfe9421c952ced4aee9a6b1d5bce73d5750b0fdc40a116e2f6c2443f987fe8d084fdeccac86e0ccb7e41f06ebceb0da816a7b433634ce6a833f287ec882d28c7d0c135fcf305fa4ea74bf57d7c8bacaee4662ae3d588da4789fac85b9614dcd52c43f32dcebf781d5455abcc15993f95a24a4631cae2f8ac7c4c63e41ba44f43e224a02d1a3ee1242984e97edffc4dd738ed860d888d8fdb6cda824fc8ca915f0b4103af6a0163096d3befb5d9aaae177b6dac06181d772d5a83920266fec5cc7b5ef4ef8b03aaa252ba5a6a997ef60a5c11dcac9ecc27ca97088973732f752796b32ff9233d5060b891aee35570a55f0b8d7edaa0ce9f14fd5e79bc1a23994c8fe7ce551f3859160eb668503dc9d076d65070343e4fd415a08af3cc853c13e43ae43affda97b23639e0c57bbf99ec128f8d4b223b12673b712abade39e3890c3e0fe054fabd21eb476e1e786b807e21c66c9cd9d341021f02a8a9f73a75872a6c27f8dfb39d4619e6c9c3cee4d51c62fbb80939e23c8be83fa36944e6f53b9a5f048e7b38c2914cb18bf173617f9d546b244e18c53ad084576ba2ac5883806e7d2eb290cbf0475732b68f7500fc243c040dc7442d65dde21b3c345ac4cecd18c9f6a55661189a5e2dcd25ea433f9964024e2ab149ab071f1753c2b73e7ce78b07e68e3ce8a22ed9f19982ec64e412cfc5a5700266d800638a3dd41832661a82d592eb3578956abc78c67a73cbc4eecfff2c88dc8b4a44763d003bca2073bfd2c08b74333f1d0d8601e4c47a97c1ec0f16fd18f43abe803e1b550d15ebe090bbdab8d06dd216faf98b2bff89e21284becc612ccf106ff6205d3e2829ac97825e0b08883205c18bf1ba6ec604c5ad4afc357b043881c9803ddc2a095b4dcca6a05fe883d1a7ee0709293011262ff39e51411438f2c71f6ac53e397779a18a466e15a120421dbf8878cf4ce81e37053164d5a7128819a537d151fb122589dcd25180f73b9604a6833137c6094af303646f621028703859c417ab91b1418e93837b88a27b44f02bd031a301d1a1b48c541f798ef416c9787d9bb374e84bb6f5441d11c954da04c9e26e9e7af2adc3e17e95ef81990452f0c3c4400ac8e1719090692ef41c14e035ed9631976ad448167d1be49c3712ff66e8a48e8a5838aa0de883c246f73b318a1e38cfc9386285913f9b495993713c722af75805e81aad7c5e13a69ab74b076a8505d7c58e65f37c0d59af7c3cc782dad62c7bae3a4c41d89285e0707bdecf33ffba1da1a5c8f53ade352eab0bbfe30e2a7934e40f4a09b800dd60216833afe80ab2335cb1e3fa20ac0ddab27af48320df8b2179432294bf2f9d8ccd87c5255fbf1d9a14c9f6fba63fce0989301dd28f8fc2d5a10aef402e9dc474f18b6032caa576a29c0513c02ce7ee9fd6ba417ec1af279c45ad2a2434fbd14d2b1fbf0611cfb05142e9e847da32482bd90d8240e1abfdaad3d4b67c90f9478c94d8fa1ced4ef19165f50c200bf492b758a565bfe75405e9f34fa9512fa1850272d920b52e3fd93d1176bc1dbcdcae2932495d1332eda975a3e26bc99f13142e358e0b06a62ea3bdd278b3de9b4c5e402e7742964be0c3051290aed8b34fcde423af7be58f60d7104029d20e2ee7a982f865b59d50711a0f2bb691a986f5b9eefe19ddd5dd08b5a4336df15c8e77cc3e8df179a2a60967f05c865e7a7d7eb71663e480b50f129afae87d09d0dfbb65199006088ea69d9b48a47017c2a1469eb68d5ad80cda98b9f3e6c73ae3df80ded9ace3537f9d90e4b01a16a69e069afd8fc019d801073a7f738564e52f5698d07960b438653ee221ab636872c51a2cb240666f1129c313e3c4b31ec8bae1005c58b4051154e105fa8243a7839fa4867d35339c96918f18f806bb940335a64e1a13f788a39932c9f34d265c2cb261daed777e0d4d27f5a08b236851a54c47350396c839e1fcc96b6fad86b3ea446e047a525c42577883e1115b70e7d8c456cf336a1c36aee2ce33ef616978d3dff6b1aaef79349740bb8840e4488d3b22e8213f12816f554f00d560bb8c4e1b6ebba11d67f6d8f8e428abe12d7fc179db87d62e34532b675a8b3b8d483435bfe262649cd6946fd63b8e60bb3cee6d6651a1d77449c14c3ee73653cc9d0231d1f3e3bce10041df933b8a50c44062fd10c64a1475af0ab49cf9e0935bf8b7a8f8a55ff3249e0125da97255c7d367559631804e8353c718442a1b886e885cfa35ef657a5754ee31437dcfa58a896875767b087922654f0751b5841b6b53eb4e5b93731789c4632b78fb468e31a35370ea407e4aa05c684014e2ed3f24a5ff81fce36468fc1986fc356cf4abafcd5a292d4f53901bcd3f8c2023fcc88cb04aa19390866dbd2a5443debdd22a87000d8269590bca4dbdd38d747c92d65fde4c6b357db36fd5074a18d76fb7ea39233333f2cb6ba1ae24cde396f44c4ebb1f3bd2d992c2a55ba51e3cf11f6ba634cce710643edca0ce7953b4a0c26ada96fe6f37f16ec465bc673629f221cefecf8000bf48d606ab0fa6ef1bb823945f24120c6c0778d45022ad9948a6aab0b7b8d4376c178d861c50db5a509b48034c0a422a78c1b055fa39ec39649911c39727ace4d09863d77367e22323794d56ddf08c2ad2df66e4b8422e76dc9762392c02a3aa299150fd001f2fdfa6b1dcd978a8f7d9ea9d4be3397eb6c36962a1241b7b7fe7dc0d9af37a3e8759d811737d4453d407c2632787cb637f0708e549158c58f8699ae4fdf5781efca2ee7d61ea615f6975d05d8f76ba91c59eb85fe3d69b98866356bff9f10399318ad83893f66ee5119e71e849bbb356c3f8e36b1f326d64721db95f2f0fb5dc0d78892b1df2aaac5b54645e5399f74fb60cad28ac8aeed8db7742ea2fe0e856d48e2b8ef23f150a7844e266249028817f147ea9faae4261fc0e1409bff6473367e04fbe4f6e699c3c17835a3db3cfe9ba1257c4543e0effd938f0dddbddcd3ed6010d530c870060f7c001ffd69f95937c002c5721f26311f6bc0bdf34182c0342c9c09c357b6edb9e2e29b3f7502f5a0f323d402422914c004d701c2d9a669d35cf07838e3992a3c86a1dbb73155acf1cc8ad55d12907cdbc498e3d6ba0ba20b28658be795480d03436b52e58058f3c72282bd9b3f02c14b2da5010cbda27070a15b39b4d130b418808504a2462ed1d103dc0452d4fa63c3f4acbb13bd9d7808640191767e7bf1daf23b159e59cbce0304147370d4879aab9ddbdbd6a2de7a523338119bb82dacd2536acb09d8fc5ffa0fd558b46ec78483dbc47bdd1d63e4d4f62bb62e6496961adcee7b6cc5551ec51a4d15f19f59326735c8bc226ee72393d6ec31a2f2ed4fd6f012a5fa2318a24750ff32f120b468071a708e7f6719f4c7287c84ffb7116751e62b384b3943ad9ac8b606b4ced243312fa35b73a03a0faa46fcd7543703ce366890f306227d452d6aa68295715513f98a9028192e67d4cf23031fabcaf1993f89f18e51223f2d8a78f1dcae79567348a6dd8161b5824af1c18d9f8a32c9923fe9d77abf40548ddca737854bf689e7b396405eb3d9e916466f84f33c271938a43f1ade349073d46978f35522ce440b7774a08af5f5daba9831ebeb9217e97d3108a2b4d3414cfad43db9364e0471b61207bf6a6a1a128f78a8925f981b5c189d6bf948169852d023632ddca9553addb7f572e16c682315f64dadfff51c4a1ee8ae7baef6c1e3e3845da977fa51e07a074a1fb5a408a986ea2908ee56e2705ced5641d3d781ef31e60f131c2fe4de30283326c738afac7a2b9ec49bfc9b689604aa644737b09ed6b1cfc2411b35270161c6766eb0e3f66aa53d3fd74a0678648ff9a98d9112879e95d1e9753ed1fc11040046e5cfd4e273592682b43365660f562b421cf664aa233d149690e2b4478a9616ea995466aa28eacd1f7069e420c56d5572f7900986dae3d144e206cca3f5fc3c23f1993f327efdcf04daeb6bdc484ee3c6850b4de9a1dd1aee872a94d834aad70aaf7175b2bc9c2f766e087eb98a37980c61b099ebe49354ace434937e1f0c4a270d05b4115a3525f4a35b254615d0f30a103a373626190ac11dd37cb6f5bcc4895150d43c3517bc6f442f28feb2ce7115298ea068a495c082bc5c1d67f438b2d11ef03b66c42711c64280c67af80d17af938d8dce719579b4b63a56ced0cbcc6687b61fd332ad9e0164330884fef1746b7092c9863dbaa56f30f7fe6f807f008729f4ab074fc71156e82d4f394ef83038911e13817c3c102c378306a8983ef986b6bc3074556939ecebc7e6827ef32709f1bbd1abd792914fb5e1bef71a4ffe7d8b26f7dd55fee6f0efadf766e37eeeca7413d86dbcf7eeabb35341df24ee2b64283b8e97da636ab979baf426181e8152caefc6038f63d4b5c26591666c2078f7c03a9ab032531848e80b4dcb235f27295b9d79897ad3287b17719f30be8a707eff0615f2ce5805f55334bdfae8fd5e785c939ccf1172d1f3be49a1de11ba8ddc8043a130e04c271f1bd7b935055f32fae8b7420b8a2755ee7097bba432ed80f81bfcb0a2c4bf4278aad28474b67e477a5c499903578f5615fcb613838b48112910793c4f7067c394c613685b5cd6c1d45faae4dced5fdb2d85cc0c8061821ef77041cb8ead1b00ab29d2ec9cad42a341be665a0626252b7b0720efe7e4456995bad5b23b5114d26899bc5a238713f98b0e9eae967327e75c2ec1a9096ae3c5d39949f64cc7e279a3df18ba50354f31475a8de5b1d5eefafa9c2e027ebd2e091ba6309aefed5c83441ea78657d4c1927087c9c175930398fa4eb5af43c85f8218c29bd0f8864ad80366824ee87fa250f5894defb6cfe8478d20e70cf2a5c0080eead246586b41e93ffb3d032b16a9c6ef8d192e85c334f80c54af56d8424f8640009cc99d40b01bf84a96ddd17425f891335332d7bccf80604b26897a317a0899cb3185cf1a14ff9b4524b4c552fd5e3ab8b0e1e0e431e980f0e37a5d940ea8dfc49a11a804ff251dae4c46048e7831b285fe0f3d2326d0b7e67fa0bc6879a92af8de398cb4c52690af10a5edd958b1da28835beff6f6840360982bdaa3889b2280baa6fd5e847dd08a7efaf7019a1c57f2accb7389d80fb027e6c0528f2fd6e7038b013a1a0fdae5c282b18172e538fad778dc71817eac3925dc9fa0a7d23e1e967fa7177379f488a7461b93c2b62af72c9b088def75f58b57a86272d7aa07793017e5ca1a39a2c147140e24102713d2feb0d5d5bc3ff6aba58da36f4c8ea1862a27c961d9db7ce118a27b79386978e2de7a254371692b336aeac79c5be4a3f8974846012fc1c5d3940821727890f2652c67019742eb07bde5e603c680dfdade7e59e0c12c0c510557aa1880bcc609909707a69bd05aed95b46af078f20e714dae35a0d4fc669e7a896bf4563baff40673", 0x1000}, {&(0x7f0000004140)="1c0adb2346c3943136eb82c15364d2cb56ba8a4a16c9f488b1645cfacd6597935c39b2039c96fe5b7920928d98be3b788e8983388313836e953271954d5e92285f458ae206b16a95c6db7bf3cf89b42e8654e745f5800026b3a05d4dbc45151a3e5bd52249514f85778889c34022e7d0706918d5a412f897c208f2620616c8bab814333fef4993cc531942ba03989fc232", 0x91}, {&(0x7f0000000880)="532be47731defe2850eb9c5d6571d6cb96c8e543", 0x14}, {&(0x7f0000004200)="3a7dae72ab8d496d92b6b8d2463facda2d4587ff15ea764fe5bba1fac633809edc3772c06dd82b2b03fae8121a7046cf67f7addfa4f62519a5b5ae835bcf43070a2d60a5e74bec52372b923b649eeb9fa4a1e10d5ca37cc6eaa112e525d14348bf37f961fba51ba52047fb89e62f94253a713544b7fd403a7b2e9126889759432194de0e9c928257614fe29a8dd4abd2178ba8fb5e9f5e416ab724d0ebe73e5d697387ea46ed86d539f2ac9f44ee77b5a3762b78ab240b5748de215ba3af4fc2de076243739fbc2b60a14349502093df7c700c9570a87f1940bb656588c698eff6ed0851e3c992faf5c2a0cb05b18c141a32df0a2141de7aa9f1f2cb8b496ffd95a7f70210d659fa7e11b25ba8fa03b2afd5863c622183d5c53a182ba9f146250a442b51194f8d3796facac60aed46529c8d0c487dadced7d0909e575ea811ccf98fc10eb880730631473028bbc44825e58552a41651771fbd21f22f964842e337ede7e33d1e69505bf3c2845db5c4a975273990a3e7add98a074bc109c60973a49452f770c44e4592254611e34fa1eada293b7adef680170bcb405b8d9b45f9814d2c7cf8c53ed9cad6ab7a0b9bdc44d0fb54180751c8a91cfc86ddd62f7138090749f7cf65af566d12d2a90c070b4990439ef69fad51c0c7f6a09fc370b321783aac8524fa2cb89d533ed3fbba372d3d548030b128537501a72d3691e12c7fe3a4e70d90752924702af1197f2ca7bdb9dabd12416bac7b43cf6038d23084c7f3d1bd57accb3a5979d833afedb1e3a82c210de5092e83cd27e08e961a24300055342dcf7abd31e32afb7515883da7391ce52b1e732a563e9df92d7401764783a394f7fe325fbf09d575f3396e42236f29beecfccdb46d4f0cfded89b8de53a1e0e8e7a769cf12b0d4731965314f95706a5173f7ed96ddf4fa40a8a2e12656ab173bce22c5ca48b8439e06a4fa783bea9a635b8820758b297addbcd14c4fe49c7cca5d50be22f6e9f118866d0c6a55acaa3f4b01f40f9f2b84ff385b41654a2cde6e513b892204b310aa912d736f43caac20360a24833b966fc1242abb3a17a1a0c43fc61e37fe8d67ad4771250897cff60e1d92329ccd7202918594c8ceef85c41c1d30b1fd960c1d8618b159660f0038ff672eff2ce57a15df3dbb7686a1d9963472f0ae9c29798fc8ab9347a6384b33353f4e105838dbd51dc7015ef83a3de114e73bf5cd24d44f5055d56e0529f65929d05a1fb5348444eea09d2ab4682eb45410064c5bec0449d6c3f876fe30f02eed30645437a7e34072cb780e421c8f002c602b78609d0e3b2b686467294c3b316adfe5743dea05da36cd9ded3c5b73d7824698a789c6e71c3c621a8610f959c4b65b00376bfc81f13cd98f3316ddf940fd36bcc643543151cb111caae24f255519e930310a3a107e50061ec8b868c418d89c2fcf635c066d1b3c30c6987fe89cf5dd4617e7e11b8aee8b1da09641a0d74006ecf7e2f23b84d53b929cd4177fc96313bdde03bd5d03bd25db210c87873be4848c282be482ce53b23876aeb3de2e1665241902112a20bcfe3d7574261cef1a43d0c43a7da806c636462d06b5f4189e2628a7a14867a4b0882705f2cc1dc816807d25590fae5c779d8e4e0d5c944fc23a1a35cf2813e4d86cde1ca7ff86255bbcab22861bd1deb58854b5b57c38742c4bd356cf9f3b08689f69daaeacefcf286811443346c07bcd6f3cdf10ab8531c47f144c15d8d2e409c51af8dab1d942ab5dc4d0491bd1f50ba20bdec987484ab3f52452a3374f72fa6df343008e6761243caffb79c27daf84f5009604a203277361bca45b8cd7e329ec8880aa34fbb3fa459b690ed0d233105b9788f542ecdf2342fafb970e763abd307cf7e700f5ee1a9e9de0e3b6cd0894ea994b64d733a872efa90f64c25444f27e6e738e4f54a36ddd845c188f79d7682d24460c441d2b0dac766c91ac7f398b5bfe151c8b7a1035cfd8263dae66eebd61e18d15f3051c304480a90bd4248d9a331414f0e7f3c9c2b3e8b75e48b8db906cb48554f233bc64aacd045a61f0eea5b6e74cf0f25d4d5c6740a07aa4ee8b5d3e0e6e04a505199f8388c779b88bae1c6b9af0483e5fda42cbcb6f381922a8a8023c1829cae0c77310b2fc772c5b43c083b04efa588775aadf6d85efb2727ada5ed41c8f3bbfd14009b0ece57f9cb47d21e23cf1777a866d0c08466a43a813464373987904f8b20efa7c066590c20f0d9f8eae65ee83e916df083d50c95f414bd9da5e470c560fd74bd0a71af3341d0eb2b351b329ef0c44a1bf0c6c6b2f6f80234406f276ec4a80b3f56b3d3419676285ceba87ad1b5d31f9a4595ecd3055751df7d22c9c54de24f3addbe39ab123149983ed149d2ee9a1bc6dac8e8ea27840d3a9c2c8cf15092fe6cceac9896974dacde128ab70e24eff346f07810367b725ece4ed02e40bfb74850ee2e9e2489f138543003b216d1c9a1ca9e2d62815034caab9a84ddc8e22145c009a984cfefb14861ee418afef3b831e323817490b11cc143965cb33ccb3c07e353c242bbadb1a443983c97e0be83a524ee432a6fb6a24b901f3e877a93f0582591e1f3c27b2d9603b4e4a5346a40fd3cbc6223685cdb1187e5835ae3936de3a32ab749f3b5aae3f1cdbedaf6e7b4c86464a6998a2b9120e48b7f4b751636d01461a99434f595c08a3ef3bed29e68f1b1c043c10672ac3fa0dc3fd738d3ea02bf53b67d407ed85f115ded3228a6f7dc1d39092b0a3450dade4e8c54845a0d84accd26ee2d295f6af4638111c7283e6b343e57a4261d1a2ff13ee6cc89ceffb75a001b3003cf313240100797df541cb4cab4c9050d10500f41259f3403e9d611ac6b4b6fbb6af3660bfaa8f40a650d5fc135fe250278e67c80b73d64b6c54e650228d9a0838b1c8b36129582881281b001fb0e013b6181928b33e28cf98ab6bc219c89cbe5417d5beaa49324851eb0ad0f1913742e5cfb4167964192a1abab4c1cf42f37e7a4550616779b0bc23e4164cc0225ee61a16b9835bac17ac80ae84fc722cca064c1fdaf54b3a2e6f3dbf707648b15d4157959cd0a11df334a038e10c228294fe2075c952a873b2805da31ea8684505c71553c760505deb2a3262bb4d68ee84c7ceb1f8c0ff9811b5548a429757383d9e5252b83bb538aefe67f236dc1f801a94aac35771b99b9b8726cde99fcefecee456b1110af72e9dce5c193478288ee74273e69e84e227f7222adf59cec654425973f783e0228779a54ad537a2e7dce84bc5025c48f0b7e4b9996b885558a39002bf5d9daca0630d6324f5ad2ae2099328b2c99d5d29ef5f95ec32c814a5f0f0b1c1a1c28f66f826c06a65470b6a8ade363dfa56d3fa911408669ed9e7fae78bff8f475a89c732ad7c6fe3634c88e44d18c1345bf306252a2294ba00d3e0a5d2c57070d9dce933b1d7ae4241c99467ee85f331f5d81eec713ad8af0bacd244b91acbd18e48aadd22ecb73cde5054dde54021c492e43b3d0c59a57ee90197d2862780e1c04078f4506219c28c88b2f07b8cf8af5b5c2af126d8e4f60e53e05c9182be6ebe6535b70f28c6c7f8dedb36d3d6d2dba327e9cb50283dd9db0809ba3f8a888193836ca8703dc3032a25a1353614ee6aa6ca1834a4eb2831897a87611f491c68016f365d8080a894e129560ba4cdf5d2819fad1ae102a4ef425976735a652eb3beb0b61d2f9d324d4c8ec95beba761f8018139f538cc113f625b6b4cda06c5a4c26246d1dd805d4ceefb7594efc3b057fabbb2205b2ea58be483fc68f70331db5d0e312ef5c2cd007d1a9b7d6427dd452e83251b7c03c3b912335accaad355a8476f3d37178bf48d71daefc6c2345f1c33f5c15a9a46d1cd889f73b2c4ff56db48ee9052ea8d082a7b5c2e61d8d2465bd70b7ba6638d228938d43a1032d322947ffd791d25c611c60330d5755bb1f788c067d9e7386ccce4706124e0fde929993cf384d5f5838af82743f68e820e3b8041931b7e5dc4c8069b815edfd38967a7a55c03c7330bdd5f0da9fba2f5ca0d74d9bb0bd2e4a74d9134b02825f0fb7f07dd79cd4ae83d1cd9686ae75db5cd4bcd37a1d8ae3f5a7d8c1c13e30bb55e9ee4d82408b29b83a249e1493854989f0821edb3192a8a77ece5a2469f0696af214e049b1fc084802453b5c68d9091aacdcf3886fe90c4e1f59515220b8c2e25c89fd5957b4cdce6690bc57dbd3902e7cdab7b420151407d2acd756cc27bc5527bbaa5fb286ed70a2934191083c1cb8634b2ce4e14ba757e4709fe5c01012748431f37c03f2d7e12d06352cd3c28962504186d9ee9ea57fe761c73d6758f8f268385d06b45fbd4efa9ab35c43f09211faebc7d7831912e9b0173fabe157db502effbc1ba876be17687548e4d72da6bcc38c203d04d29a01702ecb2ee058d24b438ccd90e731afaaa6e466f0fe7fbfbc2d7232ec7441e722617f7e2722527e73d4ede50a44948eb035da7b2bd481920a3c845aef158ac9dc3b42cc469ab579eb5080a9124119aaa330cce0ff95244d38c82a3edb1b500c3296f66ac2b39e7f5bf5d8c7feea32d2ef72e4124de7ef6338f1dca210e8bb419ed25cb6631ca983fc78c900ec113ded29dca18c9ea00b23f76aa7675581c839d7d950eb816797bc5fc6191c0ff7d097d427fc52399d96528048e72a35ddbbc3041cce396ad99e6fbebcd4c87aad500764c8ce8f7629c38c3ef43b77b91c5df41a5bd314aa877030978fbf6ab0dcb1b1e36c67dd02820ee50fb5ec6073c60ebf903ffbf29c85ea4ad8e60b7c07dee72f0b1de051d8863603e1c3cf833b2f6ab86c78fdea793f0e5e5255c1317b29c3aa1fd1e3e3bd900a73523be90726c22a70db409f829119c1ca3874b6ea1b1b98cb87b23c2d5bf0ba121ab29e1c59cf6f541f8c4407f371e423f5393601cbbfc9d3ee003d8d09489efb5418d952e589de388ab844a5407ea3355d274f6ee2ac02637bc3607159f85623847e97a4428ec9e56bf836c5f68f1976160c4ae119419a004c1d04ad445a60b2692cc9918be9042ea72d894e82f25078bf1a463071eaab7a29a4d916054e69ccec997488e88fc167ea0190254badd628a3ea9e9b3a4009dea6bd9d642ce6a43893e2ac945bfc8409a6640c4d9d1294837931b9686476adffeca66518d66f1f4cab2a6ce55a968457167ce51db9217f387c2a20c6478adca9b3072c4a3e79d110493e1d98b4844cad5a37119fd5156b5aa251f7f4af9d8041d940898469ceb08e8db4a4e3eeedb59a3ba68d5b1da4c3055597703ef39b6f1a0b03e3450663319051676c22760d96fc355d7e54af6bb702c031fde3977a188e6e55337089d210ad71e1722e747d75eeaece8fa70c0f6231840527b9e55c297d1628e9266b2adc424e403b25fc795dcc973277c760e2d9ccb831f4b88bbecbf3919b4fc7366255997a8bbc57292d2c3a5c865b3c32bec25645b5aa50aa267cfb448b9e2ec556c1cd835b41e41cf289e1a7f7992edbc4a2f40ebcfebc9c2c84683192b635eb237524cc506bef462039b21caadfdfe274decdf98fe2d782baade91fd4fc6b378cbdae2ca791d9e2958ef6f5861bd6d1beaa68aff898ce7566362019c2041411e3fa7b108ec26bcabe5d1071c543261a440999649920acc2c61cc0b82bf855e143a8b4c9152abb5e6e43db82f8ee6c8414b183e612a8d74c39a7b6ce29313be4a9df193ea94924b5c1fae3cf0de7d48a5b9c492228db9d4a0d38fda0dafbdba7c6118cf42211817944b038f96a3", 0x1000}], 0x6, &(0x7f0000006e00)=ANY=[@ANYBLOB="e8000000000000000901000009000000bccc4cf811fffde2dd58194da4259f756bbd6409035d9a7b2b0b9fa9f033b90a80dcd07b52488e246c4ed59ecdf640bd8e37b5194bdeedce7c9ce3c6b35a6f2c5febca4dd794c770c10c84e8aa5a04b3b95bae149383bac344f1290ddd9e1aa6356e5c0e51e4c31bb677e18cb57441287fabffa38091da55198bb32dc29fc7425a492fa48cd75e74e5b4c9cf4cb097fec94160f9136b66763acc9e736e268be39b6e6ee19852990b4b3c17e8b43472d233d9d39b177507c24deb9db62463b0806d2b701fdefc0000000000a000000000000000120100000600000023613c434588241934ada29fdd71cca7b0fa774942e3609807acb77247451151ce85ebb3cecaf374fd9efb048e7a6c8047cb292894b296eecc702ae5fd3752c545ae865abef46ca62568719a432d86f1c791a4f668d7403c496ba664bec973f48f8d111f1dca1bcbf9a211b2804f438d4937399f8768415c043092f4e1570ca496193ecc6e58217ab9dd51000000000070b2783f7597be3d57d6033f88542ae7118b3fe6fd83fcd431078ca806d92be42c1d19ccf382f6dc2c0c4de3bf4c7b6367e00e1a7ebd9de966e6bce93e8c13a648d2bc02792b5dd0bb8a3edca9ebe2d45a6cf32fba5a24000beda40fa2bd3a15c910d8b9b0c10e8da5de22b4e6d0a8770f7ae3383f883e5f47a54b5131836c89b28478d8b019a42d2d177170f6b57712c4548e652450ec623a00dbaaa7e070ccd29ca770ca8538d900"/560], 0x188}}, {{&(0x7f0000005440)=@pppol2tpv3={0x18, 0x1, {0x0, r1, {0x2, 0x4e21, @rand_addr=0x64010101}, 0x2, 0x1, 0x2, 0x3}}, 0x80, &(0x7f0000005680)=[{&(0x7f00000054c0)="928f39a53e27addb766c307dc44b20c12bb47ed157d0e33673899f35ecf8f272fef53b265526da978ef93721b184b730a9d52907751ed3ad858294353b7ffd7ef6099e770ffcbf8647b63656fc33e12ab05853e15d0dfe891615e3bf138d090d702b391299349f7ea6aa5edb28620afd9648a406147f5791a5e935b4a77683c26c2d5b079e82834bfa633bbc37e5785d924957113a818cf33167a7a537a2cdcd9e6ded8453c737f57a11c0df009075245d20b30c88d7f4457d209095d17951bb32d470e49df47207bcee4173a711e79f1aef89f09d0a881dbfa46e846a6f139f15c598bd3fbfe382b10cb19ee4fdbf74b533c4cad5e578b3b62e", 0xfa}, {&(0x7f00000055c0)="bed3e9b8604142b631ade563e56b1fab595fc4c371546544226515013526df3c1e78ec3fb92acd53ce29b9a53290e3b098b6aa94642cb573cdb859ac6e158957d0f4f97f406101233b42fb181f4be28282ab6928eb8a621930e97665a1e0e1bd0160fd3913341c581a608c1d306f051ea840f030df4dc50d8c8199112cbaeb4792ca92", 0x83}], 0x2, &(0x7f00000056c0)=[{0x10, 0x101, 0x833}], 0x10}}, {{&(0x7f0000005700)=@pptp={0x18, 0x2, {0x1, @dev={0xac, 0x14, 0x14, 0x41}}}, 0x80, &(0x7f0000006a00)=[{&(0x7f0000005780)="aa14be113dd11b186f9dd0deb6229a32b25bfc6dac7dbace1d0f01db994699d4dcfbcefc9d1896c91898b0273e042f97dd73e88847293c6db03375cdb91620489c56d90abfd1f291f375e3386c3c73c4ac4f27ed87a3f9ce496f2544b3036321a7b38db3ca4df66be162ac05150967c9d100f991c26d29d864594581b7decf76fe91aab3a12219854a5f6d400ffffa95fc5739ca9b0b95f88f5bc307542590ac0006b7b7da2b0e5ebd7cde12049a0a71d78b0a9e", 0xb4}, {&(0x7f0000005840)="27887d3ef96190c889c70c5fe2961ea42cddc38cb1b8e48bec3c51d315bc655bfd101a3fe66b06a2ece8240f92494e6c70fec374676e5098c87c60857312d8c133749acd0967b27837dc75764815db7d487a87bf2b", 0x55}, {&(0x7f00000058c0)="ebb3332ad4f4fce5a8217c0efb17c9bccfd23101a7cb87a51dd81aa5497f9f5a182c6ea1b73251bf0c4cdb04dd8246a3b21a296e4cc4046121e60ec6be25ca51a1d48f8841b26508945ec013", 0x4c}, {&(0x7f0000005940)="903afba2c938ad67a489436ecc45f7c08b3a16ed31ad445f1e70bc9d958176f9a75c3bd9bde7d235143bbf0474350aa87bd9fe1c514e21268c8999ea7533d9cc3eb9787e09467c39ef93b70310f7cc1efb7624b3bde54eabafcd32a6343f5347503c1ebceeef09c0c8af864d41af4dc6d5ebefdc0d9509755bc3a5ca0345dc86385a16f6f606a6a015f3b3bbafa412207970a442d07ea8d2a53d65f842b4c96f74d40a7779a4bff55b44dfdec3b893c9cca92152da1829f6987fa977c1d2608a9f674c3f505b43fa1b8de912acee49ddd748506b422d61b7ce38e86b60ee6c29480d181dec443ee6c9dbe44ca34046be6392e1ac08f2cdda9dbe30b9282bae037ffbb693a0c513cd7d77322f9eca73c0224395f70f75b56835c198454a668c91946836e5eacfc6db2837086cc4d385a59084d0246105110fa3c56e34d12d4c2bf01830d827112014b77ffe7c22e1704c91eb089f6b91ea75083902dd48c4fb2f40a22ab16787324516912fdfac4949ba10223d174eb05d33982c09cccef88d1d3cd37c9a90aeb723fba623120b1344d61b34b24fc091123b98a44f77c303caa3cc79775cf9aba9b63162b9440a474ed4e14b5f14161ac1141ce4c11dd724495c5393b581357036ce23764335287ab7ec77dcb820540dc09ff82ba729f818f4ecc9c06c5ffd8b7ccd28cdfb5dd3ce3f05f2c46e9d90ff1d00193e76b1560af2bff53f0757f51dcd4b221746efe49671faef322ee16795c2f8769ef4412bb5942f8ff474979edbfd5a860ddc3e8eca05e6aac1d6d79d1c2185e875120c4a47192958abad3e70260972318ad334f3f6f79dcdc5a7b81ad97629a9163f12cd47d100868c8ed2d819f88eff4ca7cf234084876a56905b5eace751b5d32ec5602243f0174cfbfaff20e6716e57307d02d9a109f73befcde9b2d543ac94909846e4e0839094b2bb953dcb01ce4fa85f6f8f21c519f12d3441475659846309ee835e8e9f11ff084d041fdb89c4a33102cd25eb1e474270c3163fe69291c840467a0500ef468dd2af27faadd693ace756cd0b396d5d6e023ddea65e210b8dc53d119c3eb3d9fc3ce74250f47944f91c3a6aead4bf681792e26f1e1466cacc8e08c2452111623b727f3cab90dd8660b0a12f74926b78df5fb7c50093cc926f783c2dfbf34ef4c2dec21cdb02ea61ccc2b54d90057cbb3958b5303e00a6306143fc5fa1fa77988358487e2da7f3a1db45dddd4008f4431c849e478e822d4f9891f135afd119efa03c7a2b24871088bd40f298e6c8d374e7705dff10308a36dd8c02aa4e049221281417de09c68cc2ab11b37ab630716f99341e4c7fb3d33bd12df1236abe616843a294bc748d6deab443b538cc199fc24e1757fe615273b6cd7000fb5a4228f2c3dc0071cd63e138b5db4b59bfdb1b23f8dd93413936457be224aa5a97ae06e7d4cbfbe8885d8f84c4d1d08560711fff381152020364115d0617f35eb44627521e98c853a6ed38dc0d01b782793198ed1b5bc68dfd4a88082e89a9b923615c2ce43f5d4341cebb998ecc4b0b6c00e51262606fc139db1c28d87e19c03f50fbbcc2914dd3fe8923be77512892d19ce9a9c765c0dd40261e92951d7093717097e8b8b3227945e9093b2bd720bc3b967bdac578d9974caa6f869aca8a3ab20f217f2225e183088261140a127ff9a2ebd257c8e02ef054336fa202bddffa4cb7b6fdfd6b0c38440db21fe2a05031a8f228b8f89f0141a4c542401879a4d87bbd30ebbd481678e5d3c1cbe74b72d99d633963e291c6b247110f76c84d212f39436bafd6b472d00c3b0595244293397b5cc8f714090c433fe1e1f38db3552e13ff821f07861672dd8c29b58e08e4184ad38e6ac2e1ae0739387f011c537cbc82687826bfca82c13ad3de35ef8557b4f290becb2e221e03a162d9485fcbdde8491fd9e24f4aa2bfb6b21f154412e80395feb8124fa4006ce86453ef4d7f146db3e2fe251b47a16b6e1dac7e43364ce426dde877487078230d127c78b468041baf898b3eb88894b49a370b3c4850171b3f2fcb5ad7d7562084afb3c357067221f4198456b0105f5b9848d54be7e09a1f0340fad3819bb39aba725d4bb1d4d60002c1e1c9f573ca26c8b54d00810b118aa14e32175c1b4826a86f0a9f58e9f6c0de2f856277f96fd079d3d3bb887bc8d860aab204e3f500f283e076d6c31566fef7ddc40b99a9c681d0accb953643eb2248b2c1d0365f8578c55142f7258e043e5b72c55147c3537c6b1b7134dc68ad3c989e8c7003530bbbf8804ec0599adfee62f8779296290ba66031e69e1a30513e5a691e12f4a24ca524c810262c38719d4abd51d7aa17f7a759204061f104018d9f4cd01980e2d49eb6f626da08ecf070458309cdb7a6b3b9f1c8ac0a440073701c959ced9e284ace90b65fe4ba6110576b3aeb8deb24ab54a9a76d2a15809943bdddc34bbb71ee9f81b6da6a6858730c909a29b386a415f884c4ad8922d19112977e9ba741ce0b17d0383be8cb0b45c49ac2cd543d3d9f51a9098415b1d8e398abb0874d43a6eac403e976d6786776148f17a7af70f02d45003600597713460ef02096bdab9aea6b4712ede40eda1c66df789e7f194dd76a4c871c29429768a1a295d6a7e30d759a8d7b923a82fe98e67f044d6224762318f6fd167303edd35b4b2af08c9ca36d4a87412474516f5f643ddc8926990b1529324d7e9e2e1151bb70d82714b8591f31e0d8215db46ec183f6177390e403a40e72942c165f5fa1e300044e37efd5a9541ccb110bd622e8bd90f578ec3740e70081b0cca4f6a365a556244d3a32ec9193b8fd97baa929ed4d26bc02df925cdd5cbd2e351da1b53d9aea78117223ffc8230a003c61f126ed409c22bc542fd683a54edc748438e32684f3651da52c935d23005ccddc1b23f9d7b22f06385ea201820cd8345eb613877a548aea294b238be8b75d82b12e4e1449cfd2e98b3176c0b22095136eef2065bdb5118ffa9a61747fda56267513385847d127f74ea153ddef6e61361ab64ad7f890310931582568a7f96dd3d9886aeccb381036893562253df653d75bb73d91a717ffadbf851e83da7a7445a42d3350ac2e352a6fd70cd68a4c510dfec561aa5a21828876e3efbe9d8ec15585b03e4e03dc7896e561fa7b0a85036a2b3c27604326ae086d8e83e60cc991d6f9dd6740af62a7fbf8522a94eab4f95e88bfabb78c9af6d583c166fb9353e3083d0a9225831df346c918d6b9baecb60a8061649709d6380f5a7c79a5135baec02fe5483a92bfdef308cad7e707cb6e86e25cb567b7b5757bc2a94d428338e7439db62a2017147e3e71ce611b0fac65e6a483bf60abc76b792a5a3c8d90eb5c7dde7934e4ff808365cd383ab31d895e6bd84df7d104f859753af48b17e1d8e437af812d5e660f38e17922856a68def9c64beccf78dcebcfcee1231fce6c50e437e535d3a3701fb57fc70d5d88cf62979e873c95d5f34104dd0d7d4da66306df8b8ffd5e482a5e6fe5acec0608b59aa534587383999a2ecc053389ce45034caa77bb9b9b8b9d20afd5a178a4ad18594830050a2e23b1888abbb451715c74c3d65613f6812fada40d87b98666756d277ff9679dab7526876c2b369ec22bd585fec2e0a24a2127ff4f25479b647a26c32853b6d24aee91b60c1926f55b6ba0046228300c49028e73b7540e1f86aaffb26d05e553f4c40a9026f061709684260fe8c7d7cb7000fcce84c0a801dde2dc6d60e0b5c1a0b9d7659d289160955db379573a87fc46ce8434ff91d4dcf60d24ba0c43edc208a7b3f1f9622d9cad6e22c560abf499011848afd55aff57e4d2ee01635227059a915882afb0192981dc6226880cb2c094dda71b38527e605b3c14c43cf942d9d456d95b67a13dd254ae01226e7ebcc25f4ed2aa65553a96ae0c3c5723052ff82c42a39dcd6f5bbffc7e288d9fec5d385adb51e7b2f993c027fca9c6d0d51c75a1db51302c836aa94503042e7c05aaa6ebaf519f1e518d3019ccb1d8ef29fe07028e48d607bcb3cb817043b89921301e13fa5139b2046b5189451f9962ebe8dcc4d69c85483b16741a1afee3baab0f787877e2fdd6ef0838295070dd1a69293b6279d635dddf3c22a6f13e8a2d8fc6fefc3278b659a6f269479c2921003a973c63fd83faafc13b221e7a450bfdaaf918e21fbc312f6b308eb7bd1b88ac042eb3f9ade0b32900b43ce575bd4a7f42cc5cea9a12dce77ce853dc9e66c192615aa99298d5009073470a783c14f9fceb7a6f383a66123de0c3c33dbd8cfbe9b96b8b3b3c3aa179477959641b5c208e093b039c9c62591c947cb848cce0bf2c2728f30e4d1c55c4c077e0678b0288525fd27bbdcb3ac116d96f71b1fa9da962d5792d4086de1da451da5c761d195c50abc59a93a0aef7aba83557789aca8ce89f2c5f41c482dbf56656ddadfe09f6f075e2690b727aa90c02c17de988427edd2248baed9ffe4e290c8dca64ffd66f9ffa0c745d8978265a257ba19ccdb466dde46211ec8ee885cf809c4dd4e8a18c4a3146e13ff2703b4fbde0c2cc1e2cb310e3fdeddcecafe22191dbc713decd035084d09fb3f67b6574d101921ec1e21e2b34046c15c100b00479dc7db18f18bdfb195da17817ccd491654f3d179cf6213ceaae8316ec2c60746b7d71316083eda6dd526ca483eb0ffc789f5d2c531dc072b60ed694f51f110936bdfe94aaf269ccdee7bcd0b56855a84321d21c7c503f819439a6d29627a26253abc41fb31d0c271f98d87c12304373dee88968b2743c617fa4f1dc373e7b67066831d6a027697846d7863a93ab35d588277eda56c4d9cb0dea84455da2a72d76ab0680eeb6bf8387c9346a3f3e1c9fb63da79716d8c5989e010f02a56080e30ef0fd12e0854e870e03760b3ec79a893bd12593f4820377320d0ab7db77b9766532fadcca01e65e205b7665bfea86d22ac9051784bbe76d79c032198a2b5944b0f4a7835c4c0faef132019f8e785a56f7e3241adab118f79256c19efb117c95cd876eb75da8f4cb360290a3d21d5bcba5fa342e4ce82ff2d5914c198437140fb0b584d2ea9e9c033f12f970a7d1078ef18a999dfb6b85ca26887a55a6b5f9c8ef4d990e30764c2afc0472e138a865832616e982acae06c592abd314b7b3a98bec384ca4c4d203459c82408e3e905b10e4beb0feb7605490a039e6d457e870f64c688f09ddde17399d88a84f801eb8809ce75d011e971994fdb509ba485de36e7a12b3c5b07228715e3895b0b09d0b2818666997dc6c6dedb46e453b8e1abc01e0197e239dea72795a9c197c328583bc38e21c831e48df09a7db4916630d149260f42e04edf35ae179ed1dbc91b1867ebf52907438c329f411021f8f881448daf245b70cbc66fb4a3e7495b30f376039768f548ce311b9d7c924df7d53b53feca76c0d12fb5039b3c274454294e9abe61143d446b508c9d007ac28ba7157d5806a6f3b29b5b8679f28c70091227a475f182d65360551b236d87f1a5e0d991dd000984849059955e418fe4f5700c7af222a4a65a0c28545b954721736ad509a91cee2535bf0212c33785d0a9b3dac91b3171f840b591c60ab73435b3e7722810c2c6106101e2abe392dd5321beb8cd1c156047b6539ecd3a8154f15ccee2c0412914a3c09bf46e4b4c53ba8d8e6c4f044295ef3d5e876b58064dee2771fdab2f9683e630a3addcc66d2db4588547fadcacf078b44ddb38cf9e389f0c21d1294946fbc6470fa874b38f7870e5d56239e83ac", 0x1000}, {&(0x7f0000006940)="8ebfde2e57492b712bc9aec66c706c1f8eca6fd93340899e68d98769b6ac8492cee2beb273f58dcf6eee2e5cdab8c63192c4b6bb03084bb733cbaecd638f8a16daceb0faf5ea66fca39e1015e686e4c3dff91ce9396922ed7c6864c2ca34c79532348b2a766418d38f14d660d8af1d4f3e5e8884cc4de3be07b4de8c1c687f4fc676ec53bbf3b3b15137758101b02db482a6465cafe52493e7dca5a82315e3b2bf25f050e400eae9cf9518", 0xab}], 0x5, &(0x7f0000006a80)=[{0x68, 0x109, 0x7, "5c4a3ce8d14148f46913d785eeab0f00c157ba3dadb867d0b4ffb052090c2d6295d85a4fe1c53f81a15372c91bdb968ee637ee27dd83cd3bb70624ea327839a05f283aadfad85441dd6875ffa63dc29d7713257e"}], 0x68}}], 0x5, 0x40) r3 = socket$phonet_pipe(0x23, 0x5, 0x2) setsockopt$PNPIPE_ENCAP(r3, 0x113, 0x1, &(0x7f00000008c0)=0x1, 0x4) getsockopt$sock_cred(r1, 0x1, 0x11, &(0x7f0000006cc0)={0x0}, &(0x7f0000006d00)=0xc) r5 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r5, 0x0) preadv(r5, &(0x7f0000000280), 0x18, 0x0, 0x0) perf_event_open(&(0x7f0000006c40)={0x4, 0x70, 0x40, 0x5, 0xc3, 0x1f, 0x0, 0x3, 0x1080, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x3, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x7cf5, 0x0, @perf_config_ext={0x2, 0x9}, 0x400, 0x3246f284, 0xffffffe1, 0x8, 0x0, 0x6, 0xff}, r4, 0xf, r5, 0x1) r6 = fork() fcntl$lock(r2, 0x5, &(0x7f0000005280)={0x1, 0x0, 0x3, 0x100000000, r6}) getsockname$packet(0xffffffffffffffff, &(0x7f0000000040)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @local}, &(0x7f0000000080)=0x14) ioctl$SNDRV_PCM_IOCTL_STATUS_EXT32(r1, 0xc06c4124, &(0x7f0000006d40)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2}) 05:19:04 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xe, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}]}, 0x70}, 0x1, 0x7}, 0x0) 05:19:04 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xe, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}]}, 0x70}, 0x1, 0x7}, 0x0) 05:19:04 executing program 5: r0 = openat(0xffffffffffffffff, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) openat(0xffffffffffffffff, &(0x7f0000000080)='./file0\x00', 0x4002, 0x85) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f0000000280), 0x18, 0xd9f, 0x0) syz_open_dev$vcsa(&(0x7f00000000c0)='/dev/vcsa#\x00', 0x80000000, 0x301000) ioctl$BTRFS_IOC_BALANCE_PROGRESS(r0, 0x84009422, &(0x7f0000000c80)={0x0, 0x0, {0x0, @usage, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @struct}, {0x0, @usage, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @struct}, {0x0, @usage, 0x0}}) socketpair(0x1, 0x20000000000001, 0x0, &(0x7f0000000100)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$PERF_EVENT_IOC_SET_FILTER(r2, 0x8914, &(0x7f0000000040)='lo\x00\x96o\xd6Q\xb9Y\xa9\xc8J,\x00\xd2\x97\x04\x03\xdc\r') ioctl$PERF_EVENT_IOC_SET_FILTER(r2, 0x8923, &(0x7f0000000680)='lo\x00\x96o8\x0fd\xa1\xe3\xd7]b}\x1f\xa1Y\xad4\x90\x9d`\xd2\x98\x00\x00\x00 \'Y\x17]\x15c\xcaR\xdd\x98OC\x89\x1b\xe7\x84\xe2\x05\x80w\xd2|D\x8dK\x14Bx\xcbuH\xc2\xeec\xbf<>Y\x1a\xfc\x1f9OB\x81\x89\x186\xc5q@n\xb4\xb6s\xb0\x00\x00\x00\x00\x00\b\x00\x00\xda\xef\xecE\xec\xd5I\xb2\x9b\xfe\x8d\x90?\x00\xe9\xe4~g:\xc1\xb2aj\x96\xbb\xa7\xe2\xc0\xdc\xf9Q\b\xeb\x16\x7fT\x11\xd3\r7\xe6\"f\xcf\x8e\xabd\x0ftp\x82\xae\xd2\x15\x8e+c\xf6\xbf\xe14>\xa6-\xa5c\xde\xd7\xab\xea\x1f\xf8s2\x9cVF\xd5\x18\xfe\x0e\x8f \x01\x00\x00y.\xfc*\x82\xa5\xa1p5\xc8{\xf7\xef\xab\xe8\x99\xebw#\x8at\x1c\x80\xfc\xb0\x95\xa2\xa7\xd7,Y]E8\x83X\xf5F\xdc\x88-\xf5\xb0\xb5^\xdb\x1a\xb6\xaa\x14\xe2\xb9\rh^J-\xd1\xbaUn\x04\'l\x1b\xe0o\xdb\xc8\x91%\x1c\xb5\xbf\xb6\x90\xb4\xc2\x7f]/\xb3\xe7\xc9\'\x94\xcfIo\xdf\x04\x95\xb5\x06\x84\x1fH>\xda\xc5\x04 \x94\x88\xeb\'\xd4;6\x7f\xd9\x99-\x1b|G\x8d\xd4\xb9%\xaaQ\xa0K\x10\x03\x93\xe1\xcc\xe7m\x80\'\xf0\xa5\xed(\r\xa8\x0f&\xb1\xf3\xff0\f\x82%_\x92\x8bD\xb9\xd9\xe7\xf2\xe4\xc1i#\xdc\x87A\xb9\xc7\r\x92\xfa\x11\x11\xb5\x1f\x03\x9d\xdd\x1bj\xdf\xacg\xe3\xa0S\xd3\x8a\xe1n\x97\xea\xf5\xa0\'\v\xe9\xa0\xf1 f\xaan\xcf\xb5i\xb6d\xbc\x92\v\xd58\x16\b\xb3_:\xa4!\ny\xc4&\nWMM\xa8\xc4\v\x9f\x01o\xf4\xab&\xb6\x17\x02P\xc3!N\xa1\x86\"\xd7\x04\xf1\xc0!\xed\xff\xee$\xc89\x8cB0\xd1dD\xe0IP\x88\xa2\xf2Y\x9af$$\xf1\x81\x96\xf7P\xac\xca\x80:!\xb4\x94#\xcb^\x9f\'\x03\xe3\x93\xb9\x82\xbf\xcf\xc4\xe3\xf7\x03Oh\xf2r\xca\x8ff\xbb/\x9f*\xaf\x1a \xa5\xa0?%M\xa5\x86\x98\xfa4\'1\xc7\f<\xcc@\xe8\x8a\xac.\xde\xe4\xc7\xf5\x9ck\xa40!\xe9\x14$\xb3\x05m\xb5m\xed\ft\x93\xd8\xa3\x80\'Y\xb9\x05\xbbt|\xbe\xbcz\n\xf3\xf5p\xf8\x9f~\x1b\xd0\v\x1cQ') syz_genetlink_get_family_id$netlbl_cipso(&(0x7f0000000100)='NLBL_CIPSOv4\x00', 0xffffffffffffffff) sendmsg$NLBL_CIPSOV4_C_LIST(0xffffffffffffffff, &(0x7f0000000300)={&(0x7f0000000140)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000002c0)={&(0x7f0000001bc0)=ANY=[@ANYBLOB="ba01000015e913e73ab82083271a850455e66e48f8ab6340fbf34259671d74010000000000000021964771a5daf364daf34a7bc1bdf18c4ba98ff8199775863f84c471d71975672ce83820e109d40ac4c9ef4204b10c9511d4cb9a1fdb1d41f552acacdf08752840baf90700000000000000b8c8db05c01d17468f1c5702d54280d0cb1cbe631c4f47acc100a4918dfce089dd08d527ffcb2f6588d51a8e89ad3e61a114bd7bd354865812ad283fc8eee46cb7fd999c5bed57fa62b97c8ce7e87e01d6d8fe54b2269bffb6fd8ffa67c6cdb3674521bb7b878c88a057ed339f9310f7db66cd1e19c9e0a1b4d455511b70647dd7e8142f71bdfc69552f0883880ff0dccd51b95504d22279135b3df122fefee05f71250da37f4f3f14f504e1c46cb6a2cbf6fc70aca58b97e76e8023f99be68e76782d479b9f7d26ddef0e6adae305b9aac8055180ccf555d429e58a7aba6df0291b88237fe41e711942095e8c02e26a22675bcc54300094a1af5ce11ffd1104db9f71eddad711c00c24e90f8f90866300f81ca06d66f4b17915fef24a7a6b8e7c1e80d3b8dffff2c96c77a578875c793445ffb3ec7ca8696d288552e6df1039c48e4ceb77f51b14127fcc001cc3248744d462b43d48cba20ccc3d40be923594a7b65b737fb9983a45164b8f701996c7d1d0886f604d179149c2deb908000000e3006173372860f0c57226fba67d795b32fc319e249dec420eeaa4d27173371e4785831ab0f81e90468a97e6bc1a4755ad23c44c72e7a205f4ec61a6c8e5c2d8636e9c9782", @ANYRES16, @ANYRES32], 0x1d4}, 0x1, 0x0, 0x0, 0x24048000}, 0x0) ioctl$BTRFS_IOC_SCRUB_PROGRESS(0xffffffffffffffff, 0xc400941d, &(0x7f0000000340)={r1, 0x100000000, 0x8000}) ioctl$BTRFS_IOC_SCRUB(0xffffffffffffffff, 0xc400941b, &(0x7f0000000280)={r1, 0x407, 0x401, 0x1}) ioctl$BTRFS_IOC_BALANCE_PROGRESS(0xffffffffffffffff, 0x84009422, &(0x7f0000001200)={0x0, 0x0, {0x0, @struct}, {0x0, @usage, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @struct}, {0x0, @struct}}) ioctl$BTRFS_IOC_BALANCE_V2(0xffffffffffffffff, 0xc4009420, &(0x7f0000001600)={0x0, 0x0, {0x2, @usage=0x1ff, r1, 0x8, 0x200, 0xf, 0x2, 0xffffffffffff8001, 0xe0, @struct={0x1}, 0x3, 0x1, [0x8, 0x4, 0x58, 0x3fffffff800000, 0x6]}, {0x100000000, @usage=0x9ca, r3, 0x2, 0xfff, 0xffffffffffffffff, 0x9, 0x80, 0x62, @usage=0x100, 0x100, 0x0, [0x5, 0x6, 0x6, 0x1, 0x8, 0x7946]}, {0x200000007, @struct={0x8, 0x12}, 0x0, 0x20, 0x2, 0x83, 0x10001, 0x15b575bac000, 0x28, @struct={0x5, 0x1f}, 0x87, 0x8, [0x20, 0x4, 0x7fff, 0x538b7e3d, 0xfffffffffffffffb, 0x80000001]}, {0x401, 0x1f, 0x96}}) ioctl$BTRFS_IOC_BALANCE_V2(0xffffffffffffffff, 0xc4009420, &(0x7f00000005c0)={0x1e, 0x4, {0x8, @usage=0x3fb4, 0x0, 0x0, 0x1, 0x6af6222a, 0x5, 0x4, 0x48, @usage=0x7ff, 0xafa, 0x3, [0x800, 0x4, 0x1000, 0x7, 0x7f, 0x10001]}, {0x0, @usage=0x7, r3, 0x88b1, 0xf84, 0x5, 0x8f5b, 0x2, 0xc25, @usage=0x4, 0x101, 0x9, [0x1b56, 0x7b, 0x7fff, 0x200, 0x1]}, {0x400, @struct={0x3, 0x7fff}, 0x0, 0xfffffffffffffff8, 0x7, 0xb74, 0x5, 0x966e, 0x400, @struct={0x10001, 0x7f}, 0x2, 0xafa7, [0x2, 0x4997, 0x1d9, 0x80000000, 0x361a, 0x7]}, {0xf7, 0x3, 0x2}}) r4 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r5 = syz_genetlink_get_family_id$netlbl_cipso(&(0x7f00000002c0)='NLBL_CIPSOv4\x00', r4) sendmsg$NLBL_CIPSOV4_C_REMOVE(r4, &(0x7f0000000580)={0x0, 0x0, &(0x7f0000000540)={&(0x7f0000000040)=ANY=[@ANYBLOB='kiH\x00', @ANYRES16=r5, @ANYBLOB="01000000000000000000028c7b66609a25f64b63c10000000820010000000000"], 0x1c}}, 0x0) 05:19:04 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x0, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) 05:19:04 executing program 0: r0 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r1) read$FUSE(r0, &(0x7f0000000440)={0x2020, 0x0, 0x0, 0x0}, 0x2020) r3 = syz_mount_image$vfat(&(0x7f0000000000)='vfat\x00', &(0x7f0000000100)='./file0\x00', 0x0, 0x2, &(0x7f0000000200)=[{&(0x7f0000000400)="eb3c906d6b66732e66617400020101000240008000f801", 0x17}, {&(0x7f0000000140)="53595a4b414c4c45522020080000e680325132510000e680325100000000000041660069006c00650030000f00fc0000ffffffffffffffffffff0000ffffffff46494c4530", 0x45, 0x600}], 0x0, &(0x7f0000002480)={[{@shortname_lower='shortname=lower'}, {@fat=@check_strict='check=strict'}], [{@uid_eq={'uid', 0x3d, r1}}, {@smackfsroot={'smackfsroot', 0x3d, '+:)['}}, {@obj_user={'obj_user', 0x3d, 'check=strict'}}, {@smackfsdef={'smackfsdef', 0x3d, 'shortname=lower'}}, {@uid_lt={'uid<', r2}}, {@obj_role={'obj_role', 0x3d, 'shortname=lower'}}, {@smackfsroot={'smackfsroot', 0x3d, ',,).@\''}}, {@fscontext={'fscontext', 0x3d, 'staff_u'}}, {@uid_lt={'uid<', 0xee00}}]}) open(&(0x7f0000000280)='./file0\x00', 0x214040, 0x100) ioctl$FS_IOC_ADD_ENCRYPTION_KEY(r3, 0xc0506617, &(0x7f0000000340)=ANY=[@ANYRES32=0x0]) ftruncate(r3, 0x4) r4 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000)='/dev/kvm\x00', 0x0, 0x0) ioctl$KVM_CREATE_VM(r4, 0xae01, 0x0) dup2(r3, r4) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c0, 0x401, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x77971f1d4ee585f4) ioctl$PERF_EVENT_IOC_REFRESH(0xffffffffffffffff, 0x2402, 0x6) write$tcp_mem(0xffffffffffffffff, 0x0, 0x0) perf_event_open(0x0, 0xffffffffffffffff, 0x0, 0xffffffffffffffff, 0x0) truncate(&(0x7f0000000080)='./file0/file0\x00', 0x7cfc) truncate(&(0x7f0000000040)='./file0/file0\x00', 0x7ff) [ 314.546535] device lo entered promiscuous mode [ 314.563455] Y­4`Ò˜: renamed from lo [ 314.598844] IPVS: ftp: loaded support on port[0] = 21 [ 314.671582] FAT-fs (loop0): Unrecognized mount option "smackfsroot=+:)[" or missing value [ 314.711780] print_req_error: I/O error, dev loop0, sector 0 05:19:05 executing program 2: clone(0x2000000002000300, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) r0 = memfd_create(&(0x7f0000000280)='\xa1\x9fn\xb4dR\x04i5\x02\xac\xce\xe1\x88\x9d[@8\xd7\xce\x1f 9I\x7f\x15\x1d\x93=\xb5\xe7\\\'L\xe6\xd2\x8e\xbc)JtTDq\x81\xcf\x81\xba\xe51\xf5 \xc8\x10>\xc9\\\x85\x17L\xbf\xcf\x91\xdfM\xf3\x02^T*\x00\x02\xb9~B\x9f\xacl\x1d3\x06o\xf8\x16H\xaa*\x02\xf7\xfb\x06\xf1\x91\x92\xa8\xc2\xcb\xae\xb0\xb4\x93\xb8\x04\xf1\x99\xc2y', 0x0) epoll_ctl$EPOLL_CTL_ADD(0xffffffffffffffff, 0x1, 0xffffffffffffffff, 0x0) r1 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000)='/dev/kvm\x00', 0x0, 0x0) r2 = ioctl$KVM_CREATE_VM(r1, 0xae01, 0x0) write$binfmt_elf32(r0, &(0x7f0000000040)=ANY=[], 0xd8) r3 = ioctl$KVM_CREATE_VM(r1, 0xae01, 0x0) r4 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r4, 0x0) r5 = syz_open_dev$mouse(&(0x7f0000000300)='/dev/input/mouse#\x00', 0xffff, 0x400000) write$RDMA_USER_CM_CMD_QUERY_ROUTE(r5, &(0x7f0000000540)={0x5, 0x10, 0xfa00, {&(0x7f0000000340), 0xffffffffffffffff, 0x1}}, 0x18) ioctl$KVM_CREATE_VCPU(r2, 0xae41, 0x0) preadv(r4, &(0x7f0000000280), 0x18, 0x0, 0x0) syz_kvm_setup_cpu$x86(r3, r4, &(0x7f0000fe7000/0x18000)=nil, &(0x7f0000000040)=[@text64={0x40, &(0x7f0000000200)="66bad104ec67450f01c3430f01bb6e508874c401fe70570000c744240080000000c74424020001c0feff2c24646436660fc735706933e1b9800000c00f3235000100000f300f0866baf80cb83e668086ef66bafc0c66b8d40066ef470f23aa", 0x5f}], 0x1, 0x90, &(0x7f0000000300), 0x0) ioctl$KVM_REGISTER_COALESCED_MMIO(r2, 0x4010ae67, &(0x7f0000000080)={0x4000, 0x8000}) execveat(r0, &(0x7f0000000000)='\x00', 0x0, 0x0, 0x1100) r6 = epoll_create1(0x80000) preadv(r6, &(0x7f00000001c0)=[{&(0x7f00000000c0)=""/18, 0x12}, {&(0x7f0000000100)=""/142, 0x8e}], 0x2, 0x1, 0x8001) 05:19:05 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x0, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) 05:19:05 executing program 5: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) getsockopt$bt_BT_VOICE(r0, 0x112, 0xb, &(0x7f0000000080)=0x1000, &(0x7f00000000c0)=0x2) ioctl$sock_SIOCGIFVLAN_SET_VLAN_FLAG_CMD(0xffffffffffffffff, 0x8982, &(0x7f0000000140)={0x7, 'veth1_to_team\x00', {0x4}, 0x1}) preadv(r0, &(0x7f0000000280), 0x18, 0xd9f, 0x0) syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x40000, 0x3, &(0x7f0000000200)=[{&(0x7f0000010000)="200000004000000003000000300000000f000000000000000200000002000000008000000080000020000000e2f4655fe2f4655f0100ffff53ef010001000000e1f4655f000000000000000001000000000000000b0000000002", 0x5a, 0x400}, {&(0x7f0000010400)="020000000300000004", 0x9, 0x1000}, {&(0x7f0000012600)="ed41000000100000e1f4655fe2f4655fe2f4655f000000000000040008", 0x1d, 0x4200}], 0x0, &(0x7f0000000040)={[{@max_batch_time={'max_batch_time'}}, {@jqfmt_vfsold='jqfmt=vfsold'}]}) 05:19:05 executing program 3: perf_event_open(&(0x7f0000000180)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x172, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) mkdir(&(0x7f0000000040)='./file0\x00', 0x0) syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000140)='./file0\x00', 0x40000, 0x4, &(0x7f0000000200)=[{&(0x7f00000000c0)="200000004000000003000000300000000f000000000000000200000002000000008000000080000020000000dcf4655fdcf4655f0100ffff53ef010001000000dbf4655f000000000000000001000000000000000b0000000002", 0x5a, 0x400}, {&(0x7f0000010400)="02000000030000000400000030000f", 0xf, 0x1000}, {&(0x7f0000010500)="ffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff05000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"/4085, 0xff5, 0x2000}, {&(0x7f0000012600)="ed41000000100000dbf4655fdcf4655fdcf4655f000000000000040008", 0x1d, 0x4200}], 0x0, &(0x7f0000000300)=ANY=[]) chdir(&(0x7f0000000080)='./file0\x00') r0 = creat(&(0x7f0000000040)='./bus\x00', 0x0) ftruncate(r0, 0x800) lseek(r0, 0xfaba, 0x0) r1 = open(&(0x7f0000000000)='./bus\x00', 0x0, 0x0) perf_event_open(&(0x7f00000002c0)={0x4, 0x70, 0x1, 0x81, 0xd, 0x1, 0x0, 0x6, 0x100, 0x9, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x3, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x2, @perf_bp={&(0x7f0000000280), 0xd}, 0x10e00, 0x0, 0x7, 0x4, 0x100, 0x9, 0x3}, 0xffffffffffffffff, 0x10, r0, 0x8158fea1275d1120) sendfile(r0, r1, 0x0, 0x8400fffffffa) 05:19:05 executing program 2: ioctl$BTRFS_IOC_TREE_SEARCH_V2(0xffffffffffffffff, 0xc0709411, &(0x7f0000000980)=ANY=[]) r0 = perf_event_open(&(0x7f0000000500)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) bind$inet(0xffffffffffffffff, 0x0, 0x0) sendto$inet(0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x0) connect$inet(0xffffffffffffffff, &(0x7f0000000340)={0x2, 0x4e21, @broadcast}, 0x10) sendto$inet(0xffffffffffffffff, 0x0, 0x0, 0x20000000, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) ioctl$BTRFS_IOC_SUBVOL_CREATE(r0, 0x5000940e, &(0x7f0000005440)={{}, "6c93eac0ac32d907ad613137966d4301889e9cfbcf5ac1afa4df9ffd9bbbcdf5c4e4a1f8c7fa7357b0559a603f7576a4bd644c5a21aca10deabc93e9e2639a1a50cf37f168bd77fd687dc602af3ac9a0f36a8c66fe072e5cbc440e8f2457d8b96055a2c7a881cbb20d7f2a25ea06abcb6267b9bbbb49eb7f88516a78582997949e8514150e2081d28eccd5d0c69d09f44b92961aa7c69fa9825e874b4e35554315ede85d24a1efc2090bd3e148314892a95984c55232ce55bb6df84c574909db96a7300d82b25147812d2b6052c36717bb87c52da7f432846a1ac5e9a3277ef4c65125f72c7f4eb0ca975d7af66ce3154278e0c73ae9fdf091e55fda6807fa25acf7b000472a50967559083211033cfac5ab0bf2e05c726ebca763c7b2145f66c0fdaba3eee10a92deeee728129da2d2c8dbbea5025e82e9832a902a44344329bbbbed75a3b67b2f30098466ef6c60caf85b5f65e3cb7bd01d0c3bb92b2bef97e7a04133cc4e82f5806c2303f3cdf533c3f4c393d4f8923808064377143b9dc8e7be630552e6cee4384b63ba3c2bc9889b6ccc334b8637c8294f5459cfe8fd082c026c03ebb57d0fa559ea31b4dcaddb68119eb9c3cb073dc2def74c68e765b7a4f8d7f2a464e89beeafdad92b42269707a88cdf563d1fbeab8038e49cefbda5107ce8108f5065bee4824b492f482710515a1e4d96cb88faa542ad9b6e447d50d175b13492c81f53c1a01d7b6e29ef7c835fd819f6a294bb614aa1a39bb377a072f332a6663c0c95055fd4e80eaaed573fc7064e4995bd3013dc8e6429a8323e6114439ff68dc49cb44497200e2a0e09f7af383f2536efc6db2a2263e5cb0dcc5de31c0c97bcd329324f43d2276e2d7835849b118d8dfe27d51f69bfbfc1c2ba1864ed8b8d484f428da36782ed8adf5a2c331985b1f4f4b9a1cc34451ed7451a58d35d34f1c3849f46ef5104949988f072b9686a0b1a123953b3e80e898d960e310bd8473a8f7e14bcec04e25214b2c71f5eb3923b90e471ec58273302c3d7c41d1bbe9affd810ad8a8150fe82a6e30837a69690d72ff9e81c6bcd9a7e848b3cfd39b843ef858d91067824f6ccb6d627aa563b0466611ddac1b9ed75c478048624b46d5bcb47e916e98daaf46602ca32283721da9b98c177afca48770f8c9fb4a865bf33cd984687c8705785d10dbe75b641dc7d89f37e5682131eff280950ba01a7af806a75cd6520e35d346722c6d37769d6fd68092a8fd09517f5e686d5ed75e02889f29820dd16bc487c5c61938a95d609f0ea0f31d36c1dcdacb630b49b1619a9bc3b2d2324c2253223b27ea13e76b83841006c94a2ac81a97c2f83306f91b4ec35b98d0f92a677b7dcdc7ec05902f59ead3fcdc7861b0063181df0dc9a86836306780a741dbc5013645fcc4b7231e94f092137a039fddfdb20e67fae100ba4aa8246543e9f41069d82762c60f44e9cf27b0ef6c24f70fdc48cdd326e7b1f8148df694ffc0c899b9219b7ea100b2eb093c399eb059596217146e323a8dbaf1048b02a0156a6fafa1377bf369cf00ec7b355ff5592ebca760cc5c94f5e8feb68756f45a8473ff69f8e8d291785d31adac1a522fe302eafc186f8e7dec238c6aa0f3c39759e30efa47e25a0d4de15b57c2e711fb0c933baa42071258fa0f59fd976007daface617043edbd7c43aac4a4f58cef32af4fe4fe58917efbf4aff2192c4cffed395c6f1ef53d0eb5dfc66f42cc679c3b8b5e4b21036769d9e38d9bef0812cf58e105429838251a3fd4a08ce9f0815fa6dc316e9f095313ba5e7a4458e1e40cda5d7e6294ee36fba6f7021c9740fb59d588e92522a1527100c3a910026e42d0b8c0b7f3b74e017a090fa8dd9d314846f4dc1e865b1ce95dc8eaf2d27ed4b929ba9989017e71ff4ecc62ce08146a11fdf24e97312c89492fc4a739a2ac70aa2da8ce79964ee6cd87ba07609e5266cdcd0638208f8e41453062d9da98887358ced0c1419bc59b6edfbb211eb6fe784abd4fbed4dfa371b8db24088867b74b0fc09653891a4112af17fe30557367c56fff4fc052efa360467e4277f3b54f9cfc244c08f14e2ad1af03ab592c268f78f2dd92963665c08e53a57c04a71471cb6b812e395cba1fa8c93d83129ceafc8e06b3b27617d72f72f398158986122775c43421e91863b1c1447b0dde35d5c7ed01ead61488368d3cb13f3ebde01d5b5a9c843adeb34090a06f2a6d0663d879fd423fad213277f9f8dfd077c2a80103dda8d8ee46b7d3878152d612801e01776f76cca3ce3956ff20805739bd737852cc9e7731dc32b7ab04a0bbe5c3fc1371c4319999ddb5797297a490be91c968a2e05d52ccc6f0ca38bfecc3e1639cc5a1b4bce78f3a1ab3b2ea09910a48ec0fbb797afac2ba2e7480eaedbc44f31974e2ecaaf519c500208b0d6f441de73f0bfaceb9ca83b3bfcce89c32d7e6afb9a15159ff2c175ef3fd669a602cffcee586d7834c9a37859520ada2e850e35d6ffee758ed568db175070c16cb2227827c9a726c95e1ae80d7981b1d206fdbb04e2b17b464f6d361ce06cc4330307fadc05ef214dcff242273a72bca3b770ef51d32d9c2f6c81f8919d453f81a490dfaa252e08cbcab20a273daa02f030fb5284f8201952d5fa51fa546eceaa50d248cc476f36b7c412a1230ce45362c375e4bca1ab94e1663f01af165590d75b18f9ed3fe81b494ea5a51c17cc77401bda0577f66a9fb27423edb5d4bd7220da5bee4460baa5aee7771083b9935a228d603c8410079cd777d4969fb4b0dca0aa2637e95b5e58d1a53b3935b5f174895294b7e758162c89bcff2b4334e1e2dcca5b1c1383214aa28dfed68fab988c56a1b5e0e75d3ff12308c590c6548a2668e1c597bc51749e72983aa06dbb619bb3ec9527d05d45fe26bd5a201608af8518b72e7df758dc813d8a10fd4bff8e86b56eb999bd44fd7f4e27f856a9844357f6fb78ba6198efe354415016c43397d1d259d6baae5aee0f7307f114879a34da3b718893b3a6707c5c94f38cd7357082165a2eb6a629c5405464265a248bdfb06656ae54e59256555d25132a36b8215c827d2b7f3674debc3f4421b9cd9cb65975479704868833442c40598e6bee4dd39f82025ccf5bd7b11278235aa6f3ab9b60962838740a3cd0834a9498c11964fbe85f0765f82078a2726b421790ccde6cbe943cb04e72871c01b5886f38e7bfdfaf1be094e96d9e6d191a809f81cad93926674643a1e315d7a1d03467780e6239022c30f62e0a7f3e4dc4348ba3756b388ff4ca08188f0a319acef9961ce49173b297212a170c6d7c73ff00003c22683489846ba7f12abc3149f29f52a9b35f71dd05304eba4f0e7db9bd1d676735f40484f5d2fd835680b76d8eefff8d094b07e1382d8d766521b6cccacb0f6d43faa4861d550abb964a130f47a74d9497478368d7450027132e86c1de1ea5c87bf8a200135cd6a4657da986f24e49f6789ea68a709a1cfda6a18519279253e3d9bcf72472cacea43e918e76241946678b460e5fd57ae5d91f9e1e36c34c44af16a93c560059f5a4e03cc1f018105f2e5c441e879899b4a6b811399125a33e44f559e0b90a0924f5a3134d54902b04581424fcc687a3cb53a880ec4e7666d41c28eb03e428631a528d6351e389fd6a4094e9f48b24acb1612ebc93ed9afa3dcafec76d3d0db435ad39570f0971d58facd5afbfd53e655305311ce03a0e8266a633dac752a39cec9f2eed8016f35e8a22c8d0a8f0191da25bc954a675c8af05073d8e64be10b625e553e65f41ddc8170efbcab0123fb6124fb815993b089d50d2d8ee3d7ee091a79916f783c711f5e2d8604dcbfcd7cd0a309374f0b17806d6e32a52d91813044ec36d22fe1a0cb36989535cd352522870f76a7fe6f29c7f3dd2463cad640d2960772f74fb4349ee83fdd0722cb9827f906a839d7b0612d1defbe5b6b9661f9c203cdafc3e7aeab30e2c92c8f962bb67d880cc5525c578ebd2f804b08592eebf17d58f780437e30e28ed8123d363eb8d5c3bca2fd5bc25a18d371e01a889c7d4fa24e84bbe49760a32248add76891ea29ea34ca670298911565a860ed5261c8107361a08beb16e76fb74096cdcf3839acbf71f6c3b444a7e02008e015f9cba22353266faef756e5fcbea98b041fce03acd3252cf595f41dd0539772f54357de7a83d0be95e8bdb5a46043149cc43af2f4bf6a794b041e5795c18cd64d1c0ced55160b04ae27fa07794e02f31341246a07bb3e523efc8e61c21ad84f8e2f0a75ce307427e8e2e9aea14d419caa484aa0e5073a5b536d962eeb7fff573733f165824f5e72d236d555bc7569a8c4029003b9ac6dd6015660c3d96e8e989ec6b2d8a0b17125bcb4adfbf525d3e120f5a0cd3983773adafc88427be3e97bd79d4bde0323c778c20edcd85cfea7b3c8840237b7bb23622dce3edb44f277e6a968092429742b699fb01558e6a6b7f82d55cc9e7d5afb707573418429223600d5004569dec585a7050c541b5be96e9838c83486c8464eefae7896fab2ac9b106ed4fb015e7078962d8cb34d189dbe83605929bd0ecd959ec236d0e41017adff89c70e09ccf7ae428aaa39f6f9b25e87554ebdd70311bb557c0ab2ea67fd16e93f044c86b85ce9a4565cc91fd2b1c78340a22a7baab9c1cdbb996cceabcecc35749851651a7676b297d48ce45c6174cc16f4b0d2088b769d7de9b742b3ef2a973a4532d4fff07e9dc7a221976c7ea44bcdb3f949e827596f94e67ca1c91999aec771d846c4bc8ab6ff1f8b607258fb1c376fb534d4ab5d9f39232bfab80b4a134a3a8dd43b856af749cc697fce1e1f077cd52e76bc36497dc5f73ec27866e1c0414c31ce1bc6428bc3f3a434030134734703b92b2d8b688302d7666cfeddc98910c545843906dafac435e94a1d0b4a7288f0bf24fb934adfa8c62dc8b2b0fe9be5c2114a20707e2179e92e409b50ae6bbeb1f0aab93efe6206df522a16f2a2647110f0e13a29715a4cc2f0afa901881b090d17f969dd89df3a4a7a99636a24bcc6a880950f7b7857b6694f112eeed36909af8b462484ffb1b6a62c12b5d937c1e813d205f8139024c577e13080b6e24dd86ebf4a902e42bd8a4613e3a234be227ad839b78a5c5f32527e851def1aa633e70212cd4e0f17ee24853e76d071b0224038c53784331e3fd61e78e86011a40e15ea4e3770996b6c5daa8042de4ca6bdde3faddf382d6bf62263e333e84c5812c5e2197b4182f12d884c461017ec8d1c1082e1cc4ef4f42a81efafb35ba691920d22fd0d4f5c68f8c8f3012e4c84e1f3ea9224e899170cea9fce1f046f7aa92bf1b2608e952bf0f394bb6d5772d151836c042bdf604ed5f37e5afabe13859adb3cb5a7c92789191fd2e3bda34c4421e6f0040e7679d273b76bed97833711fd8505f0559f52950a4a9e974d5f28dcde6d2007b9583dc2d77a6bf09d25d504509d00a5fae517a3690c2f7852493da7a0214224f5779779c2990a5365e69579c80ed49553d4614c2a0adbcf3d20ecbb502adc38673d33b4b1afb2a1798ae8553dc727010addc2fac09c199d513cd79ab8ee5358cf3e27ff37231e7f41ecc182987471c7798606819cf0dcaf05bc4d81eb1f84ae28de27cc49f04d03bcc8690308c47bc5c7b667ac943d5dbdda67bea5b9ebdc8af72882aa43b2b53262df3c5b9c6ed91918d12ee284c2d1de90877b413afa6823707c44d7a7b4e738ff6068a7449897253f595ad8d1e8dad4b7f98bed0eb"}) write$binfmt_elf64(0xffffffffffffffff, &(0x7f0000000580)=ANY=[@ANYBLOB="7f454c4622058001010000000000000002007a0008000000f30100000000000040000000000000002601000000000000460c00000000380001003f0006000104000000700500000079000000000000000104000000000000213f000000000000ab0f000000000000290e00000000000008000008000000000000007000008000070000000000000000000000000000000100000000000000800000000000000008000000000000000300000000000000a192ae9edc02eb3463909b49753995a2e0c9e6b27730da9a8caae3bb3fe9b5a00bcea47d7c0ba8f94f18508e480edc5b212bcadee01d4a2d14d5783fe398bc490c4498a226b2a524dab457bc2677ed21aa2ddd460a66374562f82b43e8d5831c6e3ecc9a667994e4fa561009d2046f6d4c9bcc5c5362dd315c1a3e004fc4781faef52c5a0ed65b7517ec9cf5a9bd5e631248b37e38f8ef1eb415fc8b2eba0cd7d815000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001b9ac18b5fc178b74306000000000000000000000000000000000000000000000600"/1566], 0x952) clone(0x3a3dd4008400af01, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) write$binfmt_elf64(r0, &(0x7f0000000dc0)=ANY=[@ANYBLOB="7f454c4600026f00000000000000000003000000f7ffffff530000000000000040000000000000009901000000000000e836000008003800010006000800ff0f00000000010000000800000000000000c6e90000000000000300000000000000000000000000000009000000000000001f0000000000000051e57464faffffff050000000000000006000000000000000100000000000000000100000000000003000000000000000900000000000000359fe8c8826234c5379beb35be2dae9fe4864b5e41c50cb6769d25f8f8d7def4a2c400071355516d69764f57c60e0d9e2f69d88945b6c9ce867d658f74309b5dd776d6ae488fbe54f98866f8dc91dd279dbf625345ec3a76c78c0bff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008f748d0c7ae8d69235a333bb8cf55320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000027d9b28bab8cb80ecf21adf59528bdc7cf8949f09485947b296ed258604105293425b94ccb793009e678ec3815bb78b4c3d6a3498a6f22c508e10257d7190be39b720125a4bd64ae4b10165628d61bd9396adb60bfaa52bdb024278d0f228809399783ce0155f0833a9b67609d5cc968294b3ad50702ac17e5e8ed1093ff1a04040ae8b66a7b3690cc4db66e9fc3949ebbe16bfbd7298bc204bab4186528296e91e038e268b263748bd53bdeff37b64ea6fd32942abe0001987b4a61b9"], 0xb0c) r1 = socket$inet_udp(0x2, 0x2, 0x0) socket$inet6_icmp(0xa, 0x2, 0x3a) r2 = openat$zero(0xffffffffffffff9c, &(0x7f0000000000)='/dev/zero\x00', 0x0, 0x0) preadv(r2, &(0x7f0000000280)=[{0x0}], 0x1, 0x0, 0x0) r3 = openat(0xffffffffffffffff, &(0x7f0000000040)='/proc/self/exe\x00', 0x60400, 0x0) mmap(&(0x7f0000ffa000/0x4000)=nil, 0x4000, 0x380000d, 0x40010, r3, 0xa7df4000) sendto$inet6(r3, &(0x7f0000000080)="47cfb461ea4a01eab0f0b1dbb0d5b6445630e3882bec1c6b1d2a1dad36dbc6e10912016b9ff0c68e6b0c62a03b44d3c5b3e433fcd0f19ae7e83cbb060871f4a23d563af59ac998342f5c98f0133a6256ef29d3635d60627efb8a2ef7b8820f5484efdf00fd5c2101ac4d49c9f88732fb95df6efd6a5e942ab0f777bb7db95f4e1641dd916c9d563347ff1a21443a740b12f76c44", 0x94, 0xc040, &(0x7f0000000140)={0xa, 0x4e20, 0x401, @initdev={0xfe, 0x88, [], 0x1, 0x0}, 0xb2}, 0x1c) write$binfmt_script(r2, &(0x7f0000000bc0)=ANY=[@ANYBLOB="2321202e2f66696c653020b040204354002073797a3100202d272920737472696e67002074746c00202626298e9ac1c529230a5f04b7aa9cd9687e6a0c0629965ab11ec8f9416a4cfbad038035be4813a57e486658833da4bec946b368bbaea2919e43e1474efb48d9d40e98ff81cf9a59c8f2b0fb7614bbf6e1383595fbd4f517c51f161228c00bac6f38a04012469b815e985f04c9356be4eecb8639725645ed9d3b6e220ce4452e21e2034cb563b1bc12b6b58a65a6d6dc0d46001117aca1c55aa10d4099afa1c1cda1fd7cc09cd9b97de5539eb58d1607ad79fbe8681a97cca191cae94e6e014ad12343c62fb7bad3a6c6733cbc65260445d2e25b5af5f101d1e8027e96da1658f09b35f2d2bad7281a142691b76524f4abe08a348852422f6aa7377b8cce8a901029d35ea9ea92b0544f9f902f1fbe21ea0a79603c8c0ad0f25758d2b429e6be1ad4084ddf4e25bd6f65dff67ab3a35021c06bd1bd4c8bbf60dfdd111955a78bf06e36fbd019e4654197d779a05119e97274ae9c2f8ef9f5d7954fd10814b00dd6270ccee66c5e647e21dab53e6c490fe95c3195855ca010863f086e7e546e788e997ea822c25606cab95fade9c2aa798da63761b411b2e74f99701607d2a54c83163085492692c4a014c8fa363a5c32cd09bd"], 0x68) setsockopt$IPT_SO_SET_REPLACE(r1, 0x4000000000000, 0x40, &(0x7f0000000180)=@raw={'raw\x00', 0x2, 0x3, 0x2f8, 0x160, 0x0, 0x160, 0x160, 0x62020000, 0x260, 0x260, 0x260, 0x260, 0x260, 0x3, 0x0, {[{{@ip={@loopback, @local, 0x0, 0x0, 'vlan0\x00', 'bridge_slave_0\x00'}, 0xb003, 0x130, 0x160, 0x8, {0x0, 0x1e4}, [@common=@unspec=@string={{0xc0, 'string\x00'}, {0x0, 0x0, 'kmp\x00', "bdc74c01d6369df17d17ac76fa5f9b3bfa0c34430d864040bc25b2b73a59aa2acab6b1d2cc05060feb70b5bc8c2d4ba3a94a2d2393e3182f64695d7d05fb478c8f56627a5cf905d564eeeb83ff0150ca0f3c44f7fda4d20a55050342ea9685ecc8838e049f1f2e2d081ddda375bb7008adc297a5ece1bb2df53d17bef26bb6f8", 0x5a}}]}, @common=@unspec=@CONNMARK={0x30, 'CONNMARK\x00'}}, {{@uncond, 0x0, 0x98, 0x100, 0x0, {}, [@common=@ttl={{0x28, 'ttl\x00'}}]}, @unspec=@CT2={0x68, 'CT\x00', 0x2, {0x0, 0x0, 0x0, 0x0, 'pptp\x00', 'syz1\x00'}}}], {{[], 0x0, 0x70, 0x98}, {0x28, '\x00', 0x4}}}}, 0x358) socket$inet6(0xa, 0x1, 0x7) [ 315.016926] EXT4-fs (loop5): mounted filesystem without journal. Opts: max_batch_time=0x0000000000000000,jqfmt=vfsold,,errors=continue [ 315.117615] cannot load conntrack support for proto=2 [ 315.118651] kauditd_printk_skb: 3 callbacks suppressed [ 315.118658] audit: type=1804 audit(1618291145.338:15): pid=11329 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="open_writers" comm="syz-executor.3" name="/root/syzkaller-testdir620012310/syzkaller.DwwQo9/43/file0/bus" dev="sda1" ino=14067 res=1 [ 315.146150] cannot load conntrack support for proto=2 [ 315.205958] EXT4-fs (loop3): mounted filesystem without journal. Opts: ,errors=continue [ 315.825338] audit: type=1804 audit(1618291146.048:16): pid=11351 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="ToMToU" comm="syz-executor.3" name="/root/syzkaller-testdir620012310/syzkaller.DwwQo9/43/file0/bus" dev="sda1" ino=14067 res=1 05:19:07 executing program 5: perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) socket$nl_route(0x10, 0x3, 0x0) ioctl$sock_SIOCGIFINDEX(0xffffffffffffffff, 0x8933, 0x0) getpeername$packet(0xffffffffffffffff, 0x0, 0x0) ioctl$sock_ipv6_tunnel_SIOCCHG6RD(0xffffffffffffffff, 0x89fb, 0x0) r0 = socket$nl_route(0x10, 0x3, 0x0) ioctl$sock_SIOCGIFINDEX(r0, 0x8933, &(0x7f00000000c0)={'ipvlan0\x00', 0x0}) ioctl$F2FS_IOC_MOVE_RANGE(0xffffffffffffffff, 0xc020f509, &(0x7f0000000180)={0xffffffffffffffff, 0x53, 0x5, 0x4}) ioctl$sock_inet6_SIOCADDRT(r2, 0x890b, &(0x7f00000001c0)={@rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01', @loopback, @initdev={0xfe, 0x88, [], 0x0, 0x0}, 0x6, 0x8ad, 0x2, 0xc00, 0x5, 0x120080}) r3 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r3, 0x0) preadv(r3, &(0x7f0000000280), 0x18, 0x0, 0x0) ioctl$sock_inet_SIOCGIFPFLAGS(r3, 0x8935, &(0x7f0000000240)={'caif0\x00'}) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000000)=@newlink={0x3c, 0x10, 0x401, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @macsec={{0xb, 0x1, 'macsec\x00'}, {0x4}}}, @IFLA_LINK={0x8, 0x5, r1}]}, 0x3c}}, 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f0000004340)={&(0x7f0000000400)={0x10, 0x0, 0x0, 0x1}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x10}, 0x440) sendmsg$nl_route(0xffffffffffffffff, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000100)={&(0x7f0000000000)=@ipv6_deladdr={0x48, 0x15, 0x0, 0x0, 0x25dfdbfb, {}, [@IFA_FLAGS={0x8, 0x8, 0x260}, @IFA_CACHEINFO={0x14, 0x6, {0x0, 0x200, 0xe12}}, @IFA_CACHEINFO={0x14, 0x6, {0x0, 0x0, 0xc5, 0x831a}}]}, 0xfc30}, 0x1, 0x0, 0x0, 0x24004805}, 0x0) 05:19:07 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x0, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) 05:19:07 executing program 2: prlimit64(0x0, 0x0, 0x0, 0x0) perf_event_open(&(0x7f0000000340)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = creat(&(0x7f00000000c0)='./file0\x00', 0x0) dup3(0xffffffffffffffff, r0, 0x0) sched_setattr(0x0, 0x0, 0x0) r1 = openat$fuse(0xffffffffffffff9c, &(0x7f0000000000)='/dev/fuse\x00', 0x42, 0x0) openat(0xffffffffffffff9c, &(0x7f000000c380)='./file0\x00', 0x40, 0x0) mount$fuse(0x0, &(0x7f0000000240)='./file0\x00', &(0x7f0000002100)='fuse\x00', 0x0, &(0x7f0000004140)=ANY=[@ANYBLOB='fd=', @ANYRESHEX=r1, @ANYBLOB=',rootmode=00000000000000000100000,user_id=', @ANYRESDEC=0x0, @ANYBLOB='=', @ANYRESDEC=0x0, @ANYBLOB=',\x00']) read$FUSE(r1, &(0x7f000000c3c0)={0x2020, 0x0, 0x0, 0x0, 0x0, 0x0}, 0x2020) sched_setattr(r3, &(0x7f0000000140)={0x38, 0x5, 0x2, 0x3f, 0x5, 0x4, 0x7, 0x719, 0x3, 0x8}, 0x0) write$FUSE_INIT(r1, &(0x7f0000000040)={0x50, 0x0, r2, {0x7, 0x1f, 0xffffffff}}, 0x50) syz_fuse_handle_req(r1, &(0x7f00000042c0)="0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000", 0x2000, &(0x7f00000062c0)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000006340)={0x20}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) r4 = openat(0xffffffffffffff9c, &(0x7f000000c380)='./file0\x00', 0x0, 0x0) syz_fuse_handle_req(r1, &(0x7f0000006380)="f7709f77945ec10b4eecea480cce6641402373da5e6d7f24014f7acee96be0135b59ce90b463223252169e036a4daf3dae250a1e6de526211d43d9512ae526730f553268794994fd54868ec480d09862b687b463a8fc5058903593b9bb4d50879635cbf67a9e7d1110fa0e8ef89dbd2abdae33183737b8c0b907f5cc74ad6ab0383f8240e091417d2816317f40abb64224f616136f93d932f2223ef42fa3c3155d53075d3eb1db73beb32bc364e3fc246d3dcaca2dc91a634815412bae915cdb1a6da7884559403b545235541ddac97d7b1ea8135539ebcfac1edfa2fee8cf78bb46da7644a8f9e42ae06ca7a188b83fa537b0962a10411b67fc4d7dfe9e95cce2aef82e75f4680b8ff9976b6569523b72a86bd3a8c96f30e85812fe33a610c2be0a3c1063e2ee864c6e8bbf331f2768accfea78700a7321e4af2db46fd162457e439369da2217992b77502b9b958df27bc086369963793854d7f8b00c537de3216898b8f2c1dd925049eef1ab57bb6f63b2d88850b49b3c54d71f545afafa16bd2d06ae501344987623890fdf9ac04b179d2131070a34cf143697b6642bf5da67437aaf5e78e7e6be85e44ad7b265d78d2baf92ee5ccb0a452eb32fb3fdd1a41abf3a68086acd20458af55c086f77c30bbbce4c19542f92ab1e68393ffa58b140586b49761aacdf6aeb7682561f01e0869f503c4a161fd405046d3e6523bd4071c09b7516e4e784f4d11706f1c2eb170e735e563c43317a5a9afad28511163cdb63660beb699f7b8a7eaf57d48517974ffa766fe8deab0cfb11562b9c281bce2493d08c40a259e0325c52124e303064c6fbae2826355e531543863030fef484621a381a945b6ec7253e20047e7294bd069442f72672e6dfe1ca17d75d8c6b16c931438cec72e6ee53f3db89a10a38a93cc84c7393773461db5074b4f5060dd0a04a069a7a9b078856a3fa1786fc8dab621ba622acafd0781b523ea097283afb0c59222a316c6ddc0554bcaccc70288e524ed7719fc02a86283b57690a7320af028efbaedd5bd158a9dc9ea8e4f53c7da7566cdbdd4f4d9f01a9dfa6251a355e338efc8eee258add8731c7d22161482b7e3c8bc83f30482f9935fcc5974d9d0685b5fba3b07d7f85cc8fef18ac4e8e915b8476bb44d7384c996921ae40a4fdd2dd2a70ba17e1c2d6ec67b8f7b45568c105d52afa9c82bdc1dc7fd951b1e4fc1212bf29231d8e41ed4dacafec9a823a672dceeee0e4048b5620373c53ab8f3553c842a5a6d914f8334d6d8a4af785f418e6b4aab3965f94ca9d80a74a5a034fb6edd0322696aa1060d82c7b104983f8889026819ffdf3d45c604e53066b03dfae13fad499e3894120c10944eaf752989daee4e172decca9c2b324a817a7c787e6bc59fc2884e358a1a9b14b3704cabe374d23c002b8112be68f409302d3dad0a4c02105cb54c4350c24e6f3b7588bf1c28ae321eaebb930cf0c3b607acff20663eab8a593320c518eba8f9205350f11a9c1530115f7e00f2aa335c92e1305ffcfeac7cdecd6f1b6a33710ec77ce428484712d66bad137b6c8da5aa51d1b7196d981a14a40df8406b292f385cb149cfc0a86701566674e089b88487f34fdb0bf16ca94d9da4a837f15d5cf8f11d9c226844d3eb18d848420f344a3992772125319abb641ea56f03fc626f092f67a8b6716b29cf8585cf5fe25a35f5dab0e3e075ba3c84116fb6cbbf99a8153d179ffc1e64356f1fa0bca6823ebd8e1a176636962cff271cee5c5bafcb68fad4921e070c4ae08cd8fa0b94534f11e66403d129a5e8253bd3a9dc09a8189895819ff618532bf6743b17a243d515e63868bdf9287fd1bad0d525759953624c8e82debf88159b2c22945535d9379c911f89c7856be1438bd02df70c939b80741ddad245082a72556a2ab3c2390b84c17b6119103a0b8126dbc55e05b153ef9a12cc67f649c14160c698a7127b39fe88fb91d19b2a381c08114c6e3e6d3d42b77602c838c421a9a414f1eb182d0197ff67dcfb5d79404afbdf9c96f475a0d5afc9a4d7cdad458eed6b1de6c13b11c46004243db779e7ad6dbbf15e69ee34bd2524cf72e49a5352992a9251a86c3dc30d7d5fe61ae538928e8fdca0e04fdb5917523d8266b7b4f1679a5082e798f587c5ed9084c70965e94e12f643ab0191e606c2eb0c3359a2b8504f3bb2e721cfbcfdd90c31cde10992c9400273bbc45fe5ba34d7ede773036e2fd1fec1f001c495accdf8ff572de3eb2aeebad29acfe3d2b1448fd67368d0c37f8bfbbf09bafc8f99a44b187f4f443c82b21f66f722fb59f40ce0f9d83c52b9b3358a80e102b21795a1cfcb986c787ccbb9f9c96c2b66d2f7a94ef2c2a5b65d5c2970ba6f3107609f4a67432835c2ce1682d260f6826072a6b6d4b113a5b06311677ca01260f3567ff1ab6be13b455f93916906273c5430fcccb57e0d78224ebec422763ee3a6b94528749a7ee5f70c9036cf3a99a9c98abc0e8aec18733a0c7da76814f2ff741582a9d96eb798426065764fcf86e40b6490f545494b48749fa8d398c5938d6bc7dbe183deecb913ef4c61aef27ea6bb77c23af09c3dec453f01d8e0cf1a3df30d73d44c4e147d9ff2853cb05b1d9fcd2d80815016f65368c477f3e8b676ee1ef5b9154850f02951060f5335d7b8b1c395151b443130d27b4aa0cdd9c1badc38e1825cbaea22480e1d8a986b001a4464fea618707f43bdf7949f500f3f9293b7f7f28170d45eb3e9422d7a107d5dfab18b8e7a2cbc4b42a818384136a49a021721fe07dff4fb2f26e74ee6b5725166409d794c69a1a5b27cb6263c387b81612add3c9e9e509845843a6ffb2250d37c365e3f57f0ad6e908fab119211e7679b41c8e298f9e85558be25ec0a4e6c9aa3d523ef3771971bfd272fcb736d10fa98a87b78c532fcc322f5e24baa21f2a3c84a90ec9b546869400bad19dec3575ebc69c8e512210b81667ed3cede89d10ee5871a6fb166b2f5c96f079cd5bf97f41327930b210627106c4cb6d77e3793b808c425b8a4118bbaa2d1a1454b162cf9886ec17e215d12223a65348ab33185861ab1f3166a4a925d25a63def895a5b01deea11bcaf17c79d27a922834a32aa0f8676793c7257e44d3f7768de19292a385a7a4b3fc992abfb9f8f3ada57b83dc7955c0b2edef1a8214dd8ea2cc9679685137dd63f3918020e2e2f38602005a4a6e84422867b9160f65e92e053d0b58191eadcd5a8a69b18e3216ea63df3f31869c81de88fc75a1d9e15cbdf8d68ba50cd8dfa55259aa362c2615ccab13489844d5ed995383e334074f561a4a67e1060e64a818fc96135d34e604cabe3d9195cf1283725c7700e397ecb72fc8b36f38cd0830b19b439101e4b3839c48ddc95367bff87b888407a517f94fbe58a7033db1123c0a0074c730e34ce821e12f43d84d3b4f0310c6ecd8afe7779671d7b825bb3892825c762b86f0ffd182b6aafd477fadf0c7a931cb61e2b05fc11267bf0a9882e7c2f8e84d3480d9e4576cc03f0e1dbfbef9f66840ad37e76da3ff8a419730a0076de67e9b913f03f5b637287d981eafa1223feafb86bcff5b2ce987f6fa8386ee036a3f75fe014ef90b05a744e038c43766b5fd552e66b9b4996f774988d2a70fa0bf05fbc453cc4fd0ab642db1bc71e1b63919f3c49254f177306f9b00af5782c0633d68ecb85f93fc1afd8dee3dd1ca8b0d7ba0ea463de0b6e3e05c080f832e129cec16853923cf15f06d9a38e20a5a6fa5125d03c1b72680547eafd9fdf246af08dcb4d4d746577478fbc72d7a36bb4bd3b5ba4dc5e407babfcd64b8c413d7dd5433d6a4ee17d5b4835a74c81414a9397d73e15ae387f04a5012a37c88b226207aba933d68a67bcd38f5e0fb8b24c4434c3a0109deaef4f9ab1d230ea6a4acd6db0c3962d0de3bb64e33a29af8dcbf39d48a27c1649a66d4aecdce2db60c50bcec31677559369184608db197f2ebed81ca8fbeb9d2f8c486ec9839e765df69ea634f2815e75eac613febfa26012767c28eae207ed9315bf19c42de9602f44f45a9cb9913a67548787a30c9e56f3399ab281c537751a28d98392655a60ceb9f2515772d2f1d5d2843952312e2a59061b60f128def6795e0c8eb7b12a710c1afacc84f498a29d683d1949c17f3aeeb8b9a32eb10bb242d61a2db5902d592224fb8e1e713ef33caaec6f8516333ca4886345555166e91a6469d67f39241d144c6457c0f74c60e662439281a660b3c802eafa5825fab36b764d4753b33920dc72ec4b7136be556c7d0d528eef67049f5a7bd9cc7e4e94a4874ad8d06595ed38a5f1cafff1018c1351d1d7eab144edba6d4f9eeb7924a25b9f7a3eb20984919d9ade66a18c33f92b65031472ca657a724d86053a3fc60fc5502acec81822bc609954e402a406081cfe7931a1adbfc45a3168e30a451561302a131ff702b4d6c5d3603ea9d1b54c64aad93407e078d6b435154236ba594e8d2f798bbdface489b43120bc0bd7e1bcb6658c2c192ccf18f278e9c5bb14dbdf1a4eb3412f9dc64a31abefd79bd7c91bb7297c9f694840a75cae5d3482d15a2d148092a6545972b7f95a23206bda509260bb370a012b744c2bb46b57da12367d35e778b7d7f463fd8230368b5a5636f28e2cddd03c69adc9c913027a726130c95d818fa38ca7ba8421d3fcf0736cd3001ffcf80701cf6d737cc3dd8f905af39fb2806d2f22289d0001c74eb482f4faf0a1863099cc1b236edd1cfa206b21a2ed86affb4e6a3a4dfb54fab46c8c06cd3e370b50e08e1b7a08864269d867eba5fae8a49560e9479209966002c09719ab8ca58702bfb0071d3859df0193a956ed4d8ad19a2c79656c6dd42eb5a44b808df394333683b605ad0cf176bfcfdc89b01317a802cf0ab02fc3673822b55fcfba512792c9e40a150cfae4dcd40b2b12296ba95063a2f50f552b4682c4d461b1efb7555816b5b836ff0319af6935ae5b41e67329a7b21da93c36fcd87cbba1653c0d00077b14cfcba24f891d62219c157b6354300837d211fbcf1881f5e98d6195fb782479e106c072020b56285107e2fd7947bc64ec9a43a0b239c140ec0456685ac3eba988952e641d2eb16cd0132d2bb25576fc6bcd5e29eb9da2d40e8b50776abe5cd7ea45da8442a311977c51755015b3e4995739edef0567a3f169e980addb1705224175372339de904eb952e13f648449722258fa21f7e53f4a1956e8e9a39dbb18c6d2d10d9146358158a0ab7ce3f54120b705e1ccb7a13fb7e9103d0b80faaac31cab07f6d2d9f668c707b5e3bdf259923a1057816a31e8c771267fd974193d90e1a9837a987d9ba52f7af599c1aeed13f6619cc0b334396b750c9017f84cff56c0dfecc12faee59e37cf7d44575bb448abb19616d4fa79f4fdf96631328dd0d0717f12b9587d76b577bbe78eaa7b0acace3b79776b5d2e77942c57745e347ec766170e90cc66a5191bff3ad49d423ba2817cf92be74e653cc6274a20bade324638d57a27f2fea01d4670bc1ad5ec4d006492ff5fa616a0010be824766f12acec9b26a7606cc8453382c3dd1f5f5c85354569123824002c44d0ae4cd2e1ebb4e33e3d7b69fe14e05fb53af9d66f53990a830120cd618cfaa10e5f6deab4ef4522afd380ea52f90b181fd5b538f424900aac643d118c33dbb6ffe0b2428844f51943412d8fda4a327b71c814cd6345b3690a4716f04fc7323ff1af08e82ef5e571c9fb0fa9b22af40948febda32ea14ecf61700eb02967d09bfd078ace6cea259952c0be90fab1ce841f1022d2da82f173c580d43effdb424b1729aa9fe40292c082043a7c901bc76426ef6e3de788db31e50f54458ca4e360bb803b48d5a4be50724c1f48b504b086d9dca3ae74eae76a1849d14a4074f389aba805b793f9662f072405026afc3ef108ede69dbd2c769886dfc75a9a2e093137d92b38e34a050eca73cd3067d56dfd58fedaff2857e720b09d676607a1e8eeeb06b26494cc2b844f5e856271732477f384af839e98889d5c9cc28651f6eb74029f839150f947d180e48776ef1c829509e12016c6d1b717713e6325751a944cd259b1b86b1f5e793cdb55a73784498be09c2cebdd70159c77abc7c64af2e2de1a860a3e9dd8646b7a6866e1891fcf97a2b3ea47c0c57c5fa9a94129c2e27940ab9fe996eb1813d21d48fb6dbc9b8071c50dc26b4ed21588211fc5edb1ca873c70b606678ae7de9c10d2d083f372421a3038c592a38aec69020862f4432ef9ae7f400ed53b44bb58e92b022ac8b62a6b459337af339dc3346a809b715f9974d21e606244d23cf4dcb0956f93c14047243172adc97a1fed868bc49fb57ecc123425a21e94dd5b9d1ff52bc45965a7be2f5ea8218750e2cc8f174fbd2c7811742f5f17fa1f954b8423c403fd2e4e96296e37e0bfe2edd52e8c3b921dac771c61524455b401017ab5f655eca76139557a4a87cc30210b052ae17a5ca8b634322657ea4d87e0da2392c470f8951ac0560a01b4d0befe632ee311d0b87af31465d6cf7854f5738cb5debfa1d7381c74f45eea08c06d4ddc9e811d1a33394a35efdb7121cdf5f1603343df8431c87718a5d4cf3b2e593508d8b63f0d1e82f9ebc40d4022ba06327cc8233f29c0995da512b318bfa212e9582cb880d9bd6a02050a014294ef321bb2c65e4638a4fd2c8c27fd9ac28c9e49cdae6dd9eb05dafb38a4a003a56dba826e386f5fd3ab0d54b92f53ec11c850927fc4c5b669c67505ce59306ad86460b480b711d4b31c512829b7037d1c45b5b84c0be40a038b5e975c57c860476318a22df2e4f90009c38481e519b9511e54dc59e89a6593bc53ae03224466513930c5ed3689793f00be192a58a919db9ad1267962c0ee60327ee710accb0da037610ef8aaff63f6582f691096fbdfb1996abc4443cd4ffe04fcad3608413044b978d86d3a18bdf86fdb70cf7e7bbb0e4db9d36176d0ba8a4cf81369fa84ee55466df70e6d4431a873000c19bb5caff30c01c7f7f928cde86bea5c401e525fb8a938fd016bffd5c9d52b279e867bc64f575b80eec74e7f66fe92aef613636e50c8f32831ab4b7eabbc89ce6d7bbfd03b6b005e0c5ba27268369f5083b2ded32c1f9e8cd73a1daee26cf03dbbf9c476fd0f14935244eb7b544f8db1c19d8a21de7e8a88f540e8949f721f20d7a47cfad3f52d93c11a796fbe9fbe415194193e5c70b33237f70790905816b856c252a30e72c081a8bac6a1c9fd2c372b9f870831d6ba6671fd8684f25e60cc7e3a1a02ed5f1a4fe426373bf61404a68571e93f35659b6c37f939233ca6663603b053c8fc74da84dd971b9319a1260fa2f5d66609962e93f7f33a40b22066b86a74fb38bf1444d025f27f14e922661471ef8ad503e97f8e7dd6b9c9a420885e519e085a1f26f7149b82881908021f601679f79c944549bcb431a7d2b12f75aa54cae39f9caafefc01e7eb589d2eb574937abbe18b419d7d27309acb330293456337cb9d753e08f7b890bbf76c4d6ef548bc3b5965302bc65ab08a2420527c1ad8be374cae7cc858376219d39a7a6d58c478a721678e789bcc317a4d1acbf47870a4802a07ac0332f7fdad7156065de511862c2a076e264138b98e7abd1a2555ef2e1ca44ee68f06725508891051f6bd24479a616606024841c8203744b999868b9f2b3b5e8a42f454d25fcddf8f5569594716a4022c3ac8ba67115b93d8bb50684b0fb100dabca7f6b7e29b723007776435829c6f21223d7a2556766d198c76ab6cce3b6e6da5c4d14a26b7cda1cebe6792ce4c1498fe644fb4408189e472efde923506ea4d18aa3284ec311fa942dfa5d8b939e509a10c69461993cc9d3ace2fef29afee8d0894764ffd82371d5ed363b5968447ad3c0962b86584cc97740d7bc3838ab1c1b0198ea830f122b200722d3c2c8815a2a5f90382e1c58f2348dbd38449e28c67ed85f66ea3e383b91c782a4e77ad4aa538db6d15ab90dd464318ded6fd293a1b0279852335e3c94bcce6f37950fb23d96f84465aeaa8fc2f71ce61a1416e579399c363bb37ded602fbea1ba5de87ab12bc7aeb5c62f026f648ab2babea2517c3ade2828109da58c010e6efef544088ba412ea57d3cd4fad3fd85b17e386ffc8a700664b2604c8a71c011e894ac03a109d9ddbe0b6d625d33d7d16fba5bcbc1ee1cdcfc6a475a23aff414e5b4f83e9d18e10f9e6dc49e518561ad53a110794d2ad9c7fee95a03b632b2acbebac42c996e1b856b2f18a2a3bf7cb0726c10b6aa3ec2d78bebd26e86ecf78b87736017cffa7d654b357be120985c553d11dbc932139ea6e1efdb7ef34598db568e66d42429e414b5903ad6e616ff7faff6ecedec529cf16b280c18dd4c3c8cd5192f625965e15c29104855364565a4a52ac5ff78eb31a6e7602e84226a87364708c2a9fdcf2f66f5dd0951aacb7b6c8f9bd0e534ae44b47799cdb8f683db5a3258d6f1943e04e59b11fbc6f57d16ff150c94a22717c1b483ad064c25f09022cc4ce09e76fed2b2ce84e9a50623f84cb013d00b8ee3fd2eaf1ed84df2b29d3119865f5df8fbb6d7440ec6da33deff5c60f466f91959c0d7c7800937cf59fdc6e2d53e809a6f6754ed545fc71c42a95d198df6329a3f32ecd091e7e643727ee34241b9244ea9a2118ccc6d5b52f8dbd61dbc7a4b65e8a4b0e937669a8a6377022df74ac0d2d42008edfa83a71c2e14c8cb7f3e54612cbe5b64b31371f445ea6235467b339b285bffaad0acd9af5159b84f58a3e0230a7e6f055a016a0737b893e0d1b2dba11de53529c825bea86a455bba90eb4f10ea5425d498c18c0bc643a5bb07491a8b6d89b1c92329aaff3a9cb9302f81100d97b78a09d1f5c512c26409796608b77c969c070f6e55037c97bef2c30ebb373110c2356e0663c0a7010d13f18f9b7b1d4a5de88b110efe433a5dc9dd03ac7621a6de39584de91e9b43c5ef4cb435eeb45b8865540355030acddeaf451a453a0b0a76cb064ea1e939dc5491f2c591973c741cf1f73ef4451a1b43ed9d9e0c7b126b869e7cd326900a470dc08a15fb176346f7431dadd6b820ec10cba33d7097ebac9c1ff147fe39d9cedad2828facd8c37cb22a8b7d55b63170f55ccf45fc25715d00e7eb7c3f32c5a7dce02bb07073daa170caa4813b2102648cf6a5bc9ae5ef3fc4c6240447190340469cea21650f79f5ff0ab60e6fa8a30a45f29ca7f4356c275ef4dad63b07f73cc672d26091db75eff3e19b51272b0b786609333f6580a3ad3c83673df3776d04cd05fa86b7b8066076b71377580d8b226d9daec174cf2a62ffd48259ca04821e949021b3f540b5268c794a5314de9cb143dafce0575c06750f0c125b507bf39bf0abfc25b9bc39ddbc4450f0f3a70c312905a5c2d11f7b39a3cb0fd08be6f8b74c5d74fdfb0477c942caac42ae596e0aa36db5f10e1571231ebfc327e5a6111eb2f2a0e1be0b0752018973500f1b7c832cf36078c24717f66983bb72649829af53389e89694bce146f8cb358d7922ba07dfa9da6fbd65b7f5159010b1bc6847967b9eeef7c6db90f48b1c1a7ab63481809111b2876c73c375064bdca8064ee8d6d7b3817db8f5dc82709c586afea5850f415ca7641b5e6f45ff93b9dbc2f62c40c47dbe61a069d88e3664c8dfc9be2b35f8896e6d5c8a35b864b50d50364d3cec828a4f7dcff3cb314c9f7ab03c93e1fd8c5bfa2c303d76cb0954b401927a000babc400497d3f3a37c1f7a685ecc12b28db4b9b75debccfb132a4bb3b19ba91a441a94403eef6ad8222edd1dcecf215580296020731cab55029a189561499d34faef21eadfc370f98872c2192aef73f0cdf80de61cc9157d1e08d7153a49f7d1151fb9f110febc34e760c1afb87eb36c9df1d6aa047cb655b3ec5fdae8e2d93861070f98bd5f1c53c26f07d7c43cb295440af75e87671a552e39f9bfe1853222eb8ba0c8013944ee61dbe21281b1d4e3ea3dc0353d4ded5db0128504b97491353120c63bea1c5656be047a77bebe93efbab10375cb0946624e076a93a6ffdc284f4aa9fcf54ebda3653d5abf7da76f19c165d0982d48279ba8ee9f33b2fb060491aa26517e39f2cb4d4ce7726b249f070aeefca6843a813026e45c6ddfccd1e0b8883a7170644c43b227a2a3c03cbd17b8f3dc0910685169ada487a72251eeb6e6a1dd5661294337cf4cee2d74fdfbe00ff6d07847e63880059bcd12951e8b649cca1dc6a355a7d2c26ef8cabd467b21d6bbe28b108b385ffff7304d96b03500c912efd2af7c45f81f5f2f0e3357ec7da616f81ead2f823a128696ec7dd65a6587e5ecb56a8fba1bdea28909da5e085e164b046310182fad711d4e46abaa61281c88c729810c615ce9636b5c96e4150e2fcec6c111469ba8b0c010963d4338fba8a8a080e384198e1410af15f7ee18e5396b721fc331860e072207da236b35dd94fa7dab288a114ea46e754f1d0b4bfa1a5b216706652e52c489e9a3a1cee8ab4fe5d416ac22c2649673715909c27f31684f6e103913bfd28e02fca507940b86405cebb8084d1c6532a5508b716070c67ba544a1593895f4cc1a8d075415feb69d50fb674c3a89b59f80032cdfa8d1181856817bb16f50bafd0e21aa656661bf3b6bfc207a7a645a8edc15ff1cb706b6292a3263ef5ad1479338f59058d08ce76dc801d8e11e280badd5a0c0dcf1c6285d95cc087e7f0dd823b6b7c353d22f1e7ed03c1461cc4c170e33cd06c45f17fe1af233cca638611449493d533f701d77163f6784202d995e17b797d4d2f0d87d05a00728e8fdda47c70ecf919a2a110371da3474580720e8eae934888cf84f1f1a5530baf815e7c16129732ec4af417c1be0970b845dbced563f00a86135bda35c525aa020f285116b00071858e6eacf7b124b635ff7b62410e8c27a4c76adcdec10f5180130e8c554d2d8038677650171a2f6c3da4c04e340b48df92cf41d08a499f680a2cd6ab099fcede2f8b1888aa052c7f2dffdb203e19fb1e2e6237e19b218740c89cce311ff168437500a6eec570780938c3291a19482656a8d53b19bde3d4148bf1a9f2ea67ae835df675662f27b5b6f5e2652d0471c81740acef306d9605b4ca09a2c4c0f3f8063b6fa5fe01109c5e348eb318074785771ab2cedc48d0f5e15b3a368ace5aea415aa2d566063f25571b7a218b9e95117aaf0a389284e763e448c88b49205392fe032ed206ca8e27fb1c65a72d125cc860913dabe714be1a2a85120066cad66d53dec9a30664bfdd33e25398199211b15fe0770cb243bee320e95e506be4617c3e5e6825342c769bc1da3127f8d34c922f60ed2727f5d9209fc28099ec86c29572fc7159f6ced79b0a2a2653100230a55f7a578e2f1d90f6301069ed04106de45b976f2aabe769ed17d59a53116b74fa2f598c0d1e9919ca8d9cc21265ebc218ab9808b094eebd9a48d8349cf3faeaaa7c8ddb07f6eb874f70cdfafe050de69c6e7da6c8d2f71d581d6c604f4bb29243e9d1bbcb0890b436cb43d1a33c4b96a08af4137135a8c8fe74034dcaf1581856f800771", 0x2000, &(0x7f0000000780)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f00000000c0)={0x78, 0x0, 0x0, {0x0, 0x0, 0x0, {0x0, 0x800000000, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2000}}}, 0x0, 0x0, 0x0, 0x0, 0x0}) read$FUSE(r4, &(0x7f0000008380)={0x2020}, 0x2000a3a0) syz_fuse_handle_req(r1, &(0x7f0000002140)="ba360ff5e552a2bd54f77d9c6d96e7da8d82cd272e58bd846b255f2d5ba37e150c12c4f67d3c38b7498343fb82831c102f0972974188a069ca8fa2df86c2b457cca8eab87df18fc722df47b21ac164ec06aa1c716fc9919b2a26c31115398ab7287d75144cec43a94a0b8d9f76dbd7f2ed8ee59749dfa47e324f781bb7a0add955c8f354e70326ff9d054fc674df206173680c4787966901365ac61ed22262b4cfabc00b53cf669ff389dc34f5c61ababd0622108d469a2632f9bf92d4ffb00a06f0c435c716215cd208abcf8b11413c7e9ab7a12409be4224d58e3f110df3f58b2fdfc1c73d682e0e7cddbc44b5276827f5368a5ad4ebd02c86d89d2d0d09c4521f74531be8eb72757c7c047406abf2256f0d7de6196abdb26d74d8e2f4ecaea16133b14e0cbe66dfd249351485ba03202b6bb0957fcf38ad9ef6458c1ec878c0e48aa02c00d291511c3bffade23c9fcf3b9a053f5e55d4deb29691ede7d9046cd4a8ea47a26290dac165286cf3f96e672b9fb3d0d5e28ae5c1ff51736e13ae4aa2f21deda3afe44f08e68aa70671708152e5cb17dba2307b3d09279e4fab7902ce3e890c7c86f32a605202eafcc63da007c76fa739798e817b3d95b4565bf8aa0ad60f3f51a32f6dc4990e84370394011400694498375bb007b1af01161046fd05a2f4ae7df327f5fd159efbc0c8e43896e5df84769044eea126c6e94cfd323db7c3dcaf1aa8e033ff5767c1fa003c2247cc25fc4ec53a9ebc45641270eb993243bff41d574ba0a2c8b35cfdac15f63a0aeaa9a7cba28ac37370ded19ce7f6c976f83ce126b02a8e5f2be2981b0e4140aa85ecd543f25dd0f5a788960b91f7d5df317f57e21caacc5b4f0427d5c266863afcd7430427ceb639efc0ccea0805802b221cef098c2b0e29bc82d4907f42b8bc3a33a58d0d7974f1e76d4c5c5e3e186c0a63bda7a2c40fc3f023e8033bb1241e3fad539d18b119ee71683b75b3eeba151c135cebe2c3990f1bb4708c4849868fa11feee4d0d67ee6e051ae3210595cf568e86c6b97d56000ce258f217783af0a4c2a8b177e2a81bb1be7c05e759890f9a238afea1584cdcbd51c8d0307ba395fc750224940dadaf2912c677104072de67d943b1dab97434a8bd17653ad6934e9e5e4fddb996f753008c469f1a2a0251accb1e60ffab107a12fb593f8040febff005210ccf6ddb066fc58efa2df6161b5fea1d5c0b667d94df91b8f41fdb766e35c1799c29fce17413431f9138463c8baeb4ae3016b06a0006f034586ed2831ecdbb79cbf413aca056f48a09d083f27425d6633771e5f96b0f1954f89fc2e7ab3714ac2137c8177a654de0bc108a886cd09874fb52ef2737e16dd5b35e31b1a5ac8ede83e76c88598608e22843b92ec78ac8ec39dc91fdf6570875820a392ac42c180c40e9b13126a276d743b9b7a52ed9458a7120ba98ad4be05e4869b15a057694972297997ff0b608a72e9fcb1c50f6e06a2c679ae9f730016646b05061b2e4fc12c72785c9ef4fa8ce7879aab6fd6de9361f0038e6d8bcf048532d5db370bfa50277754e9522d671802912b42c6afdcaf6cb8ad29dc08cebe52f0de02a92ddafaef9afb54231fb10c8c7bdb30fa26d7796ee5634297ca9d31de0e09bf6eb2639316868b2e7911df409f2d7db69f2928bddd4de9cf99f5e70764aede49eaac2e32a926d4ef543d3987a0e180d20dab32c82cdebd48ddc6ab7bb4cd278ee283a44c8c7684e42b623fe3c8633a63463c77b8f7756a84f1421a351ea1c6f34f26ab511cd1173d11c6d2bde4b65fbbfeb6a67e2767d3abd6038d0f71b0edbf98929be7f6bfc32597fc3cf97a9775562abd6ac63554ed12a61abfd116bb338241662f5deb739df79480c5af4975c462fb8317bb2cc448d85c6d1a89ae5f0a4ab6bc016aabe01a854a88728f62faca66d4d943a93b3cfb22b42749f51c094b64a18e00fff9ad93871c6e35352f57f70ce826c216189b313e9faff1285f3ae40f19e00bd4550855d873a08f062380af2fd93b634aa3113792cfa9c67239a43d69b6a07b3989d32a9a36964ed7a9431040ffe84d03f2608dae3c4e59c8c99e98e7b569c2cc8accadd48911f7a48e3831f049cece884ef77d24e59b658569b58c6c5022f3137738af358a618bbbd227e1ee35ac8cdfc93b31aded025c2246e0e4d96e70006891a3e84a522ae199d17959748ca119eb9d24b236a4aeda982e5db38fb0f3aa5304ab1d72ab07a9e255514e1ffbedf5f3fab4927c5d05081dd0ec0870a4bd03dbcac8d75a4283da8fc549d95d374a15a87cb689a559088d5616fe106abd3d23b6d3b4d4fb2d14b2bcde18ba11741095a3c6725b33fb1c8499a0355d133a38e8ef8890f7d032993bd9affae554e6f8736dc45997c26442a51439f85be73ad38c8ac1f7fa89c037c2c80465e60419934fe8f237fd06a30454a1c88846b96ed9e33d9eeeb4b1ceee5ae643a4ce930d8ce330b1ed0f459f2642d6b398f7a0a2ac62e50eda25f635c4db05b2e76c2c9679dfd1606108492b7168ef6ab170cb9a63de36059e2a86ea2689fc04c7b3f184a1382d474fecc511fda59567f9083cf731eea5622109dd99e391a2fc69c1f9cc27aca2c86f2f0fb5c63cc7841c449e45a73f12c511f1a4432fc2ecd32fa806274b3b2b429d74ad5ed0934b40b20872efd3320b6840dc21a1960208ee8c543b272803580bc0c77a15ede6c878119bfb77a36d8016636af0b3c0cbce0e6598599651f415b3d169533e4d23e938ba449c10e7621f4ddfdee14ad6d2070f035e2fc07e7dc7c7bd19aeb10a2cded14fc988921992499685bf1974d83984f8c0952fe030effbd8d02c5360bf16ba2028b3e8731860393906c682e52e2d655662c7d1dc06f705f6466df59ffc3715aaf05023cc12b269a58bfb3edf794912337af26fb4e867d196934d67d444ef529a9dae685b476ec3f9f42475d609a234ce99e9510ac5b93c9cdf46ee79ff68fb5889d6121cbf3b24db77a4b97040810fef660a7a4bd286094df6bfdfa69f5209cdb809167628b3cdce2be7c6d83f6a64c49926951308bed0301a7780cf7c2e3166a11c042fd27b080428337282bfcf3b1ac73096e96d976834a9dfc7f5bbdd9cba16d63d169a2dbedd8b2cacd718dce83212177ce62590dfd6d78438ead82de8051f6e1c6de434517c9cb947c363c60af78c613e9928bc59bcf2b9ba35f971daba56d3cf67c81f788bd0a05fed9c99c5b5067c99e0e7852592d0c92bc58a43665eb24902a56891b8fdf1d02d2c61c43b7a90f469b61cfaa4a0a2929e43341b119b79346049982506c04b451b552f2a32f76830bbf53e781fb1093ac39c19df55cdc5398cfd6caac817c2d67cb355051be2c4b56c8bfb919c85e3c1d02bd930ebc16032a5dd2a098ca7787daa062f9c57d080aa8eb8af56fa1cbaf0f9c47ed5d15eccd51dc602ae20f13af81063611f2a9b289be82cdb7443783437e838bf8754585f65763e29805c7a264d23f7b8a8b1cc621dfe8852c66f5b52398a7d6a641c9b3b8406501831f920b2f826ceece11c75595b9544713d3f114317cf34a92c3f1b9288d9e107a8d3bc26e26d7b01c7804052b06a215bddd34af524deac1086d27ff9a28d814306d30571b213019792536abde20a802230587616a081375840968b441987834965912a60bb07777db813d230a814903994fed6ec9fa6db6ce94a5aaa51a4d45678b126788b20f2c97f35b895971592f472a10e84b77578ea6aaf0b33e8817e3d6536278122a04975ec6365b3cfe78d45fba020f4df52eef58236f47fe905d5267250ef4130c60266b3a36b481ee0e3803e4a0038287110cb5c77b4723ab7a868ff50bb1deea829bacf76ba63d9b049c532cd533a06f3c24ac2766ad57994263b1f959a431911c9e7cf29b6c1d1980e0ee861139832c8a3fd1e47be915e8a68bf7a416845b5998e04e547064c297246786fdd7c9ceed829599d8297168fc6054e1abb5e76a1fbf789f9b9e4967689b21223ddaa89a99cec2f809872d8da50eeb573acf52f5e64e5fe623722ec82b2af40a22184e41af100e957726aa5000fdcb0b220cf774c8c4274319e51d744318c5a7c0b82f0a351ab3630dde802973c7e23ad6f93dfb2e3d73d25e440009d9e9d79e206d8b92065d5648787dc9a14197fb34cbcec651035811828799f243ade444e4624592904cce0e1bc8069a4d41b4d8e48560cd6b5dbc615e73f3c69dec5b3390485337ced1a8159a590d6ec08b7da5251d945d0e40c235ea192f6146432437c363c4f8b3cdd909eb92ef68bdf989abc2fda9b0ca99529c228b96f59798b65dd03f3759f2eee5815593da66cc3679bc6d5ea04cabfe691d20a69e5b5141718cbbe750d98001e665ca694f4699cc6a1e30b448fa3b07789cd4cf5f2ce6e1ec12cf485ef0cfe930d123e7ecaabc564b957135f48675196f3c86997c51a10226bba84fc15f355f99dc846b198f364c675932d817c3403a5e83d899b9bca0c185fae7c24863361ea3b18d4b029598720e8030b0c6694c097e38d7859b885aea55313b222a88b0beba16b638324f0c90f35bdff6d9ce449f7965f17741600ba6610bf3057dac44c2dc631c4f37224eb5d02186f2c06561d378f6dbc0b44a6d396fdd6f371ce2522d202a5959512e01a3a58b6cc267d80523f4443412476146bc318d9072f13c47db961863adc2ba91121f3652dbe10634857a8278b13a07f1d0c2ccd9428240abd82305348743f5e493b53386059b926a9c90535855c56c602abd58a451edcc16b5375a8150a865158d7de3c6d5ccba4a58d98f35945cbf41d0cdd293590fb363f7bef914a01ae54e115708575e372b6ee4d8296822b470f7c17d89870d80b25d1f0d569d5fc74751afbcdd35a7154e49746e89e4ff69cab0c36618b248ff08186c1803a00e3ffb8958b5505338199f5184d60d20ab45a69225569b1c8815d4035f42dc73dff76ad3c398abe2fc3378ca7236beb1605f310c389d7e41e48e626bcf29b16f599a558c0534a4993dfd7de5aa4eb2a1e35ba4dbe5f889fdb2550824d322000c4aac94a30b952612f1405c8a044ce48c676450a6ec45af8ea613bfe7dcab14db86200a937f85f7ea7daf90817e0e0d2e63f89a4918db78a75b0e4f6043a68bf637ce8365e9c680465e12a855795169d62846400dcbeb4e130e2fcf993fda2f131ffb18e5bb8d2b2143a5aba1dd14dfafb2fb6c36cfae02ffb837b73d554a9292b7795e4d51efbe3dcff7bbb9d5bbd215ec8cae294dc27c259497d5378a559271c1aa1610fc68e74ea6df642177a89ead2c6fe0fda0045da024975efeeb516a784a3a8bf2f97e8973244b661e51e32b663d8c983c59be707e3b5f79876e33b3f9c3f5e7b30ac8ce3f184dda7bd9f801470ad1e53fe1366fd6b3b6be2cafc0f4fad4325845cf31c870c770a9a79e4913874daab84b1417882b80ad852f66675933b399b316871dcca24f0b759350d386d58fc09d44034cf53f075001cdb19867668f81fa3dee94484b1f2303735487daae3da9054f976766f3478a6a83fb91c507a8e2d7621d023e2a0404645513b242e05d17fcf9a888567db3845183c4d24966e3b8e00fec0324188b5aa253cdb8a2e85823d9790aaa94002b9c1e60f1203d22ce51922ba7218951e24ee23e01098b26ce70ebf6decefc405e5a436be060bd4eb811adf244b86babd75ff643c714c98d3cbb225d60830586f3d6a8751ba8808b2d74ee47f936f4279379a8fdf5f818b3638eb6ab19137b172e10563683dda81f76f65b3de53189a7e053183302bcf190307ac47d9c5a4e4096ab7408fa7abcf37eb88e7bd3b00a745f096807561528b982f495eba4056fb120b17744cd1242d07fe55c9278a7d6233c7535bc0c744a4ab2245dd0266891faa02747e6956484254ac24c10d4bd7a684394146ed0e02e2c6c0999c3a7cc80e43dc3fc40f0289dd91067bb7c7fa072c42d4415cf81d200ad5f8df1f8eb64ba7f16dabae5fa59aeeaa6db89b34f9af0e222d3f197c25b0655790e6f5e06e5448781b1e82208202c9b21d766a77409f03fe5fa0c1070c010703a24487d9057a823e38e8d5b8e59a781068b08843d2eb0d58eaf907e20fdce7d07dbae2c0a755c88cf68a123438869da5d89afa304006211e69241ddef227ad47f57f40b4242d1be3f4f41f3946d253bcacc7dcdfc25dd729bfcb9d5fc25d0ea7016f4e83a543e35d3d880d63b1a1eecbf7aa7a0b47234780efb2d413cde694da255253dc8e87e99e9ea91e57cf16f1e8d1a7a1d11fee9697b59cee62fb8ebd1cff30d50286ce90b05c8b37ad62a13e1c62f1010e1746edfefb3575d14770e2d99adabceb974df7a242f01c767e948802f49cbd09d33bfd9a22a4e1f7dc4f7dc83bc1b212ab69e387c8d57ed298762af3850707c60451f589bf606fbd45b1079b32ed11f2fda87b3c4377dd0f2ba2704291a343480c460337e85d25b0431420fa4d004133ec13eec61ad1081ae5e208cce9a07454d93c74ec7a1a6b23cdebf385b39708e720040b07c29fe224eac6132e62d5a48b3bdfeb90e358319186dfa61f6fd19ee40f1bcc1493461d57e7ca10e6f6e5eee1f2e7bc1af7cc676de43cd727b6615c0b42f8952986531a12ee4edd0440d931a7f52906efcf22d94926e91af9941980677603f7004ff52c950dcac5a9a5e7ee11022d148046dd019900ee396d65c1ac41641259f8156f8146f67477e02f63024669f980bef69db1e4ba233fab48d29e2392f3e5ff0fa00e37401fa42aedfccffee951ed1dc90fc28dd47b3dea8d2141848f1294d1c9836f714722420d17e9b40bfa2aea4f7da070fa2f36776822b132f994b33771e397bcca4a32bf8eb3e8353ae2fb351b06334d2ecb4b3999b3df81e3a922b4900afd3bee25979e10fb1e0e498724036ba784a6ee25f1c9b673eaafa906bd1d2378b811162cfeef0ecff71570d01d74b60d9a292d34ce9b8ea0d8a59537bb73b3a50a01a0f482e2b0c1b1929c126317fe4da3310c3a9b96d384808d55d5100cfbe3ef5c201c79a6c6c070f843c44d2cb6ccec55eef31c72c718f36b9354e58b51095440b33beeb93018dfccf364ab9349aaea834f2c8a4f9d32833f91ce53981f6814f480faab0c1052eaa3bd11298b9b9cfd020ac5fd3ca45bc3ff55cc7a014aa900bd252e12979fdc8e3059cb7c118f073e55b7e229fcdde8d3d54b59f1cc2d409a17ef8eb7386b04dfbb0534914e5a16c58e9919c7fbfb5066fae1a3c583fef08506e6a5f53fbfa0baa585349eac74f07abb819f2d33d0fe0c100bf1026047e38493d29095345b59b633bbef0af506819d68552b4df93d0f102a0283bee38e8816b50f0f3c9b842e152d7fd2aca7eecd102ece8be7079647ca99b3a11e6ada9e30c71bd24dcaf9a9280cc834c0a1f0531481e200c29815985e54085e9162c0fdea443cb9040369ad07d45e7b1000831d70c124f013156f9274eb0eecfad4199dc5fc719e0a8f8f77642a35bad5426741425d1a6a15a5a02ad3521ac10929da91c89310d58ba7e18c49d40182e0fb4827ab9abd136880fc6088d0946c247527ff89854b2b5a0a2c40eb1a3f45dab0c2caf27ed113ce62813da3034df91a915dfa25fcceb8bef2e8f81f64e43290e34c0db312da61e2e0cce1e23f3498c97075f760ec02a3e23b4bbab2180a35dc52dee7547fc20808fd560d8cafc76f277cd99d3d68b387ebdbad25454a0cfdb8d9eac2d545805b49d54e64aff8d6a1873cb2eb08fe546629f803b4561320d7a589125e451fed0d9c043de458d1138651e319a8642bade1f0d1670cadce2425d348705a2617780b5493a341529d0c19eec3a68e1e10b6a7d2c3d7212511fe7203f922bccfd2360d34de131004b9ff45c7d026579e63799410db651022161767eebff6c7e6b6872d4852bfd4f7dd29e70e31049c675ed5abcd9998dc2d7b343fff6d201182d8b1d67bf73daf807ce992ddf919d6bf72797d1fdfb56be161157784b52d5bfd2fc1ccf4624dabf774315f33da8c4dcad840edf882bd5b113b0ab1a95877b34c17ce2ca0bf231e90fe71fc02099378fe430e7a41730235c892e459bd81929e2cd7817a83e62b132026eed281b6ca6fc8bceb769a08760909352d754dfb2d2da6899e819afaf610c562052338ec6d96f118b08241f85ef41713c11e7b5864b711b957fbdb2ee07836af52e30961d087103626b4a6d9c1b96fd170b8c1dd91b7bced9c9daf690aa1bad9b31cdcde975384eba584d82e873b1dcdedc0e6b8233bd880643c2c2573c4652b75a8c9aebde00b236f8c30b1ffc7a956583ae8914f755e8c4ee8c13d2c0cc73b672f14180be50df476bc650a6ea1d9b537bfd4453b5b34dadd8e22c00988bdfb221ea05e46f5ee0d044d73d6ee9680f9f7125b7c0237e787eca96df5e3452ba5a72e27d058013998432836ccff0f39cf444badc4d485f7d057ddddc3b1a539168bffea1a7cb89afb903f6c6cde4b7705587eb5cec47e81a31dcd5767e958483ecdf6e6c2f38d19a92d81bce5b5a928d097e17516d3c116b420b8809705eaa4df82e99a55f5a21fc44142d6885326c343ad0abcf324a6cd9091708af53d71b24673f7f474c999b61053c696b21d60b4dab158a6ee3ddc7371f841881612e00d30533fa4006188668662550d943221928a5148f03a09e4f7842ec41fd4f25264b56f47fd8f1f6d86143320ab985e521ec6ad6b2837d5dab84402ab9b791b735ad9fbff8ffb9cd9bfae6eed6a88d12c9fd46211de97262dac753b4ca033aae573a9e105445f196996bc33b94206d110c060e4a69c47e2dad9ea6ebe20747b808c22612145c69b93f8704d76bc922e92064e8d10b4177579e75cc785a2ba18d5bfa9648c59421b8e57c290164f14c2fa9452f0774f5d7640a5e7d5ce40e00445a799cc9aeb088ed204242e622c83cdcd7c8838406a2df32279a13fc428029b744cb1152ec18763ec62b8062c7901fe47a6dfbbc0f321a170235492eec18cc2e3c3bafee94413852ff423f43a3ae70a2af3cf4fcf9708b77241be823d83ee0d69d0e46d5aaac0c1191a1e38d59de08d6224d46d31248f46db5b23b2e28ab63a182bd1e28a4abf8a59c55dc9dad922b538414899e1b7b336755a23ea9b13de4c3657147c2cbf9b7731501c016bfda0fb533ccce3ca9693d577f6e4a5f4f66e13994b288ff9bfa72df0cf50a7d4c98f155535c3e136678022cf6ed5ff7036c51aec8d296c2e6ffb0d6487ebaa3b5b905098cfb6bbbf095b7a0316436bfe0b3359ee9f3b811748a85fafd8e9100c9a40ef3e15ebe57a5ec08e86a25c010b25dd2806e30887235ae6e58e1d0ae0ac30064e1379a530cbfc8605e58f7f865e93625a478673d6a182e6afbb1950d54ed47736ebb35a9c730018d49be315dc75d23fd1ae0976b8e9248dabd737820059c6d714d0ac7def2a4ece668eaaac8ec3cbdb513fa897cc62a6ee28fdecafe94995a717eef3dc298879879cfecbbd9e52f0ec03c26995883de2183b9dfcbd78f72f46ffdfc1a85d6d66c9806fb57fe02140f0f25f09ab13e159b6015b8c2905508d55c0315ff994b7309481e534d1fb424de402702e30c37131045ae17edcc36af908f1b9c1f03a4ac59528b9dac2384a6f0576c442b0bbff1f22c410bf49fdae05dd431a4e84e21d5e2a83389a46a7308016c07c61760d2a40f95486f6f0d2be9e54702f5571183c3ad060cceae58f836648dc0dbcde32890d18145da82095d672565dee9a76eb26fff92654a2ee1f162fd8bdde8580f4887c8fead9c0127809f89f0d4e3742b6221718b025787746285b624b6182c1acb1b2b2bbc846b1d808c5ca23f81f6457bf84475e4c517e9dabd6588bdaa9f1c66d9bfeb69122c0f8d939fb16f791b8642046998b7d5b7efbfce63dafd0c42f03082d28e29a8dee557d01cd52173477dd3870a0915c7e3f0c8f07c76dec024284de77bbee4742feacd565021d43b9c8127a256779b4056977d748453f49ce3d1dfae53dc679d5db2e35ea6a59b291267a5292f499baf5653ef41d18778f43de7ea1c58c1a5289411a70bf956cf54043ad74ab62c9c25bf6600983b840fe58c19f87384734e7b89521ea13b7e1acc4779e3be4881b2ba1141fa009cc44fd291b8d33ce5ea9fe3db3fbb9561f16d2c96afa53480a158c35c21d9ee721a6f156bf651109fda6cd2f5923772faa75c506b28da837b8974b48cd0f6b6a1f11a96bf506daa53302779c27cd71220c433e354565c7866f9a9aa7ff36ca180aaa206d4aa289aef270c2ff5bd7c1d3fa0e5b4db45a52d694b68c461cb22059530cfaaf01d98326999d7e0b6888a2371fb661c92ccafd6614b9b905e1509dc268c586d94106f493600576727e61a71d482500f22baa83c466ac7cf9b5fc6e25ddca625ea507d408935026e4fab6cb49de4ad689d795af3547724f2484846855c2069b2603b4de780544489f1f605a12757201ee930b641d61010eaaf0df91f0897b235c8077bd5da998db749ec2247e4ce692820c39ec5d51974345e5e47bd0179b7849d7953b4d9d900c7d0880bcf35850fb626ffba0e269ca91b3bfdc8abf0cb732a4393c9ac04c153f6bdda381c1c80dab1f571c05d4cc88a566bb3efc4adfeac8bf2acde15670485aac1f082e6a2658e162246cb9a15e17e839468433241f5b901dfa650d04915cfd3d1f2477eb7c4b2c5e07c05ecb85e5eefda9135efac2f95f52909a65fb1ca6db7afdba8998d95f573e3d614c8d1ede60f56d7a47e4cc18ea30f633d8aca7003a6b4e33fe3b78f5ffd93bdd78749af0cf66f18abd92b7ca4d180db60d6a238eb44dd05ae96a7206bf63387dd946f2ba49b117f6a8a051bf413f0b8ef1a2e3dad6ead826cafb493b0d49d7d20ab2f7648d40b293df3df5dc2a7000adfe7878a420855f56a3113d0cdbbbf64c419d165fec02dd1104743456a9bd02f733e817518226d5a9ef41a1b87baa42752023db77b6538b7eac4d06c537c7ad8aeb647dcac6586175951b61b1b433ba7d16eb6cfd7e1dcabef04f1118afa0c73676b6482c47425dbdb3dd99e46243aaa29dc59cdda4ca4d8a8f97fd25b72164e26691cdfc8216ca1a366b3e012ea4b85720d595b64ddbb0c7d39342f9cda1e1c70f3ffee0ddbbcc2f4d41f227669e8a480a6c623447571d6f8c524872a400b3bf04121119fb38ee93c1dc48189379e30a1c2224dd93969d6e1d5130f9df00692c103a4b692dc712be13f1c551b16cea8f53574e60d48ce7464ca7c6ab9ab251abdb9d031e4988f67eddbd87cc650206afe346eac7c8a509c7ac6617d833de6fd5c547e25eff0b6338237ae736443dc9671495e926fb7305669a79bdc415fb21ffd2cabbb6ec5516b0fcf9349847440099e83cfcc10fac3ddd46acb6d9fb8bc9f5cab37c797a869e86b148a00c7b1e9c6719e080d9df061ee77dc095cc889c7f4563e9dbdc48826dce4c57a5a8450e3e6ab6321a73633e55c764155507c1597299ae901ef0636de3df31faec245bf20e9a696d56e71a244000536c9d83446004984d", 0x2000, &(0x7f0000000bc0)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000000480)={0xfdef, 0x0, 0x0, {'fuse\x00'}}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) getsockopt$sock_cred(0xffffffffffffffff, 0x1, 0x11, &(0x7f0000caaffb)={0x0, 0x0, 0x0}, 0x0) setxattr$system_posix_acl(0x0, &(0x7f0000000200)='system.posix_acl_default\x00', &(0x7f00000004c0)=ANY=[@ANYBLOB, @ANYRES32, @ANYBLOB="020001", @ANYRES32, @ANYBLOB, @ANYRES32=0x0, @ANYBLOB="f06acc54a2394f03208b112862b439bd8c37048f40530977147e5561b4c574521ef7160d917b46fd6af0b4bec014e4b457d079bb47467d7294198f556b813170410c2af49cf2ba319c752417d8b9d66c6fec71495a5ea705343ebadec5d93bb1512084b2199449f057d2ed553f3553f485f2dea925c62cd227d1565b41753c0ebf47bd30e43327c1e1668c1e8ae8cd945725a3df6360231ad913a912cd8fb1a89c7d7a4e08af29917a9776ca1d3aaa33e1f7f4abb6ba5bb35be7a281ed4b63ce0fbe2c2419118eb1554f2277b984b7a5195c90a56b3c3f39a12c2d186729a2b1", @ANYBLOB="ca519a024e875aeb85b9d424e05d92876abf98962bb716883bb5af6e37934b63451e15cf2bf2a7515820db4ec70cae451a8bd6982c7bf3f3aee72f2643dc458d90ec227aafc0183ae8ef423a824d25e25a400a581d8d4dfbdffc4312b9942e022b8e4484b60d9e122eec9605ecbf992cede1fe4f884242c451b632", @ANYRES32, @ANYBLOB='\b\x00\a\x00', @ANYRES32=r5, @ANYBLOB='\b\x00'], 0x6c, 0x7) 05:19:07 executing program 4: syz_genetlink_get_family_id$ieee802154(&(0x7f0000000040)='802.15.4 MAC\x00', 0xffffffffffffffff) syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x40000, 0x3, &(0x7f0000000200)=[{&(0x7f0000010000)="200000004000000003000000300000000f000000000000000200000002000000008000000080000020000000dcf4655fdcf4655f0100360053ef010001000000dbf4655f000000000000000001000000000000000b0000000002", 0x5a, 0x400}, {&(0x7f0000010400)="020000000300000004", 0x9, 0x1000}, {&(0x7f0000012600)="ed41000000100000dbf4655fdcf4655fdcf4655f000000000000040008", 0x1d, 0x4200}], 0x0, &(0x7f0000013a00)) 05:19:07 executing program 0: r0 = perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0x0, 0xffffffffffffffff, 0x0) memfd_create(0x0, 0x3) r1 = perf_event_open(&(0x7f00000000c0)={0x5, 0x70, 0x5, 0x8, 0x3, 0x0, 0x0, 0xc02d, 0x6, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x3, 0x0, @perf_config_ext={0x3, 0x7fd}, 0x10006, 0x10001, 0x0, 0x1, 0x81, 0x10001, 0x5}, 0x0, 0x9, r0, 0x5) r2 = perf_event_open(&(0x7f0000000040)={0x2, 0x70, 0x5, 0x3f, 0x1, 0x7f, 0x0, 0x2, 0x4, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x2, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x5, 0x0, @perf_config_ext={0x5, 0xffffffffffffff2a}, 0x0, 0x0, 0x0, 0xa, 0x8, 0x9662}, 0xffffffffffffffff, 0xffffffffffffffff, r1, 0x1) mmap(&(0x7f00006bd000/0x3000)=nil, 0x3000, 0x6, 0x10, 0xffffffffffffffff, 0x0) mprotect(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x0) ioctl$IOCTL_STATUS_ACCEL_DEV(0xffffffffffffffff, 0x40046103, &(0x7f0000000140)={0x2, 0x1, 0x7, 0x1, 0x44, 0xd0, 0x6, 0xff, 0x1, 0x1, 0xcb, "beaec906d44ddd62952b931d9124e0b9eff4958cd824a7eb834705e6d2893324"}) clone(0x0, 0x0, 0x0, 0x0, 0x0) memfd_create(&(0x7f0000000180)='j--@]\x00', 0x2) ioctl$PERF_EVENT_IOC_SET_OUTPUT(r2, 0x2405, r0) 05:19:07 executing program 3: mkdirat(0xffffffffffffff9c, 0x0, 0x0) r0 = openat$fuse(0xffffffffffffff9c, &(0x7f0000002080)='/dev/fuse\x00', 0x2, 0x0) mount$fuse(0x0, &(0x7f00000020c0)='./file0\x00', &(0x7f0000002100)='fuse\x00', 0x0, &(0x7f0000002140)={{'fd', 0x3d, r0}, 0x2c, {'rootmode'}, 0x2c, {'user_id'}, 0x2c, {'group_id'}}) read$FUSE(r0, 0x0, 0x0) pread64(r0, &(0x7f0000004200)=""/236, 0xec, 0x0) r1 = perf_event_open(&(0x7f0000000100)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43, 0x10000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) sigaltstack(&(0x7f0000455000/0x2000)=nil, 0x0) finit_module(r1, &(0x7f0000000080)=':\x00', 0x1) madvise(&(0x7f0000baf000/0x1000)=nil, 0x1000, 0xc) ioctl$RTC_RD_TIME(0xffffffffffffffff, 0x80247009, &(0x7f0000000300)) mremap(&(0x7f0000331000/0x3000)=nil, 0x4cb000, 0x600000, 0x3, &(0x7f00007fc000/0x600000)=nil) getsockopt$sock_cred(0xffffffffffffffff, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r2) getsockopt$inet6_IPV6_IPSEC_POLICY(0xffffffffffffffff, 0x29, 0x22, &(0x7f0000000380)={{{@in6=@mcast1, @in=@private, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, {{@in=@multicast1}, 0x0, @in=@empty}}, &(0x7f0000000480)=0xe8) mount$fuse(0x0, &(0x7f00000002c0)='./file0\x00', &(0x7f0000000340)='fuse\x00', 0x800, &(0x7f0000000500)={{'fd'}, 0x2c, {'rootmode', 0x3d, 0x2000}, 0x2c, {'user_id', 0x3d, r2}, 0x2c, {'group_id', 0x3d, 0xee01}, 0x2c, {[{@max_read={'max_read', 0x3d, 0x6}}, {@allow_other='allow_other'}, {@max_read={'max_read', 0x3d, 0x3ce2590}}, {@max_read={'max_read', 0x3d, 0x8}}, {@allow_other='allow_other'}, {@allow_other='allow_other'}, {@max_read={'max_read', 0x3d, 0x100000001}}, {@blksize={'blksize', 0x3d, 0x800}}, {@allow_other='allow_other'}], [{@audit='audit'}, {@fowner_eq={'fowner', 0x3d, r3}}, {@obj_user={'obj_user', 0x3d, '(%^:]%,-'}}, {@fowner_lt={'fowner<'}}]}}) r4 = syz_mount_image$msdos(&(0x7f00000000c0)='msdos\x00', &(0x7f0000000000)='./file0\x00', 0xffc0000b, 0x2, &(0x7f0000000180)=[{&(0x7f0000000040)="040800090000ff01e66174000410090a0200027400f8", 0x16}, {&(0x7f00000004c0)="dbed7d4cac17", 0x6, 0x1f}], 0x800, &(0x7f0000000540)=ANY=[]) mkdirat(r4, 0x0, 0x0) fstatfs(r4, &(0x7f0000000200)=""/131) r5 = openat$md(0xffffffffffffff9c, &(0x7f00000001c0)='/dev/md0\x00', 0x0, 0x0) ioctl$BLKPG(r5, 0x4004092b, 0x0) 05:19:07 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xf, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x78}, 0x1, 0x7}, 0x0) [ 317.234553] audit: type=1804 audit(1618291147.458:17): pid=11369 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="open_writers" comm="syz-executor.2" name="/root/syzkaller-testdir150245843/syzkaller.o5YtX0/45/file0" dev="sda1" ino=14071 res=1 [ 317.242852] FAT-fs (loop3): Unrecognized mount option "0000000000000000000" or missing value 05:19:07 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xf, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x78}, 0x1, 0x7}, 0x0) [ 317.294649] md0: error: bitmap file is already in use 05:19:07 executing program 4: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000140)='/dev/kvm\x00', 0x0, 0x0) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) ioctl$KVM_SET_SIGNAL_MASK(0xffffffffffffffff, 0x4004ae8b, &(0x7f0000000180)=ANY=[@ANYBLOB="2fca7497f9fc25e596fe3607b5dee52bd01dfd086290dd18ed1c963487e929b139bf6ead2a98f9327bc8aa97e156f0b13503752c1ab647b12d2ce9c86746141f7ebf236c1878f7d15a1fa8286c7c0e4f1579ebf8649e33614fc5a5d4453bb19008c87c0ce7e8b2be868074ef05446a47e97f8cbed8620a929f1ed75371953c"]) mount$fuse(0x0, 0x0, 0x0, 0x0, &(0x7f0000000200)=ANY=[@ANYRESHEX, @ANYRESHEX, @ANYBLOB=',rootmode=00000000000000000100000,user_id=', @ANYRESHEX=r0, @ANYBLOB=',group_id=', @ANYRESDEC=0x0, @ANYRES16=r0]) read$FUSE(0xffffffffffffffff, 0x0, 0x0) write$FUSE_INIT(0xffffffffffffffff, &(0x7f0000000040)={0x50}, 0x50) syz_fuse_handle_req(0xffffffffffffffff, &(0x7f00000042c0)="000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dc4e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ba045abcd5dfc67d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000209bfd66eea210560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001354c4b600", 0x2000, &(0x7f00000062c0)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)={0x20}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) syz_fuse_handle_req(0xffffffffffffffff, 0x0, 0x0, &(0x7f00000008c0)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000000340)={0x18}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) r2 = ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x0) syz_kvm_setup_cpu$x86(0xffffffffffffffff, r2, &(0x7f0000fe7000/0x18000)=nil, &(0x7f0000000440)=[@textreal={0x8, 0x0}], 0x1, 0x0, 0x0, 0x0) ioctl$KVM_NMI(r2, 0xae9a) perf_event_open(&(0x7f0000000040)={0x1, 0x70, 0x0, 0x0, 0x1, 0x0, 0x0, 0x4000000003c43, 0x90900, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={&(0x7f00000000c0), 0x1}}, 0x0, 0xfffffffdffffffff, 0xffffffffffffffff, 0x0) r3 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000ffa000/0x3000)=nil, 0x3000, 0x800001, 0x10, r2, 0x3000) remap_file_pages(&(0x7f000014d000/0x1000)=nil, 0x1000, 0x2000009, 0x1, 0x2000) preadv(r3, &(0x7f0000000280), 0x18, 0x0, 0x0) dup3(r3, r2, 0x0) ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x1) ioctl$KVM_SET_USER_MEMORY_REGION(r1, 0x4020ae46, &(0x7f00000002c0)={0x0, 0x2, 0x0, 0x2000, &(0x7f0000001000/0x2000)=nil}) ioctl$KVM_RUN(r2, 0xae80, 0x0) 05:19:07 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xf, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x78}, 0x1, 0x7}, 0x0) 05:19:07 executing program 5: perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0x0, 0xffffffffffffffff, 0x0) r0 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r0, &(0x7f0000d84000)={0xa, 0x2}, 0x1c) setsockopt$inet6_tcp_int(r0, 0x6, 0xa, &(0x7f0000000080)=0x8, 0x4) r1 = accept4$bt_l2cap(0xffffffffffffffff, &(0x7f0000000000)={0x1f, 0x0, @none}, &(0x7f0000000040)=0xe, 0x80800) ioctl$SIOCGSTAMP(r1, 0x8906, &(0x7f00000000c0)) r2 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r2, 0x0) preadv(r2, &(0x7f0000000280), 0x18, 0x0, 0x0) r3 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r3, 0x0) r4 = syz_mount_image$romfs(&(0x7f0000000100)='romfs\x00', &(0x7f0000000200)='./file0\x00', 0x0, 0x7, &(0x7f0000001600)=[{&(0x7f0000000240)="0ddcc7804c580445568b6b39285f5ed7171fcf415d7346931b9d1ceb961c716b7aef9821d92d3f905fba1d911017bad0e8b7821836e131bb743ba28e075ce7265c432dfd312efbdf3e398748c92baadd99ed87e6608cb29d235954924d443efb907a67bcad506af1a1b6e04bad497b456a6b860e2dc24806d065ee647c8f31ca6bdd99480c5acdfa1b28e7a9e76a1293ee797e2a2768", 0x96, 0x8}, {&(0x7f0000000300)="69e82b49b5a8b1d988a6145a8dbce4df107b750b83ae300e5ab039fdb954455a853a57b8455a586552338d8a8ad275b64c56", 0x32, 0x2}, {&(0x7f0000000340)="960f0f699387bda2e4af3f893a0c9d9d51c89717664e8e39758932fb9c07100bdd5340c812dccc2f0dacf12096e9544702e5a8eb3a0c7272bb95fec16171cfe01e10a68c700d89fa6ab283f7b9c65944d51f72dd052dbd02cf7ead085ae00a0bc70a82bab378d78011668553c85d606d9ddef2004d4fe61fa7e0a3f7d96179535e90dd59c11d899e246a340e2253ff1cddb9c63d18527c9ab7c28a5ec4c93f744a594f182301d4467aec910ab5fa2479e1e57b0806995e054cc173b6c9e1e561f17bebbc6c1db8d4fb4d3d5b02a3cb153898b5d65922669866ed", 0xda, 0x6}, {&(0x7f0000000440)="7dfeb5274223e01abb49f986504d1c734d06c874babd9ac300", 0x19, 0xfffffffffffffffb}, {&(0x7f0000000480)="59074a4ca45dcd770ac383f89a5555f24d88bffaa3d2b90077bae8a690f595bfcfb83f78d8ce822c3398beceeab4192dffe9eefd41a2e02b1a49be775f4f469e061503de41d09b467052d9d81acde4f21048ac666bfd11cc3662d20c0e0d87ca47d518c1e2aa568eba68ae736dc8d351fa34bb790034e4799b07c3e77b2938d9d09f9aee92c8b5b4bd6b7826ba7e98b41c4992e97de8763c8903507fc645aff957e229ae6fee0531b123809ef67f05a9146caa34188f1662a31322ecdc553555201e970ef5452ba805a0b4fb10e04030b57205354863b1943bc44162307db35bf10969a667a494f6681a7d17b6af2fba33de01d48b9f268427d008b313952344b3f42cf049ee642fddfe0f7b4cfc21081041b132b6b6f0bbf189eeaa6007fb475120ddf1648cfd02b61f6cc12f3609ef4c8c9d1f8853438db0e1c9cd299bee16e7532f49827cf9987074a123c993dcd128d98bb92a975e24640ac8c3b3b1ddf45ba3cf690950ad5055716e70a95fd61ee2ad24a6fb57348889566fbe7f4b1b13190c1087a80de1d69a31f1182e7d0fe0c50bac0d614e5eb4761edc4706d88e3f418c571ce4e79bf93442caaac39c6522d75c0fe7b13e6db33a0c038aaabe8a8764c7e581b42af69cb66c70835a793427566e6e7e2d9d26cea0df022e4e6e701e8977908ed46dcde6a25d18407e0d3779990a5ce6411e671f552de3bd8b00097ed357dfd51a068bb78eddca2c2df47b9e4dba8e8bf596b0d8e6a7e0f4dc3e780cc57c5e6907b1042e17f42cb9c0999fb01eaa43448acb7ab0c31f85b20048b307a573cfc100a20f8d87363216ea9ce9f4de5b0eede3467c5f5fdf66d04ab67b36d873253016f80f69e8e703631808a32a7c1b9e733cc250240b3e17ff653e1fa5d72126fc747d83672148255a7398781bfd0709522a8939fb1f58a85167751c15f6c9e9eddefd95ce074ff7f615eacb9e87eef3c319f5b3d15c074fd9b74a66acf8ef1ef29107cc271be87f71537d0f84bc1f40e5b699a491a37a53ecac925305c7f05c0146e351e33a1905bcace7238d681c600d774ba957eaf3dcdf852e068f5bc3b8cbd447501842d5cbda3c90aa1deb7d8bf86431692fcbb0c9a68263499bbde4c883d1213fb6799aa2f0d51d6f2e7fcab2a7ccb8453ff358565c3773f591ba8751abe91fc2e2cb40373b623003e7e5a6485b602626365d90ea46ac0de19ce90b4b58dc4775595d6f5ab2cc6cbf8b778aa6dbe707b401f2d692646a1450f44b590d03ff39c50643770046356f2e6b327541ae50b80b3349eb154ef561af606f2c508cce2422a96fc17c72e4444645ee818214853c21f9d9d012aaa7f2de27425658fc13c7460942cb77f8388d69485a1c951949c590567d8ba7ffbd6e912991cda7e9f3976f3ec39592826abb73191073fdbe50a597c70216600c953b266519bf3844f41245dd9ab49da07bea51deeb6baa6a0a41fa8a2546607598c6180ee5d0ff40235acd1f9c3c332320b68a9f092c62f621f7efe0957bc9f05f463cf8a50f5987149a9ee89d0b98d56a6eed8e9b166d92c9503e170faefdc23c6baed73ec57b6361ecdeb51328bd173a27ac2e57779641ef8c205c013e6436f045798408d5f3ad8deb35cbf51e8f53fd0ac46e9f8f9d98ce7aea8826c92a008fe976d3df013741515f45926a7c01ffebde568ebb7d1934d24b838289d591c728607a1fb913b2990c94a509e1dd332bb24b1d5a42e1ca94bf64eb51485acadd375833416a80190a96cd2db29ea3e51a9836898e319b1fd2732c928f966be6faf786d169e2f961dbbbe5749e17f90d76f760d9ad540d82523aa8e4a1e5e98d55eae29649cd0a5d3c71d7691672a4b8b4f3a84bd42d26b6b5d9c7ec7199ef28e0b674bc5290662da9da72da2af99b3875d883d3a415051dd0d2bef188dc7aea1e0471fe495254e242d91a6881eddb883a53e6889a55cabde094cb1ca965ddcf3f7a84c3691220fb68622e439af7a32e39535f73f84eba7cc065d32b29234b7bc6c7f39c7ff6f03a87b7905db5c95d048c3093d15c7a275c98677796a32254c2ae0ccd7b3f9a07d6f57c48a5e1f1e3885e33e8ebf2a95fef99a1c09697e073419e3f023f68b450e4cace846b2fc948a1004c65c465b6ab2e69c2a101769db4f2da7c4896f8bb8227eef695d6025013ddcb3f3eccbfeb650de618dddf4d6e2aa3b569d6871c04ad09951980b2276c5ce1c6e3532bf0656223a702012ee7a11aa4752384d1dda2d50fa94c4906af072c72939c298dccc68e247d4f713adc405aa8cdb1fee9ed634e4a12e3179c8b3d791a6609554feab4fdbfed84d4a48dc84e5121016bf46e6a540ae03b62eab8e69901f0f60523cc9575171c5f520fd816c0948e7f8f581808a741915b04bcc934bc21e635b4813896648304d7f5a86d64c72040f7df6a0f21f68bbe85452ca9cbdf6bfcd6b8fbd2b73149c5829ca4a61f561a79a3ac6cf3c79d0c7c84d78b8bb66fc73fa90471dff852e9b344b90d92f8f44930e9c339a367eeed7fc907346bf29fb3deb9d3d65176d5b6fa397a175fd7e1da062bba5d85d39dff197abde6c02ba25655008631cafdce42c9fa05d2fa823639181f169496717e6cb9752fb4cc8a87343dabac130379c1a783d6ded89c1bed2769196d926fc6276ae063c31052d54ed1a02e8bab3dfae5a185bbc8b98174cbce04489f9e1df4123a30c4edea1732800244ca4d4022942109e4a828d484a80e79b764b257b433c31ff18f3a7c08744e356c1253346e1e2578144f4c8d98431fda255833fdd48d78a65d1e40779648ed0174278079bfd9dfd62089a1ef92879b1fe68099220ef2b299abf4c5369b494e8f6ed917a5bbae445e7250b000aed732368e32458367cf32d9a044a16fd6f0fd807ac3bb1fb4cbc38654f75faa57bfb44ec0ab341370594dcb3242de5c0943603f0def16ac07e4c336a0da1155c7346d41955840efe61be298104d65349c432337857ee37c4b41a0e82e5b76a652807c61b18542a5ce85a1b09e18ade028aff9b866a8e62d7ed4d30d82bd42117f7c79033a76b5a7afea047bba066df025dd5692b1587490047f17ba3c32f2d58b31d7f625c89c2ae2f8a4ca552daed7dbb01aa216e1f17f1d4258406e63ca17bd631c1ce76bfb4097bc68375c2becd8cb115d85e37aa81eb2d14c662b31c3ce3fe4990e03e01cefe413e4c012827359d52b888b16eba466b8840acff8fe049e4c5bdedd0ffe322fad62f0d6b9770c79356af9196c42b47e19cb5337b096ed0ed39e103e78592eca41aa56810c9a240976372bb12479a606caa1a2134ecee7847c5f5ed9e3ba5b0a74a4f140bb78659c0c36fcaceb9aca20e8380496dcc95af72d918c542148b886e33a2e20b13690e299f1345a1b845b941ca43b9be9182f0db80a8a00e321056b011cd3ed8840a4033c22d3cf04c1a880a57d2ccd76c0d868725c176fb1c8ed0a0183ecd12f6ce6bf5f136614a2d2db9fa3a49f27a134054bf2c9d884bb8374614545ad39a432741cec0b34bc4a7216393a7d5dedf324e46d4d97e062ce8319c512c50b7c2a191bda01bfe6ddd950203f83051cc8683a57f802e4a540efc94359997ba3fb5e337b0c129b914bef6332a04dd3db04250605a4bd54451e71a03f890b9272b056f00d8357c0a08565f9d3eda42181760aad8ab69011561232bd9bb5f97d3a4e07140582cecbefccb2fa5f16b9b80263906c7814743e6d8adf301d32ef1b12a5db7e3931e72a110618dc686c52a7c1831710e1e7a24d40f4064f98cced69706ddec8743851194997effacd0d4fc45274c899966b38a964682745b18e9b88163d1adbf575ab96939cee9445394ba26b1b2da6123940db741899e478aa2444543d404f152efbec823f2ca1b1f23619522ff6e743f399660f6f330019c6243ff918f360140a4ba42992bb42141d45297f48af1deea70cd8b60ca6757b033728d072f6171233a91c86bb21e148619bf2bc125e294a38702fb778b6eba3c95db60b373011dfd0b61bd9299919bef25a57f89de119bf4c67f1cfa36581e8b80189e193f97e075fe2199c6dfdd7235439034c334d0bb252deaca8ffcbe52a0d79a98fbcda9ce6ad7f6d57d9cc94af37fd4252c23bc88d0ccff8688a6047a7a916a828cd1e3c19571ecdff646dac56626e907cbe3cc54df197aff22d514a0542b140040eec2d36a2a234564f03f26599c7a01ef20775d2220638ebb4e5a61b28737ac21d51bd88ab2a7436909df579944f5fe03e566f5ccd3885ec6660320db20e0907db709aea7f166c351430db80be44510c6fd9ccc987666213da5aa84c16a131fbafb496dd4dbb72ed58de82141ea8d64f72a6fc6205fc81a0423f95428da6492b6044d2463744a4ec01eacc24de47bba4fe5b147f2d67967da7acb3dfd0b766d423b6fdf3c00c4ecfa8f386c06cbd1e524ace5176094488598c364130bdcfddffab67c818c5ed6ff79862fd8578e054aeb4c2e041a301c48cc97a0c1ebaca70f3a8b3494be4cd707dce8334344bca981f337aa8f2aa6875e03221096250e0a9df84d241481bbc877ca528b161befbb4a4957b6541aae10fbe3680212455b4d945f97040a7b94d183f03914d136dd034feda2d32a42af96a683cdf35c267febfccbe07cba8aee7821ddb602e3f5d76617ecf75060523297ad55d5ae26a1c465a8e274ace42741efaff016f9fe198b80c4d2855c6cf1d29308b863d572c3863fd148fc1bb2a5ef17fc0cde4f08878a7f978224787c6df9d54131f020493481d40d3985f701fcad1912838eac0d124fa37ae8341a4a5ff98c35a751e6e89f7948e904862e1841f26ca447b6d7fa2ccb08cef5ed5b10188f4a5e8ae8305c7e22eec8cdec6a2b0f7bedbed25e338fe7811c30dd4c17295b2d59d13e24f6cec36d5ac2b18b18108d5c305e3de09455d9b542ddc2c90859326c86486478a52beda688a717f326112c11839e98bcb2f592298079b81c2fd4d77b2b6a2a04a38f72a15f8011c16478ac3f8f9cfd6e9369830f77b7d098354bc405dd9af6f266670f19e7b706afdaba9a7587fc9d94fc07b31bc654d969d1df049ad09afe4a88ac855137a299fe5de72fa9160c0287cb7eb7b98443c6aff1e8962e3dde520fff1a29682aed5e9bc3207dd4cd26944fb82c3d7992ab0ac6428f8862ce56b82e136d77256f5e7631a1ef26072861c39f7328d32cee3003644c4e681a1c60d8311b00d4915dced34301be8462de1a7d37ba8e40e9ed2eae8f246cf188d3c839ad8c209b6dfe6e6c4d2b533a201a446076810d8aa5427f7fa69288b4c5e1d91191f3a032d7953d844f5a84a8196c0fde84410ca9f2f163f335f74051486a4026397e9e923928bb04fca0de21ae72f8426d47f84c2c2352b7cc409f1f239d82bf1df4b8778d9d7ff504acc7078c7d97fd82087246ba54211ebcf3e568ab717b64afa7315300a025fbdd744d73e62ec0d4032bbf79889115457d28a086b65fa9ca05d3e1eea3a65024335a8cd70e500b8454f3f4e19f8007d4af0c2563057222fc326669e0a322852fb7ba79d16802be6db22c3ce8f7ea31e3d29e93b1b90fd0d5991246bf12fe373c2f26e22d7006194f1749928b4438efe34bcf7fa869a4101a9d70ef1024f716b49591110a0a9b6756d5ba9e604ee8d69276878b5cc655c1a6476f2076c38e46f59dbee48b117a298ff98c207b3b969b1aef5f6313f267f6e81ee0bf3f98bbbf405d6106bc4f073cae59c9662fbe69f6071c260c0b8b8fa11d492c0b6596e", 0x1000, 0x9}, {&(0x7f0000001480)="f81cb635363de7dba5b6038fd5def239dc4d200a2bdf628cf516c1434de2006fc3a1a281795395ae37a68321bb24bb89f4048c58782ae50d918b2e6b9e5c4e016434d186d6f66e1665b86e8698f1e82a4a956fdfacbf30ed95686b7bf5996aaeb021fb7e83a2975b6f7fbeef186bf14a2030108f65eb18e10aa843041b9ce3cd7b512689117c9f04356b4d72e17bd106b5e58293e31730ab631878bb67c3d447580386fc2b9ae68b2d001ed07151973d85153956a3", 0xb5, 0x1}, {&(0x7f0000001540)="465bd92752819611970324d650391bb41ec26fe9782426a9afa60c1d8fa69de2c9de3c5f20cd52e929d21a91cc75a3e74ba528f900730ea3a8a64c41e1cd643327f502c15dfe0179e46a6b0a8066e8b70689193dd28936d66f396a602f7efaf9381f5f88fada36651af57e91a2344a21b752f78613c6053a6a63762839e7f64d2e9e3fa2", 0x84, 0x10000}], 0x1000, &(0x7f00000016c0)={[{'#-\'--\\-\').-]$]^%'}, {'%,'}], [{@fowner_lt={'fowner<'}}, {@subj_type={'subj_type', 0x3d, 'scalable\x00'}}, {@dont_hash='dont_hash'}, {@uid_lt={'uid<', 0xee00}}, {@measure='measure'}, {@smackfsroot={'smackfsroot', 0x3d, '$)(%:'}}, {@permit_directio='permit_directio'}]}) preadv(r4, &(0x7f0000000280), 0x0, 0x0, 0xffffffff) bind(r2, &(0x7f0000000180)=@pppol2tpv3in6={0x18, 0x1, {0x0, r3, 0x1, 0x3, 0x0, 0x3, {0xa, 0x4e20, 0x8, @private1={0xfc, 0x1, [], 0x1}, 0x8}}}, 0x80) setsockopt$inet6_tcp_TCP_CONGESTION(r0, 0x6, 0xd, &(0x7f0000000140)='scalable\x00', 0x9) sendto$inet6(r0, &(0x7f0000f6f000), 0xfffffffffffffea7, 0x20000004, &(0x7f0000b63fe4)={0xa, 0x2}, 0x1c) 05:19:07 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f0000000280), 0x18, 0xd9f, 0x0) syz_mount_image$xfs(&(0x7f0000000100)='xfs\x00', &(0x7f0000000200)='./file0\x00', 0x0, 0x0, &(0x7f0000000380), 0x0, &(0x7f0000000040)=ANY=[@ANYBLOB="6c6f6762731a22a32723f109c465d44f641a6d4700000000"]) ioctl$BTRFS_IOC_SET_RECEIVED_SUBVOL(0xffffffffffffffff, 0xc0c89425, &(0x7f0000000240)={"9ca5e6263b637a9eebcea95e24ef026e", 0x0, 0x0, {0x8000, 0x5}, {0xda, 0x4}, 0xfffffffffffeffff, [0x7, 0x1, 0x10001, 0x1f, 0x7f, 0x2, 0xfffffffffffffffc, 0x20000, 0x3ff, 0x9, 0x1, 0x7f, 0x68, 0x76d, 0x3, 0xffffffff]}) ioctl$BTRFS_IOC_WAIT_SYNC(r0, 0x40089416, &(0x7f0000000080)=r1) [ 317.436656] audit: type=1804 audit(1618291147.548:18): pid=11369 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="open_writers" comm="syz-executor.2" name="/root/syzkaller-testdir150245843/syzkaller.o5YtX0/45/file0" dev="sda1" ino=14071 res=1 05:19:07 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) [ 317.491510] XFS (loop2): unknown mount option [logbs"£'#ñ ÄeÔOdmG]. 05:19:07 executing program 4: r0 = socket$inet_udplite(0x2, 0x2, 0x88) r1 = fcntl$dupfd(r0, 0x0, r0) r2 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r2, 0x0) preadv(r2, &(0x7f0000000280), 0x18, 0x0, 0x0) ioctl$BTRFS_IOC_GET_FEATURES(r2, 0x80189439, &(0x7f0000000040)) ioctl$F2FS_IOC_GET_COMPRESS_BLOCKS(r1, 0x8008f511, &(0x7f0000000080)) setsockopt$IPT_SO_SET_REPLACE(r1, 0x0, 0x40, &(0x7f0000000c80)=@mangle={'mangle\x00', 0x1f, 0x6, 0x4d8, 0x158, 0x0, 0x0, 0x158, 0x98, 0x440, 0x440, 0x440, 0x440, 0x440, 0x6, 0x0, {[{{@uncond, 0x0, 0x70, 0x98}, @inet=@DSCP={0x28, 'DSCP\x00'}}, {{@uncond, 0x0, 0x98, 0xc0, 0x0, {}, [@common=@ttl={{0x28, 'ttl\x00'}}]}, @unspec=@CHECKSUM={0x28, 'CHECKSUM\x00'}}, {{@uncond, 0x0, 0x70, 0x98}, @ECN={0x28, 'ECN\x00'}}, {{@uncond, 0x0, 0x190, 0x1b8, 0x0, {}, [@common=@unspec=@comment={{0x120, 'comment\x00'}}]}, @TTL={0x28, 'TTL\x00'}}, {{@uncond, 0x0, 0x70, 0x98}, @common=@unspec=@STANDARD={0x28, '\x00', 0x0, 0xfffffffffffffffb}}], {{[], 0x0, 0x70, 0x98}, {0x28}}}}, 0x538) r3 = socket$inet_tcp(0x2, 0x1, 0x0) connect$inet(r3, &(0x7f0000000000)={0x2, 0x0, @dev}, 0x10) [ 317.547123] FAT-fs (loop3): Unrecognized mount option "0000000000000000000" or missing value 05:19:07 executing program 2: pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) write$binfmt_misc(r1, &(0x7f0000000080)=ANY=[], 0x4240a2a0) ioctl$TIOCGSID(r1, 0x5429, &(0x7f0000000080)) r2 = openat(0xffffffffffffffff, &(0x7f00000002c0)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r2, 0x0) r3 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) preadv(r3, &(0x7f0000000280), 0x18, 0xd9f, 0x0) r4 = socket$alg(0x26, 0x5, 0x0) r5 = dup(r4) bind$alg(r5, &(0x7f0000000940)={0x26, 'hash\x00', 0x0, 0x0, 'sha1-generic\x00'}, 0x58) r6 = accept4(r4, 0x0, 0x0, 0x0) open(&(0x7f0000000040)='./file0\x00', 0x10800, 0x120) write(r1, &(0x7f00000000c0)="b23a2654d5cc25ceff55db1021ae6ee16f7cab0a2bde5979cab7b5794516ad27037253e4f0e83b5a797790e67b3be1c78940afbdb73b5568", 0x38) splice(r0, 0x0, r6, 0x0, 0x1e8640, 0x0) [ 317.618656] ip_tables: iptables: counters copy to user failed while replacing table [ 317.658559] ip_tables: iptables: counters copy to user failed while replacing table [ 317.687469] audit: type=1804 audit(1618291147.588:19): pid=11378 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="open_writers" comm="syz-executor.2" name="/root/syzkaller-testdir150245843/syzkaller.o5YtX0/45/file0" dev="sda1" ino=14071 res=1 05:19:07 executing program 0: syz_open_dev$usbmon(&(0x7f0000000380)='/dev/usbmon#\x00', 0xfffffffffffffffc, 0x40c080) r0 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f0000000280), 0x18, 0x0, 0x0) ioctl$MON_IOCH_MFLUSH(r0, 0x80089203, 0xfffffc) 05:19:07 executing program 4: perf_event_open(&(0x7f0000000000)={0x2, 0x70, 0xb6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0xea0}}, 0x0, 0x0, 0xffffffffffffffff, 0x0) pipe(&(0x7f00000000c0)) socket$can_bcm(0x1d, 0x2, 0x2) socket$can_bcm(0x1d, 0x2, 0x2) 05:19:08 executing program 3: r0 = perf_event_open(&(0x7f00000001c0)={0x2, 0x70, 0xb7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$TIOCGPGRP(0xffffffffffffffff, 0x540f, &(0x7f0000000080)=0x0) sched_setattr(0xffffffffffffffff, &(0x7f0000000140)={0x38, 0x5, 0x10000041, 0x44c, 0x1, 0x400000, 0x4, 0x1f, 0x800, 0x5}, 0x0) r2 = perf_event_open(&(0x7f0000000000)={0x1, 0x70, 0x8, 0x19, 0x7f, 0xb5, 0x0, 0x943, 0x104, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x3, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0xb5, 0x0, @perf_config_ext={0x8}, 0x0, 0x9, 0x36, 0x1, 0x832a, 0x3, 0x200}, r1, 0x2, r0, 0x0) r3 = openat$ttyS3(0xffffffffffffff9c, &(0x7f0000000840)='/dev/ttyS3\x00', 0x802, 0x0) mmap(&(0x7f0000ffd000/0x2000)=nil, 0x2000, 0x1, 0x810, r2, 0xc55b7000) sendfile(r3, 0xffffffffffffffff, 0x0, 0x20000000001000d8) 05:19:08 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) 05:19:08 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) [ 317.782158] audit: type=1804 audit(1618291147.598:20): pid=11378 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="open_writers" comm="syz-executor.2" name="/root/syzkaller-testdir150245843/syzkaller.o5YtX0/45/file0" dev="sda1" ino=14071 res=1 05:19:08 executing program 3: bpf$MAP_CREATE(0x0, &(0x7f0000000000)={0x0, 0x1}, 0x40) r0 = socket$kcm(0x2, 0x1, 0x84) perf_event_open(&(0x7f0000000100)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext, 0x200}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) setsockopt$sock_attach_bpf(r0, 0x84, 0x7b, &(0x7f0000000000), 0x8) r1 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r1, 0x0) sendmsg$inet(r1, &(0x7f0000000600)={&(0x7f00000001c0)={0x2, 0x10, @initdev={0xac, 0x1e, 0x0, 0x0}}, 0x10, &(0x7f0000000380)=[{&(0x7f0000003200)='o', 0x1}], 0x1}, 0xfc) sendmsg$kcm(r0, &(0x7f00000031c0)={&(0x7f00000007c0)=@ieee802154={0x24, @short={0x2, 0x2, 0xaaa1}}, 0x80, &(0x7f0000001fc0)=[{&(0x7f0000000ec0)="f8f56958fba978a2fdf3d0d8cb68398a761d78a09d309c4fbf72c3983b663088207de84ddca20b73beff45f9b96f386243fe55762615de1249bde44cd9c64c88e6c0445df72dc144c596491ee00a149f277bee2d977d818075906e85d2f05969be9cca574b42f814e4acbc43f99b27b316d0b694acbbbe491aaa0ffd38d43ac4918d6b43f3e6e8d0fbcacb00058a3e66d67cf09e6bf95e9133d1d70bfa8c9e5b09acecdf47591100e49986f5183f8cc9f2b2f6be082f169dc365ff34a0da86cea890d47eea8cb62d5a874561eef929f45345ec5124e29b23afc30a5f36867ff68a8c95d2d0c8071f0ddd1ca73ae3cf5df4af3c1702887a74c04c9bd87d4abe93052f1319cb1528c8f8ae70a53f77dca2a8506655e126f61abfd7354348333a3bf8d65580fb7f60a33cd502a1411552f7df5c54c2dd253e48bb11a4da6b752145e359ea09a3c75ce716d78ed3df26f16c43e840e59f8af6f1f0499020dc2d0e0180f7d820784b1a540821dcc5489fb745ce11536a36a45745609acd28cd747f27c4173fe8a1a4db9e1d7ad5fc63ef159d14c42a55ff85edda2393bb101d3c8b2f6cac8fc78d2f6260a886def5f5c53b1080bc3ab0b899ef7162be1228bde01df75c3be368c1bd49e5aefc1947ae8420506d4c77d8e96931ca496df7bf3f0d98c8fbb67a9b9aa408d6477c5386b86ed59313c39030055b5423ec0bb36e177c0ed95f0c1155f6d31eb15b4afb7318e618d221a38ac86f5187f76446ca0c81a37693286f29baaaeb9e565640fbc5bff9023c2aaed4bce5591cf25ef35306e4ad80ad51bb3902e6677ca9d7188be340cd341ea86996749890d60d425b6ff18ace69ea61ac413b8f182df4e4c1215c8915b8841ef8987651149bd9c6ccba182b7828d7c2b65f2f0c41181644a593879806d7c2261a8d65fd80b6245c01c6afc2af78fb5d58222283c1c9b2716db19b1b31dbb2ab5bd927450fafd7f1160cb1e64f2ffaad4b1386f3b0add31d1f020bc4e59334c812cf8f247f066490befa521be849b1ded98f6bbfd2392d94146efc497d746f44eb55e594f8353ba81f884d1356c9de3fffa3d789175b39bd7300ccada445018c55ca19850c70e1175b7f9c4d9fb4c063f5217454257fe17fa9a7b905ab98c9d915c14e9d460f4e19619f324c3eef8dc9bf81a585ec792acf7b9a8de9b40a745d8ed33b8b61dc3cf572f1092dfe603a4dbc836189c058cfbcb201af686771123bc80222628532eccb19046a8fc451b15b747993f5b2b7d7aec96efb2e7d6f073417793c554b8ad328e87ffffcba4cbb1c1023312d5a67cdfbead5a5d5b41cbce49d3ec1ac7ab2b9fb018d8dc929335caa837b51735f64b8f9cddb54519d94fd0b00b6492a4af60d6deb48d080430c584b07fb7133ff1e23df66ba5d4230865d76082e8ff0acac5dc050258b38d4ace11bd4b3e315f759dec286157e134e674a9a7ab05b717888bef7cf9cbeaccb9ca23c6fbe8bd6cef21fde31a32d216def220ddace0bde86f0c84f7668e6c79e73938053b05bf2a61d57ca6ce857a122d2025159f08600da10653583e9b20af88e69806ee3c90fa9123787f1e509ef46d182ddd884f2b210b7bc1586be8352dffa9a816482ac0d01dc882dc7dfc46392007c602f305eec12a416ca01cf52a8ae2bc0c36d1a5fa4d1f461ebb4ccbfcc30d8f424b285bbc10467aa296bdb5f743f9e7e6925d9cddada6e967b1d5e16a281ae515542facd660e382a84b3e607cc797457b46a30c28b42613ab20172e0d658063372d96df9f1ea237b25a5157d0dba2ce3b6992ab250b95e1eca71eb40bd1487573cf5fcf8f3c4cf4bf4ce38fbcd42491495ae00a40c1e4ba6ddfadb60a340ff64b50cffe20bdc3382ddd883bf166a1fcdfb9d458ddd18b485ddbe72b1633b0eb87fd639455428e1c57653bafbae6b001102f431799d5c13cdd8364f975650f91abf4b8868d5808b2a93068d33a8a4073478fe4dd91831f23666bd40c42eeba9d3af42b220f31c4ff5eaccf92b035320ca3be1d5b64b653c7491658fb906b322894f96a9a5c0800eead4ddbdfabe2d6a26b1a7130e7c1ad3235c2b1a44c7e651d9466b473b530cc73aaf7f87eedaf43309c6ced6ef7f1de6e7f4f2af14843c80a86e2da7850e1515892331016e9a22132244950b9a5359b81f65fa4beb3129761081f45bd72c0273592057feb56af07132dbb8477057577cc819d0228999614054154cf82aee032cb99125ca5ca3b0984b6bb17d32e2290012e99835c5f09cc896d52a2c363a8a7574d5024aab86101c298c33ba4e3cae06a44c8cd1cd4a16b59b8bb350a3f1261b0b9d75f4fc63f3f2368a7dd65e37c79f695b3634aea197c6140f460a2b6008f941adcea40763a27e29265f9ea5c610731a62d2249b4dd55671242c68d5905ccb72f77b1799b1941ca3f8325fb84ed3b896dbbae7ad408faf48fe359ac61f33d7e9aa1bae6d23c180d33ec918543d2f95f4018f43eb80db709339f62dc3022434b1e9c34557c2b0fd4315898d4c570377013deff1cd9e731737d5c951cc9ebb03e18a415ac02bd0a7df355bc235b29a98ee767e6ea1361942c675d585ad7f9082017cffd7ef030db9f4bf450f836d503ddebb0306a0b4a9e30a24d8aa6e1d06a425b8ff15427f1c807e2f00dd7def98a840e6c14307c00e68591e892cad130bf9fb7284889e10932a4b4a8b575dc13dccf90578d5973c6257a8438960e23b6a4a7d42dff54b18c165c2b154d4e744148dd6ff1f800843715afe0060a4f2cda8d5ea6d1dcdd2064ee6596656a50632a329a4a846136eeaabafdbef809a3538d9fe4c9d69ee8f5247c428464c0fb2f7116a3da7eae0dc58cc942f15f1e90b718c257fc0fbba463ea1a6ac740eac79293e98c616797d4b0ae53a4cdabf2e4ecd65ee4cdffbe9b0fa099ac8dfe9d7cde672df600ca58521a67daaee4b7c97154179d4486efe6c4995692308954bc504cb657876f32b135c2c83b5272267ca1d9983d96010bd72a1c3c7cc27a02f73fec7d5250a1f04eb466cf62c02738ad8097f63f2c898e576adf83140441165f984058fd412cb950e210051e8409743b64660edf75e1fcfd57848d4aec259c0bc420b3b7d331578a4e5e7e0573bedde8a0f72ba8963d949cb0618609ae731baaee1a0d34c22763eea18e8bbea720cb7f9962c4daec7199d427661dce23959c6dfd2fdd8435a83d2178f27195cd36e517870bbf153170c4bf2437fd7f6bb8fb397b01ce5a78751e496081b9413cad8dce43dd5f4b08f412e122fe02789327f3a777c2186fbca06c6a92a40aa5199fe79aff601be5b8a7bba12a9e22650e9b763d1d444d76ed6d7b2e9ed2405fd5cffc20ec729ff16623a3983d50d29c7cbb1b0b3222111851750028a1114daffa2f1f1fc11bacbb6b04b79c4161714d6625d35bf8ba4185269470786adc73bf7b5199612781487915011a384112eb946a786a6c724969dccb362257089222bdfd39b032fda48b06135332bbb2402685f873cca5b7aa71afa6f241c518b1481b9b9705d67c1ec9acfbfa7ffddfbab130735fd6414bad4f947b43fee357fd9b98425c3b9a81a3c47568539781d30518ddb0e284339bc8449c752378c5335b5d9d5f61b33a66558f1cf14a41fb79c5702ed79207de217e0ff9959d6559dfcda900378b21a6fb05620d29933f556fb7104d298e50d2ba7086bfb02745b976a76775666dba16e436169562ed192f9278ecab2716bac3c3806c1c52ddbb8848ebb4776a18bdffe81870f5d64123ab2851aafa2de8bc9bee3839a2bc355d19b6a93c10221dff44b01047961c067b3501c17ea448d01df9bdedd8dfe857c2500b195e4e1680f51c460a870fedd70d4c73451ee537f030e02f7af6ebb80391e71271a2f6ad21115d3dbdd9ae393549aca4abc55c5cb1e69e26d51c0ad9a54b520dd4c94549e78b4aa75a8cb58668315677d53877cdde680fbb456b97b6cfddd5e0411a8c8c8edb252ab760daca09c02936b9650c007b0ca154639a41446538f37a0584174fa3019140f648fc6b3f719cbffd9bdca5c3e91ec6c89997a556b4b847d14ced841ea5d7de7985b83074e679f16426c33e51a72518a2808f1a813689b15bca2958a4e50e9112cb650075ceee765b54479f6db025c1f0783d9642abc64f2306c48a0573bbfbfa1df24a67e687b7d91e4aaba84b0c990d8734f397250a175221447435010a6c4ddf4ef39befffb0edb5cb09218c273e5712d884fdffbe5db0e50904470ff20bcc2661e06fafd34893bf091c707d1a078f330032a9adb479185b40bde6231e2f7f5e211be3ed9c74e96923bda443fd84113757fba8bf49e89a9325a17e1155a4464b7efae97b802616d702f0493482dfac5717dd1bdee8ea7ec4f093165188b01e10863bb45318ae3b45f76725e45d4e809ab4306a22c98a5b85ee28d15e6ac29b4df1eb3ce887bd60af0dc0085231a023060aeba94a19c55f017634f19c0d7a97cf81c96c7ca05f217aa1bb5073167ca10c610275cf9ebc1f5b8bc2c104bb3b240da1c0d5980b7d6f703052dae83e2c72b9de2990215d3f1f5e84b865bf2f32af92fa121cb6b78303fd485b2ef8c48ac86a322caf1438db65551fe3b711744faf5cf929a899280008bb12f1c0e2fe3a456ed2a74d89568c84a3e1170bc52d2a5f154f06adeeaf75f7bca410cbefd0fbf84f3678de43f8a5d3377fb4a2b09a080b21252ef8e5228f078fcb25e26e40d09b21f3828cc09e01c90d742411966240b94a904d26c87394afcb11b289b4785dcc28ea3b871660ed77708feef2609ba7db46112c71b09aaec2d343cc80d119a02e32f4c1c912d8d8d7ed3b9c9b3d8ce9010dd004abd270d32a5b11f14192e07104e903f7025fe6b5e348ca54ccf1c40cc59d679084028f9c47ebf14fbbefcb73c4bba2f8758defecca4cf44ef8b2c6a7a23aea53000a22c155e29ce65f8ad7d1c33ebd7b58a678035d2d55ed402d99d7563d7ab7eb9d8a843facf47d93ecd374b7ecf33bc57ee85b16cd3528657cdef84837b94a8dc5313faadf5f9952186e2ab18418e63bb805f1a73c20d911c64c2edb4742d268cdf4d65bae30a140d9eee11ad3a6132ea742e37410941225d47a1d070d126322601921c0d219f4a12b9df173b98d39fadb418beff07907d5a7d3e7abfd34de19138b5a56ab3e3432efe4bcef2331b9ebcb993531e884c1dde6755ffb9d2dde4d5938efafdaed74c12e0d293028dafbd394bcffa82afe2842ca530e819b24c85a1b0e11fbdabfe0392a4044a789ddc1c35d9ceb123614d2ae26a266b1c6a6efe10d4b409bd81d0c912a52e9bdbd16939d19cf71c2cc178e726d057fa154f819e808f5a98e0ee8b66056aa3ad3b74fe0877a49a9efcb7fb5824f18077269bdc8c3d0ec47cb47100000a3a951a22651497beaf4508e2f87b548815b0dcdaba6259cf34b09feef875fd1d65114991d63e1f691a95a2b7b81f7b2b5299e3e140d5eac46b74b9e970254f5241ebf8be9a45ffc88fc9dd5a1e925b9de55ed06c2b03b28aa513948840144f7b693dc36e276031201c95e81d65fe0f4cce7ffee04522aaf0e4aa0c50d1e67301ec71081ff1fbaaeeb5b01ed140eff1b336eb673c07601b457296ccac9dd77dccb282f277bc6abdebb0875928bb9a250d4d21b8ab8a64f726dfc5fbe65f2a5a3c7d6c099b6886ff2b9d6133dc764b83a2e0363e79db1c2661decf9dcd4cd592162de1a58b54c0a79debee8e24853b5b824636fc84b57c3f317069195e11b2b9", 0x1000}, {&(0x7f0000000840)="cb315523346a3cdb694cf8618b2c74b4b8c8c7951439eac4a331b05d74020631e3c8b16fedc1506983754dcd78", 0x2d}, {&(0x7f0000000a00)="75203d54f8f7115e9072ff925d49629e18b214fc2cd9491ce08c3bf77c1d41c56e7353432253db8977d354b4b3e180917711fa8fbe33eac0865796d231b43d57f1379b4ded106d814fcc277a0bae3ae02d3841770c1f1f1ceb1592f344baa2bce2da462421ab81d1bd40708a02aa924e260010a60ecf5e3195d43c1a31fa0b2d41c5c49dfbf6a055f10c0bfec924591b14ecc72820b1b933e484337d09c2927c26dc784d5c93ba975ee1b4c35d63747438cc2899557230d8524cb0d102384616fa58d7d962587e0bab3a2389cdff8790ae9960d2b118ff228c7b", 0xda}, {&(0x7f0000000b00)="237b484a36a05433081f4598eb1cc273315b10908a310166b13107f165aa988344590146334a50f07d1be9497100b4d2e2796816ea1e45cc9c92b05a476d57b74fcadac4b48fa13a3b9dc6d0528d3c01b6b35be8d387ea01d298e46c6f4ea93dc8925d6b3174545ff3e389af7fcd94f096c586e9c775bbb607a6103908eca3a65e481ec16d0e2c3c7893d9055b3ae24685a69a7a7d", 0x95}, {&(0x7f0000001ec0)="b1755e2cdcd2cc28e80962ba5203c330b4e2f2bad6e88b959b37ce9c6825f5be178c8972570a1a4a98a357fc590e7219055bc683b56aa67ff5349a9c18d7223b1243d8699fd1a576934edcb0402d43dfc809fd84ef242d9db5ba398db6c295c512dfd83367d549961b21403c38fe58f891defb09eba50677129084e3b3bda07fd16952220f369f6453679a896ba658634580ced53e3b3dafb125ff8c9bf4f1eddb6baa0dceac5b37181876edcc665e763d05ac0e6bfa27ad937d950c19d7c30c76160712c9b31969766b6c24b0699b24ec973c161dcdc2ab44fa76251da06115af5d67fffc4c456aab703ba7", 0xec}], 0x5, &(0x7f0000002040)=[{0x1010, 0x100, 0xffffffff, "d1d66a3b05869474664053b7ff874b140ecec04298c83aec31809086aea9798074b5e1c2f61a74684a51a91a40d3f3290538b612062c99db559ad116c88579d1903dd11b91392147db16a9ae6122b21674e23df9cebce30118da2ad45009e275dcc1e63b123dfa9ed1c10a5528a8e2fcfe5254be8b6668d1e43f669f6df037352c03601e0ab2c4c37f3c69aec8098eb7615c0019333969c833d6d29303d9c7a066b105fcca941dd21a850f3d75f6c82057647556496ce717e431587a5bbea8c7104d9e1877765f9127b9a78f4b28dcc7ccac6e0bcc2bbcaff22f8b274ac486fbf656b2d04d55f488a1c1b55007054541aa706e91de3198a6d8ffb11e28e4148625c66be90a4578c07ef0905198b7e3c0146077a576a34c64c7f47d546db3e333e895b8c21431aca65c8029ce4f4106e5b1e80a40b5daa423e817e599b0055adcf17bf36c1aad3dd3e4423d777410a43a3e9e6a0d93241327a215f8ef3407bc2c94942729aa431b10ddeba652bc596c9dc7e08517eff52fb475ba4da0f160767e64244812d617efdb29ee59b1371148338f3a76792366784878eae3e8a3fca42acf387f3c2b7712d267057b492751b678e093f5e4c4d391a2c23eb3acf22f2f55d61af93a6929441a7fba7aef967cfee4ff0ea696a95672687dccbf1fa1dcadbf7a894ceddc367ddfbe29cff07ab15e10679daf1515ce24c9c6ddfe65022d04d1dc9f615b6c49dba675855be837415b01538c24e2260ff2862b79183ee5154cefdaeb24831c8daa5f2d7b0de6cbd92008e35231ddaeab6dc3c42943d51249b82c03524920f01241a320345d5045214101020de9a63480e3c00c7e8b2a8070717511a9da6f9427997967f6ccf8777f1ccbfa54d7c0f2e5304d916d7255fb35dae052a9a27c32635d7a051fd48d74e5897bb61a374e3f70f34575fb042237b0e2d970605607b345ad535f2299440a5513190d0c324df80f792bad91d9cb520ac6933ac7cf0821be726263cd94dc55d52b2da82ad885a1d1fb2859e559e8dfcdb22ae8602cb0486e19f1a5e67b882930930e1c7ba2802745feb1b590bdd2ca4252c5c26d997aa933a13f4fd61a735bca4d5c3551f5abc75460c0d8cd00b6a7df086b4ff1a59c5886a1193fd3086366c2dd189b48f7f1afd83d9d8fb9a257aa52d5165f95227f32a2340f847a7a4ada578b629c71e3275188b91aa3d152863459a867c76ef6f3ecac4061b09dd024e1633085d6884e5012e08c606ee54b3aab5ab30560b316ebf19f8c8ccdbb3cc196021a8bc85ce95857d6874592ebb98493cec17bf6aa8751fb7c43d787b2727932dbeb2078db6ee92cc66c4f695711cd4cc782a7ae3436dd901420561754e49525bea78e73c0debefd5173e81cb16d863ccb539052f03daf9c90ac2417b39790f9280041655eda5016c1b791dc88cf1f84cd5b62479bb7cef83a1866b731dae42481bb3259b7515e4e3ad6637e03830da38a2024762f8c5fd50c6fdf7a52bd9632a5c40879f5874ef2caef1fe6fff2aa40148158a2e736d3272cb8fbc65eaa1d0909623cb40eab384d576cfbec82df7c78de286701fecc50712c2f2fa0feba8ac78f5afbf3ec501d03de336cdbc9dbb63a2e520a71fa0c6adebd40b9db7bcb1614cb6296579290c5975f6250b510904e0b4e2e1dde127cda6a997aa77af03bfea5d4d0c488e050bcd1df3c4f5613ddf3e9a450fcc9524a0211c540d446364f884d69927dfc85f428c2c061b1c489a9dfcbff9ff937153c10225bcc7908f03ee16bc6470aab893f7c1f90d6221f1cd5ce41db0171a2bb668d96c41516b476cdd97598e7686f79e8b0dd7165c5f790fd2ceeeb14f5f928bf731cc19c3a3113e0d8e2cfb8c84e4fb42d31d035c8c5d33b9c63e4d0ad68a6a6d0bd0bbc940662871bdbd3229dd344685d1926de6e8c8330755f5bce25aa4d88546cee96bcd107f63a47c53b5eb9f7aa94a4d2ec07fda1b4616ad0faa9ec9888a9a3a4f8723fe32d41781747ee5368ebbb431b5ad0737dd27568e9e2c22c7a11c367cc6ee7ca2f5b6ba596b1cb8fc239ce6324b31d79cd766f574d3c98337fd33c691241edec2638bf571a2a278418a25de39d25aeb99170fbe3006ef3311271e6c84e4d2e6d004a40e2e68b6856216d93e7a9a15e64c174d2b02d413eb533da3bf862675ed5929508aa2cfc794c11a5925303137e6dc5431aa0f83f959da55679c4fdc77c19dc2623eb967988b5d8e6bdc590a9b9eb9e991da4365f0ab98cfe50bedef54c7c5d6334c46426350c43f7bd92749d991dd5810be9363569398b126098318c95a0666854f61b8e27dcfcabd78e425214bf54149ac567e9b18d46577fa013b1675aba37e7072ed8749f74e77a7493c4de71328e6d55fa70e9d6893c13e8fb17212e1d9adc7ecb2696d0d8b25e1ad3c75b69a9acd34acefeb3c95b12abfa9253541b33573effb1482f84849dd61a9c7e1cb6c7dc72edaa259b219182801a2457002985a785c64697c685c1d708452a9f023ffe4e568f10046a7ad3fbd82c61511b4e9fbf1aa680f1ca1e05efac1a35b2bd72b2857fadfb28c5cb9714b65793d85ab4bd4e908333753b1a92ce193925af8b06c3bbf2228a8fb09df2e908189109b1a92a8005e3eb410b94f8081de095001568522ba50fc5d5c9f072d08e81a78b510feaaff6a4d09ea5e3213cf0d1fef784269d93573f0b10884f9c6fc8982b7c83279f2df6697e30380041748850d5dc773a95579bccd7dc411b4545a5863127ca41f84e69407898432e3ee75539c669a3a55f93fa374df0d0e4592c1e4db18f996360e4f399852cb8ab74f0b77de79a51f5d095c10efa5b35c80d2d417b120fbe00e309558a359878040d4cc59c75f4ca7efcfa106ea908c34097853fd4b41269329b69f4ec40db932cb4a15efce07fcae8c40f1667e318244af24258be5c229ee4aa71dd99d722adde6df4f8547d4192eb25b83191f226a74e8b78966787541c8c50039dd8aef3e6d10b86d0b2b9ef6e731efc3032252af63e6e33018048f4d5a7fe5bd5d10b3e22da950424919525f91753044fefe4663b4a3a9a00ed987b11604cc17fedb993c660365a355941e46821c1bcd12dc989e9c5ff923366462259d49eca1b00f20ce8841203d71924ca44a0c204389f76e2d1cf419e7f87c65c090a0db38915c574cdcd8f30bb619fc54fed77faaa5b8336bafe02f390cb2f4ff50c2db79cf0e76efaa9b088a2d43ff181f08e515e4ffa1f6e01412034c1b39723e818d879db953fd99bf3f69f139c107b13de6eb3c2ebf3a5ef3f5f9cf150349afd3f030fc8b0129da9e8c85df53d79d965c11d5f87bf72433e60ee0e1dab7e6b1792aa7f7828b9ac692694bec10789941adaa792aedc186db9cde4b23203d43e0e3238a3b124f049fc2e1b4e36320666882d7d08d1f9d109b9ef4c5cb769efdab665e48882641f80ce1953d4269d2481d41c3ee40a7d6930b94a3f72c662f38e92a1c6a0bd6ed51de2cd1c73c8665b8aab0043d9e1d6bbfd5a55a0857fa575da2f4fb9a9083e1bc5f20b31707d7f4a83a79e65f394264dc46a3d58c9e7dd22edef1b6e64288bbb37fb728a4466a8a6898b63c88373cc298a40ef550ed3fc0a337a3ff891d7e73e4dace9965afb2a563c827c130fc7cc662333c8124350a23573dcf8d20738efa39e19dff6dd848ba22a6b9200120923e5dbaad729446f04fb79bd6f16a8941f3777518a268a841276fc6712a2192880ebfa43ee656872d370bb2f83ce93d38a7044225b2be192b1cdbd031d489f86c9483b3b3e86d9ab59d0eb10f90a17dff3a7af77ade7a0daf9fcda006f97757ba90c6e0b46b0ba5b7bb9b0d2d8ba1792fd633b3c3f1bf12cb6d166ac8ed2f8c6e764138c16cf9dbbbc3c038806d615e520f896925f79321aa59e8d2d349fa88d6f7a66ff8d0b1f09f890abd0681d52ac27edaefac472b10bcb4544aeacec9b2db27581368da5f18a88017b28557fc97680b5ad9c44c66e329e41aaf57e779807b9b80d8f4b681e205834614a360528d53c9933b3648373e216f223ead7a22e8b6fa9a2a10d6fc20cd381ae57222ff0fa781e8f8b3379fd846185ec080ece66a3b38d39b871bfe73d1b355f153f8b7eae685a87ed398e7805824f849a9d37917fc6305f8481f71d32c74ccbfc062c11509967f223039b7b17243336ac2e5991d65137e61066bc044b5864136dabee109d35557594a00472c2e50fd38b796a69f4ab6b1c0821f14df401f5df99e432831cb6316141a76406cfc223c430050ea70eb62ab285dfbc319c0a7f54f311bd220dadef4880536232bc2d7a65c80f4c27d01658a6f839373914fe59d8e6744da90902cf574e53016e57e613ac7b6c2e609f327d0f033dc94514a87870faaf2780d6237fab18c0bbe69d6bdbdcffaf2a9a4f220003700b2d6a510504e23e583bcbba47a6a5142b52d66ab25d0c1120a6a2bd23025f7ee0414dfa8e94ff2b00a0a54de1013a234fcbbb129458b7db284f524a148c8d50007ddf1b3af52c7d6da56f802265493e7a5e7ba9d4f2b85efd193635367412c94c480b80139ef1a5c3d6eeb10ec9887036f14116c254cc2510c41790892f9963fa08774632a03e575a0c3ef364f08d78340284ffc2bef8fde284b84d65f16c9fc8811060a0ad33be3b1ced9ab666a1606d7f962a98e580c48b8639cb1a1bfb8f300ebdae76de4c3d8226df24335195e5132b63f0e5650567b86d13916e165b6d1ef0bc2b94e99bb35181138197c9106f7c6fe4eab235a5a59958b5ef518a7e3824e0c4df2d16ab441d02d7c23cd0fbc8e2bc38369749b28e2af4697d2fc8dd33ba1cdc5e6c2e856191e91d2272d19fa3454f74eb3b398a7ea298a85e06ef90868c6dec1347f6a2eee151248fe4473ff1d4735ff50e5de003209b30de29c40757ae3d6b4f2a8349db8dee13ae53c5ff45424acc6d05ffa6ff732979a23e4882fa301d2f5c4c216a0cb18e7380ea111dd2f2730df996b73bdc8eeb8c0523c4740f6f51344c4c8dbbff2af3d451b45715703a44983493d7596218ccf33fd19c76081c72caee8fab522bb39b236e218fb09b93a3d0a2bd4a6ac5a8eb1a8a8f505ab6d7601f64e5c4ffea993c89cac2cf5803d224c07f4e5919a1c1f890caab494fef2bad0bee6a0728b762bc6662de9a0ad29b579df25992deba9144d2ed1be2c835ff1cd137906f3027dbd4fd6c4d871630342974c27119a9f290f1884fa082d4dc6c8b631d63ac343aa6226fcbddb1085141720a57ee23f652187ba0468fe7b84b1e3fc565faf09c383feb557785ced932a985a81eac36956a8130ab36b1b244e0878f445a02052ba79f19765ba3796bd1c5eb30c3b504fd925b04d9880c78611d4fd18e48efc234a882fe6bae6a6d03ef6eebfa093e04ecb91860280ac6c62062b846c4abd2847d1c38067e0108590dadf95e898d435cd162efca2bad9dbaf3aba40ae90343fca1c4d2e6df7f7a1dc88eb95c60e223ddc2e16e5289efbb2e6e2084e384612c821754beaf9346304da9bc6ec2d8a3d3eacbb33d9b87807dda293be0580513d1a5d061e17169063fb0c8db60620cb69d96d6e995ef656b82a8f53521f15409ac0dccfb73a4732019b0f1504b507615530951cd935b11c0565cea2c310652386e9a681354ef3edc178baf9b0856755cafac7ec62ca869843f6202944f86e3144c329826539f531e085055892ffb7b80948d83cd3f47777d4a34fff73eb2ff77ba57f2dee48093bdd04c693590afc79ca6cfc65443b3dd957372c5"}, {0x20, 0x0, 0x200, "7cd0c60b63ac84b3c9ab7984f145b2"}, {0xe8, 0xff, 0x7, "aead6882f1634a16beba8de51eb2047fba7fd92faf5eeb0344ee2c38dfeda9ac70dfdcecd443a43e47d19ea9641d17173986e43021b1ee64e3a755c62f39b0684f26167e4f610aa80f2e76bddeb0fbc25d3b6a794dfcfbf9579967a03c80c7f17b9c8070251fb9283bdbabc759e270a362c5af8ef4036e1e6a68a01dfe573fe01d7bc0b489f9bdf05b602e8584cff9abcb4c55f95827dd59bfe0c0aeb7d98e06ccdfd45a9b2a14b60c569336bdc449552ef6242918dceff3a0dc2cc2149319de2cc8c72af0af13552e5285416a4909ee9ab0a90b5a"}, {0x58, 0x100, 0xc2f, "080540982b62644da46e37d4f7e75b21f260aa5462c02e14a793f3f1dfb5cfd620230abc0d4d36b45c1929fbec70d9ac40c487cbeb578f1fd8dcb7acfaf342ef275b"}], 0x1170}, 0x20000000) ioctl$PERF_EVENT_IOC_SET_FILTER(0xffffffffffffffff, 0x40082406, &(0x7f0000000400)='-\x00') socket$kcm(0x2, 0x0, 0x2) sendmsg$inet(0xffffffffffffffff, 0x0, 0x4000) r2 = socket$kcm(0x10, 0x2, 0x0) sendmsg$kcm(r2, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000100)=[{&(0x7f0000000040)="2e00000020008104e00f80ecdb4cb9020200000400000001810540fb12001400040fda1bfeffffff0600050e030f", 0x2e}], 0x1, 0x0, 0x0, 0x10}, 0x0) ioctl$sock_kcm_SIOCKCMCLONE(r2, 0x89e2, &(0x7f0000000080)={r2}) sendmsg$kcm(r3, &(0x7f0000000880)={&(0x7f0000000140)=@l2={0x1f, 0x6, @any, 0x5, 0x2}, 0x80, &(0x7f0000000540)=[{&(0x7f00000000c0)="896d9cd71dc06daf2f77fc02b443b4a2c240b5f0355a63a2642daa62a2", 0x1d}, {&(0x7f00000001c0)="8ceca58f41332ec06dc024f770b320b2bda7e4c0ea35582f02921d7a090f759adb3c7a937437d0d0210c9d15248a537dd399f78f06c069aaf5705fa2258af7f3ca0a6729a739b8a26dd7542c30bb106a8f645f386a403b4027", 0x59}, {&(0x7f0000000240)="14be9460776a3dff28aee5e109012ca1466ce40b0ed61f01c4b2d5a8f2da823c63b0bcfcac93324ab41c2e2aa104261dbce85fd5a2a568b018536fe8f86777b6b5aff4ca6c590b255a6f359a4e8dcc837d2973f08cb53e8bacae4285cf1298200cecb1965aa6c545cf53c6f2cbb3a3e1f44ba6eb450cb599540552fabc90589ec1eef7b90c2c64", 0x87}, {&(0x7f0000000300)="265512d6d78a345998fe15a0028e2c223f5cd2b23c9276b104c2dde9a8524c2427bb08cf0bccd6ab3d2d35bd99013eb753aba8def3a4271f0ece1ebadb3060174deb355449a09a4e770a4a71fa9819b0f4437f1648ef458685bd2ae146b8be3be20f10af77d9ba3f660acdeb51b8b2731060aeb6babe1208315d94c35d4744e0eef37a882bb38d50a4aba9fa61b70c", 0x8f}, {&(0x7f00000003c0)="f0013d0f48b80ff335ca175d919dab8a4bc360af2204c3781a06342da8dc063bea810bb9bfe0923c9da4b490fa2dcb601eef7e924ee742f0f42f315d6c6c42a2e0796ee577321d0d418f324aec9e648b257a3434d476970b8641eb35fd8a1487bdfea29fa914c871093980f13fb1855888fd1a4df574848d6c61deb005eb1e11b25adb2865b53697743e8560a48bb4917e6b9943", 0x94}, {&(0x7f00000004c0)='w', 0x1}, {&(0x7f0000000500)="58876023bb7b19fc33fa2847fddfd27c1222dd463cba11", 0x17}], 0x7, &(0x7f0000000bc0)=ANY=[@ANYBLOB="9000000000000000010000000000000020d2ad2b7132baee057984487d9d0ff085980335c202eb80e7248dd6eedc6dc1d28d1661999b36e38d2c5a1e1efb48a1faaa6685391af88e838230db6661e4d411ab893ce683ecebd31a7f73133ead3c74d04a22a0fcdc1fd0356ef2a724769350e347b95a322e5a0c514e4ba30c1ab5515c3e2ce46191f7fcc2475765a8b798e59172439eb88b9f5100000028000000000000003a0000000008000071e99845ae997dc000b4d0fce93ff0e6778738203a866d004800000000000000130100007f0000000ee61183a3178ca62f62008bbf7dfba414a2871dedb52436b2bb8514b363087b3756a12a5d6abdf0f6559aa36e78bcf2ed00000000000000d800000000000000110000000000000081a17a75743a97e432d6f70d90ae37bd0631a6321ea03adde6164887e8c5f185ceb19173b9493f8ddc5b1376d54a8000d9a8e0a9e460ca884445ce389e833a0d36f1e2bca687e31fecd81a7d5ce71f5960c5d3e51859010a5850728420c5a025c579d53ae24f76c12d2acdfdbfc4a52ddee5fe4421ffbe28e97ad3d804e4f58ef1b4bce93bf7ad173e4de01b626d614f73f6fcbe2394a84c921ac658da9da90a8d49d2e6347c58689f37979ddb3e1a46870fcc02e4c6100fb76d3f9202b73ed9341f18d5f3000000d8000000000000002e030000c1ffffff6d87ccaab2f92f292a451c9055ce4a7a2c8f4e3355482dbcaf2a2778b7b2657ae306054c29c1de0c78f67c5df4bbb6d72c39bf26da1900ee28629e6f3abefbdf5075bb06670fb3f274f02959ae9b839397333dd8c37860b70c9ffb8a12d5b6e1c114ba193fead26f757d0f11163465f03c851d39fa152ee706db68f117b05710515640974ff73a37484712628c38785e941c38f46726c483f4e1ffd7f96ef2fe9432576a46c1be0fafae817e089b07cf7576154192d817646ee9cc6442b5fea444dca05e19473a79cfa1e10ecc78000000000000"], 0x2b0}, 0x4000000) r4 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000140)='memory.events\x00', 0x7a05, 0x1700) r5 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000140)='memory.events\x00', 0x7a05, 0x1700) write$cgroup_int(r5, &(0x7f0000000200), 0x806000) write$cgroup_int(r4, &(0x7f0000000200), 0x806000) sendmsg$inet(r3, &(0x7f0000000780)={&(0x7f0000000480)={0x2, 0x4e20, @multicast2}, 0x10, &(0x7f00000005c0)=[{&(0x7f0000000680)="aed9e7d0a55cf42a5b4405b2bea4f586efc6f768258ae85784a592bc0c8e5731c5d26f9e0f2aa5a4bd7e1ec24e4c5a6981f960eb3865234b7b49bb9401dafec4848cc0e04cc4cc9f0de17c5156b6b0ed9510604737dde93b364a16100d95b43d6a104422ba98cfa643bede75577db9f741ec1d86c7a8f4a5a61737cb2d2e18aaf1034765d97b45e08ed760a7e7b8a913d35e4d91538e668b4a8d46193762cede12f50245bb8aa61cd261a2c1704b60f0bcdf8cf08954e23a25d957e968e20c7b030b57314632b0938e8b99dce9fd1560a71425b3655771ec882b4ca11cda41726f67d1026d6038075be13006", 0xec}], 0x1, &(0x7f0000003240)=ANY=[@ANYBLOB="c40000000000000000000000070000004418c730000052ac0000000800000dc1000000060000000600831bdfe0000001ffffffffac1414bbac1414bb0a010101ac1414aa8670000000010211897be3ff10006f320df81fe0d35f2a000c9ce9bb9106f25397f144050cd7eec4680217530d1dea0706d951966006106a9348307202b519cf1138b3477901106b7fa5131b136f79dd1e9f9e0763050c23cd8f7b59384f131d380005fdd652000818ded19537e70702440c3d61ac1414bb00003fa6000000000000000014000000000000000000000002000000eb06000000000000140000000000000000000000010000007802000000000000110000000000000000000000010000000300000000000000723e1f8f2951bc26dfd4f967dcf6af6f0c0cff83ab07542cb3142667cb02"], 0x110}, 0x57e28e6a4a0c51cc) 05:19:08 executing program 5: mlockall(0x2) r0 = shmget$private(0x0, 0x1000, 0x0, &(0x7f0000fff000/0x1000)=nil) r1 = shmget$private(0x0, 0x2000, 0x10, &(0x7f00001c3000/0x2000)=nil) shmat(r1, &(0x7f0000ff1000/0x1000)=nil, 0xe000) shmat(r1, &(0x7f000000a000/0x1000)=nil, 0x1000) shmat(r0, &(0x7f0000000000/0x13000)=nil, 0xc9b5287740d04963) r2 = socket$inet_tcp(0x2, 0x1, 0x0) ioctl$ifreq_SIOCGIFINDEX_vcan(0xffffffffffffffff, 0x8933, &(0x7f00000000c0)={'vcan0\x00'}) shmget$private(0x0, 0x2000, 0x200, &(0x7f0000ffd000/0x2000)=nil) bind$inet(r2, &(0x7f00000000c0)={0x2, 0x4e20, @empty}, 0x10) sendto$inet(r2, &(0x7f0000000140), 0xffffffffffffff58, 0x20008005, &(0x7f0000000100)={0x2, 0x4e20}, 0x10) r3 = gettid() shmget$private(0x0, 0x1000, 0x2, &(0x7f0000011000/0x1000)=nil) perf_event_open(&(0x7f0000000100)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c44, 0x8000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, @perf_config_ext={0x0, 0xfffffffffffffffe}, 0x44147, 0x0, 0x0, 0xb, 0x5, 0x0, 0xfff}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x1) ioctl$sock_FIOSETOWN(r2, 0x8901, &(0x7f0000000080)=r3) r4 = socket$inet6_udp(0xa, 0x2, 0x0) recvfrom(r4, &(0x7f0000000480)=""/110, 0x6e, 0x700, 0x0, 0x0) 05:19:08 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xe, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x70}, 0x1, 0x7}, 0x0) 05:19:08 executing program 3: r0 = perf_event_open(&(0x7f0000000900)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8001, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x0, 0x231f, 0x0, 0x9, 0x0, 0x7, 0x1000}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) set_mempolicy(0x3, &(0x7f0000000040)=0x9b, 0x5) write$binfmt_misc(r0, &(0x7f0000000b00)=ANY=[@ANYBLOB="73797a30cb40005bae86c679d4fb915624fc9220dbf85e00000000000070b035f75cfa50539a010000001abe12000000007e273d99a7abff0fb7e01baaa017d342549c7d655d3ac4a234c9885ec8f976eeb9f398d60b3adb3f1389cefb89fbc6d22ddf4751300e3730be779aa31382c165209c8a01e45c1d22139fb0b287046750bd857eea1be1d9a5e9cb0c84d62f2a63aa67d2325841f4d48ff01926ae610260ee3251f737f21a609ac0d90f0872c1c6eed96856d9aa1e305149c78826f5a954591287669483b34ae6fb827e18c76201955ef917c1e1bd69bd8456148fc34ac7e3ebcf1f0a0fb65b65d3e53ebc15d4327668f93e3a17aa00003a792748f9d9480fae2e815a179f242303b701aacba3bc00000000000000f62ca71dce36357d70a4c8304a00556d2c66af0b51a97d005aaafd68afa36ac20d7bf996a0b3532bfdf7fe3bc319060f2ebed2fc87eeff7e66867566d91d000000000000000000000044fcb300a8985837d2110bda7221377602fe28feac94b9a24c950530f6567f4f688e0a8b40586424ba43dbbb097564bbb29cedc244887d5cc60913c9e6e4868e5e65d544e4e4e36a0a511e8fc8de37a61ff8df1f2e1b8267441f27ce110abc9a5cadd3fd8cd3b1cf056bde4204f85cf13aa74d7a2642190645afe40b0e49aeec65fbdb817ca84e27dbc603dcea7aee64537ae1646959783bb35df6e684271b7066340e1a6a06c47eac34eee0737f5ca531f59e8e3be0d62ea5b991062c94c3d0375a28a2bf399be5b3154f0cd9f401fe5fd7e334d5b6ee8aaf9869a9bb6bba8d1ae8ef309439d48d2f77b697ebf9354e56c3745e12a13293247b5e59c83e601f0390e764e394942d6399a011fc33fd9ecac0c673f0e9e27f8c71033c73c7bb6e661ed3a3c994f630a462571734a23e"], 0x107) setsockopt$inet6_tcp_int(0xffffffffffffffff, 0x6, 0x0, 0x0, 0x0) writev(r0, &(0x7f0000000880)=[{&(0x7f00000002c0)="4db27a74c17274ba2ff7b0ba312c4f4d5ad372dc2f6e072407c61f5cd7cce1987a70861f5bdfe1aba2eb1af25e16ffbfb7c7fb60999db9e81070c053377c0ac3276a68fdac82225956fb6278a0eecbec17ef1e76213facdc2dde271c34b82994bda31f6913b525c66b9e8410e1b724a0fb1b6b2e168040a771d5466ad724e5ccfc7cf791be79d773cb0be91cf0d903918830deed2f50aabd661f27d07b1f5fd65e5c1142035272772e66a5b94f13f6e66dffbd43e8bda7519a0c2b1444b7be40636e1a324ccdec0b7b17c80706e4c9a8da3a271f6d0b9d8237d784e9", 0xdc}, {&(0x7f00000003c0)="7b53a6054445a13b206449345ae782a7938aa426f41ae9feb37b370e4a532e1fa098b0075c8f96d99a5534fee43f8fe70a233cd20f12d63a61213c035733164605898d4c1a5f39d2ce17238f777f25b75bdc4d1f9838232dc1012869ef7e435bbb99aba0871375abdab0f62d0d57bfdbb076db35c4991615c61d9ff0a8f24b85dd1004dabb6ab392db011a3f7e6116517fd3511b918eb3f6604866e8e08c91ab09d7", 0xa2}, {&(0x7f0000000480)="855047be1aca957e8d6ae0ca8e8318b392c92156cdcc20b198cda6698cdd6814163104fe72bd4db51fe0cb60e2c8d113adde3ec0ae627c9265d9c08e47c86956361d58622e", 0x45}, {&(0x7f00000006c0)="980ac5af33f23dd1051c80789a2a6ba61ea1522fd8c75855b2db1f0a94e65ca7bfacea0c3b0b8acf2a41586d5154e84281edd883f551391919fcd01a034f000480686b07adf6167c57e95ccefd1c1eca2844523303ade3510b17a5e1728b358f4b67abb844a81d756b1b60b1a2108b6c6d2f94c467dcd0ca9f8d50e0", 0x7c}, {&(0x7f0000000740)="35f22628ad61ad4ac578cefc4b5838e91919879b2863f04ff6360ed145bece5922d54198e0b182e0092a72d799a22077164b43afcbf059717671705e984b625847f78b5162d0d22f99e33e38572fdb1ecdfa972d0735f781c535b42277523045c1a064babd58aa538953c30e32dd9ada816e487589030232e5c8d2a4a95e32735d4a8a7abcaab3f77fd676c5c938749d", 0x90}, {&(0x7f0000000800)="d7c12b2a83fb4bdd8f4c8384465c7f2133da5fb6b487a65c99862abbb6d8c61e8349694c4e8e219cb886d3f60d385578d44682b29421d7c14d6a272f6444bc3fa8ce75c728624944f5d7e6c62425aff2ed2d6d2acd515da89addb9f7754aaceee2ff5f49ec6317a63cc4fad76b72ef15c21f698ed1eab39e40cb18e471", 0x7d}], 0x6) set_mempolicy(0x3, &(0x7f0000000180), 0x100) clone(0x4412c5fc, 0x0, 0x0, 0x0, 0x0) set_mempolicy(0x8000, &(0x7f0000000000)=0x7ff, 0x2) setsockopt$SO_BINDTODEVICE(0xffffffffffffffff, 0x1, 0x19, &(0x7f0000000140)='veth0_virt_wifi\x00', 0x10) socket$inet(0x2, 0x0, 0x0) getcwd(0x0, 0xffffffffffffffc4) set_mempolicy(0x0, &(0x7f0000000100)=0x8, 0x0) openat$kvm(0xffffffffffffff9c, 0x0, 0x0, 0x0) r1 = ioctl$KVM_CREATE_VM(0xffffffffffffffff, 0xae01, 0x0) ioctl$KVM_CREATE_IRQCHIP(0xffffffffffffffff, 0xae60) set_mempolicy(0x0, &(0x7f00000000c0)=0x8, 0x8) set_mempolicy(0x8000, &(0x7f0000000080)=0x100000001, 0x3) ioctl$KVM_CREATE_PIT2(r1, 0x4040ae77, 0x0) ioctl$KVM_SET_PIT(0xffffffffffffffff, 0x8048ae66, &(0x7f0000000200)={[{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe3, 0x0, 0x3, 0x0, 0x1, 0x1}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x1000000}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x0, 0x3c, 0x0, 0x9}]}) ioctl$KVM_CREATE_VM(0xffffffffffffffff, 0xae01, 0x0) 05:19:08 executing program 4: syz_genetlink_get_family_id$l2tp(0x0, 0xffffffffffffffff) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0x8}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) mprotect(&(0x7f0000006000/0x1000)=nil, 0x1000, 0x0) mprotect(&(0x7f0000ffc000/0x1000)=nil, 0x1000, 0x0) r0 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r0, 0x6, 0x80000000000002, &(0x7f00000000c0)=0x2000000000000074, 0x25d) ioctl$SNDRV_TIMER_IOCTL_INFO(0xffffffffffffffff, 0x80e85411, 0x0) bind$inet(r0, &(0x7f0000000280)={0x2, 0x4e23, @multicast1}, 0x10) openat$sndseq(0xffffffffffffff9c, &(0x7f0000003240)='/dev/snd/seq\x00', 0x0) ioctl$SNDRV_SEQ_IOCTL_SET_CLIENT_POOL(0xffffffffffffffff, 0x4058534c, 0x0) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000000040)={0x2, 0x4e23, @local}, 0x10) ioctl$BTRFS_IOC_DEV_REPLACE(0xffffffffffffffff, 0xca289435, &(0x7f00000002c0)={0x2, 0xfffffffffffffffc, @start={0x0, 0x1, "045eff8c3d48c208f69fdd6d242e70087ce7bf18411e8fd8e6bb7d1449993021d8c488794f3c1c19cd52806204742893a00f278880e65fade2e5b5ff8ff872415df06d5a2b5c8513a7453bc1ce2bc1813978ea30624faf69a726dba1a9a58119573c85e82a05939772321f2a167632716527c127f012db3c07c541973ab0d6b24d1b28c59eb29833dcdcf12bcee73c9b6f19223c0c636274c6d4b945ae02bc346c8b5c2c27fdc16bfdbf983dd837924a6fe43781caf9b1df011546f5560be1294764892a42694405062d4b02aa9fdd970fcc6f096df2a2e61516d36e11b8736389a6e28ab626480289043a0c9cbabbe7e2e254cc96246e4ec37608073ba765025891740718613c0f87fa45ea9809b09f2003f9afce1b9897d90b494d19d8d2d3b4f268d34363b2482b3f7c7c507c5e49d5fd8f7f8920eafa5bf6783755bfe84e2faec90013cdea843c7fc58b1572da3809e4e1c9ff293e301964b20e268258c40760aadcac0fb1a7376849e71883d4ba3821103a208d65200017e4c6c3ddb0b8b3c48b7a8b8ecf072404b2c2196bb49c96b88ae9a4fdfc48661b7ccbd850574b965f40549fcba20e5da1044dbaedc15a714cdfc7003e404f98b49b68b3ce05af82912a8897e5b1d3ab77e63db61fc7341020a20211bc1d178fcb6ac8a3c261c9a0fd6068e5405f0e4311b1ee5e6b088e145f2589d9782675ad95d1f3a7dbc8e6a1812eff9663899dad172d5d678631cf460955738a26e81028ab7d002d462e9d00b2229f25dc0a4107d5263fcb9223918f85af9ebb6977d3023bf6b1cc5267ebabb90e92cc0e55341035ec41a0da88a935d691172a65676ce6a11ec56e11f0de9609701e11c23134d0f6d2d73d978ad5acc678ecfb3ce79863b47c928049a5ad7ec19b5f773da732738179e83aec7151c8da4c0b61eb3cb1edda0342bb8cad128c0313b6462911a48da2dc4af79ad290c38190a3a34f3449353942aef23b071896f6340acc93d6b281b8dfb1dee53f6ad743b91a9b7221b999ed0f21ed8cd2155038e540b5aaf0f9f380f739b0df5dd0e2c23a6dcb48b426e3fc575ff01aa07519708b4c879be3233545d3a92a392637cbd902f9f947428ab2f30c846848af7834d03397dcce2bef3e74ad279f0bde3d6a70bb8f92c7c22057db4337f83ff6ac37721065c5046c01d83d47936c87394acd0086a4b73a5d18ab193c28e905dce03aaadea9786675ef662c8cb6ce1eb110e290b93f3aaa590a401944ebaf106b3fc71499bb4fad8413d7df31cc0fdf927aab0e41248061370329ecb8cea8223aa00091db60d94b6f7831b26618b495c4b6f66ecc12df845a2a0840b003cc4f5fd9f06d5e3cb355f66bb27e205b31c7f5403aa731559731b4d6c9667ea38f8f9df32f63be44a96b7946bd4caf298da22868cddb228a3eb1f25615704bd089072af430", "386d5712c7e84a114db27511c1f9378b8bc7ea7cd7d0ae86782fe9a9c9f66299dfaa1bee029931c2a42f7dbf98d6d24454fae6babba83d51ea00d57f3bcbd8a0cff2d6053209caa1a300cd0a0c5cfbeaddec7a1a96a930ee6f346edbccfc001c0740d80b2fd976a4ae1ad523e9901d68cf61779e9ae32cbafdfcbcb1c20430de1b44eb61df6659107ed3a2fbc577b35524c780874fce90fd1e76ca3e34b9a00d33d6964838162d58a830cb707791a805c640b8561a5077d52aa5745bc0678cded410b92a21da17ee9b57250b9f685959789bed5a202e11a0a4d6757401d607a8923f642757434fb98f01e065cd7c6f1f2fe61d6620c18e6ab63ab4b56ce09168b44f5680f8f1ba436a5b98ee75c0c7bb296db78c4b09963d4d55cb0c08f603031f61796c34b7828c6cb79ac1ec8210fe0c0064b5db11ba1e4f7744cef87e1787ee44f4da3bb3e2ed3147d0b7417538a4e98418ba028a68babb4375e77b97a98385c00faf6069525b28956c3ab4cef6f9644aca8afe3c5edeec5d9209f31d28fa37fa50b512480bcbc5db3927227e93c3a6de65433c239d524f7480d96dd5dd795991c858c49661fc8558c1983fba5e574891ee4262753e165d8511061a563b216c3c2f1e82a70745f4dbb656ec79a7c6892e1bf94465c6c7ff0696ed203824a906fdafc53951fb20803751208243fb870aca428d131012f7dccaa1e0f6a9dc486b9f5f4f1986da43007af1ab2439f371ec0e7a5fc0a9f58792c935885bd3fc7a101fd9690b6b65c804439505b3394b9b35d43843d2b35a121c09abca24aac7ba69854722018b3a47c078e012a91a095539e19b094a87836bf55c3c01db595071124097dfa24c9cb66c315537e0b223344a703de77f0ef0cb8a123e36301768d5a48038cd232fff030e6a1d2be0c5627cf51db50b5e4f99f5cc9a5a75f2fb1e63b57ce4984c06c440521d7f8c3669c0ba65d3ab5e01f485d031f4338d953fd66597209c1e1cd819ed3032a8fa9638be0a82e3dac902ae610442b18c795b1c58c30b7490fa5f9e75449aa1015b64d48d49708784fe93ca4e1a974b7685da22502e5da1137ba34168ba28a73a19729faea38823f57a9f905c04e975d6b113b118c782a5399c39d89890deb7d5d4f1b52c7515fe7af9981d0c0a9f7ab797dcbae2dedb99fb9086226ce913fc6f784693caf7a087ec67e390f6f081752e4cf23b82bda5906194fb05caeec78d4ab1c1a21479dfcacde2e93889ea0b383d5d2de4b64396c3dc719e029a5c8325d32bb9411574d6083514dede4e4f7a533815aaf74d51c1e9f8f0be403dca3d9d529cea2b9f08e8cd37e623b5c18084c804fa24dfec467b75820bc8544fad669e2ee85c8b383bb062ab9b5a7ab7064bc33c9b17be33f605d299ed120d7a27e07bd8aff7efdfffa271b7cc1efcf0c5b91a7b6f31414de7da"}, [0x20, 0x1ff, 0x3, 0x100000000, 0x1, 0x4, 0xaa, 0x7fff, 0x401, 0xfff, 0x7882, 0x0, 0x7, 0x0, 0x1, 0x0, 0x400, 0x100000000, 0x8, 0x10000, 0x0, 0x7fffffff, 0x0, 0x81, 0x0, 0x0, 0x1, 0x0, 0x3, 0x800, 0x1f, 0x7ff, 0x8001, 0x8, 0x6f4, 0x9, 0x3b990000000000, 0x4dc, 0x1000, 0x3f, 0x80, 0x0, 0xfffffffffffffffc, 0x7, 0x0, 0x7, 0xffff, 0x5, 0x0, 0x2, 0x1000000000000084, 0x100, 0xaf8, 0x62a, 0x81, 0x1, 0x927, 0x1, 0xb386, 0x5, 0x8, 0x8001, 0x9, 0x1]}) setsockopt$inet_tcp_int(r0, 0x6, 0x6, &(0x7f0000000080)=0x7, 0x4) r1 = openat$zero(0xffffffffffffff9c, &(0x7f0000000200)='/dev/zero\x00', 0x0, 0x0) preadv(r1, &(0x7f0000000280), 0x0, 0x0, 0x0) setsockopt$inet_tcp_TCP_CONGESTION(r0, 0x6, 0xd, &(0x7f0000000000)='cdg\x00', 0x4) sendto$inet(r0, &(0x7f00000012c0)="0c268a927f1f6588b967481241ba7860f46ef65ac618ded8974895abeaf4b4834ff922b3f1e0b02bd67aa03059bcecc7a95c25a3a07e758044ab4ea6f7ae55d88fecf90b1a7511bf746bec66ba", 0xfe6a, 0x11, 0x0, 0x27) 05:19:08 executing program 0: r0 = perf_event_open(&(0x7f0000000100)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c4b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3b21, 0x0, @perf_config_ext={0x401, 0x1}, 0x0, 0x476}, 0x0, 0x0, 0xffffffffffffffff, 0x0) mmap(&(0x7f0000000000/0xff5000)=nil, 0xff5000, 0x0, 0x200000005c831, 0xffffffffffffffff, 0x0) mprotect(&(0x7f0000000000/0x800000)=nil, 0x800000, 0xa) timer_create(0x0, &(0x7f00000000c0)={0x0, 0x12, 0x0, @thr={0x0, 0x0}}, &(0x7f0000000080)) r1 = openat$bsg(0xffffffffffffff9c, &(0x7f0000000280)='/dev/bsg\x00', 0x8040, 0x0) getsockopt$inet6_int(r1, 0x29, 0x1, &(0x7f00000001c0), &(0x7f00000002c0)=0x4) timer_create(0x0, &(0x7f0000000000)={0x0, 0x14, 0x0, @thr={0x0, 0x0}}, &(0x7f0000000200)=0x0) timer_settime(0x0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) timer_settime(r2, 0x0, &(0x7f0000000140)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) futex(&(0x7f0000000240)=0x1, 0x6, 0x0, 0x0, 0x0, 0x0) pipe(0x0) readahead(r0, 0x96b0, 0x8) 05:19:08 executing program 2: r0 = perf_event_open(&(0x7f0000000140)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r1 = socket$inet6(0xa, 0x40000080806, 0x0) bind$inet6(r1, &(0x7f000047b000)={0xa, 0x404e20, 0x0, @empty}, 0x1c) r2 = openat(0xffffffffffffff9c, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r2, 0x0) preadv(r2, &(0x7f0000000280), 0x18, 0xd9f, 0x0) r3 = socket$inet6(0xa, 0x2, 0x0) sendmsg$inet6(r3, &(0x7f0000000100)={&(0x7f0000000040)={0xa, 0x4e25, 0x0, @remote}, 0x1c, 0x0, 0x0, &(0x7f0000000200)=[@hoplimit={{0x14, 0x29, 0x3e}}], 0x18}, 0x0) r4 = socket$netlink(0x10, 0x3, 0x0) r5 = socket(0x10, 0x803, 0x0) sendmsg$NBD_CMD_DISCONNECT(r5, &(0x7f00000001c0)={0x0, 0x0, &(0x7f0000000340)={0x0}, 0x1, 0x0, 0x0, 0x100}, 0x0) getsockopt$inet_mreq(r5, 0x0, 0x20, &(0x7f00000000c0)={@broadcast, @broadcast}, &(0x7f0000000180)=0x8) sendmsg$nl_route(r4, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000580)={&(0x7f0000000500)=@newlink={0x5c, 0x10, 0xffffff1f, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x800, 0x20}, [@IFLA_LINKINFO={0x34, 0x12, 0x0, 0x1, @ip6gre={{0xb, 0x1, 'ip6gre\x00'}, {0x24, 0x2, 0x0, 0x1, [@IFLA_GRE_REMOTE={0x14, 0x7, @private2}, @IFLA_GRE_IFLAGS={0x6, 0x2, 0x3}, @IFLA_GRE_COLLECT_METADATA={0x4}]}}}, @IFLA_MASTER={0x8}]}, 0x5c}}, 0x0) ioctl$SECCOMP_IOCTL_NOTIF_RECV(0xffffffffffffffff, 0xc0502100, &(0x7f00000001c0)={0x0, 0x0}) ioctl$PERF_EVENT_IOC_SET_FILTER(r0, 0x40082406, &(0x7f0000000100)='/') bind$inet6(r1, &(0x7f0000000000)={0xa, 0x4e22, 0xce, @loopback, 0x10000}, 0x1c) r7 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r7, 0x0) preadv(r7, &(0x7f0000000280), 0x18, 0x0, 0x0) perf_event_open(&(0x7f0000000080)={0x5, 0x70, 0x2, 0x40, 0x6, 0x7, 0x0, 0x81, 0x4040, 0xa, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1000, 0x1, @perf_config_ext={0x0, 0x7fff}, 0x5b218, 0x4, 0xffffff00, 0x0, 0x6, 0xd079, 0x8}, r6, 0x10, r7, 0xc) 05:19:08 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xe, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x70}, 0x1, 0x7}, 0x0) [ 318.428903] IPVS: ftp: loaded support on port[0] = 21 05:19:08 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xe, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x70}, 0x1, 0x7}, 0x0) 05:19:08 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) 05:19:08 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) 05:19:08 executing program 2: fcntl$setpipe(0xffffffffffffffff, 0x407, 0x0) mknod(0x0, 0x0, 0x0) lstat(&(0x7f0000000080)='./file0\x00', &(0x7f0000000200)={0x0, 0x0, 0x0, 0x0, 0x0}) r1 = add_key$keyring(&(0x7f00000000c0)='keyring\x00', &(0x7f0000000140)={'syz', 0x2}, 0x0, 0x0, 0xfffffffffffffffb) keyctl$chown(0x4, 0x0, 0x0, 0x0) keyctl$get_persistent(0x16, r0, r1) dup(0xffffffffffffffff) r2 = openat$null(0xffffffffffffff9c, 0x0, 0x380, 0x0) sendfile(r2, 0xffffffffffffffff, &(0x7f0000000180)=0xfffffffffffffffa, 0x0) ioctl$FS_IOC_FIEMAP(0xffffffffffffffff, 0xc020660b, &(0x7f0000000440)=ANY=[@ANYBLOB="050000000000020001000000000000000100000075000000060000000000000001000100000000000800000000000000060000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000010000000000000005000000000000000000000000000000000000000000000004000000000000000000000000000000ff7fffffffffffff8000000000000000180000000000000000100000000000000000000000000001080400000000000000000000000000000000010000000000d70900000000040006000000000000000000000000000000008f0400000000000000000000000000000000000000000000020000000000000000a00000000000000008000000000000000000000000000008040000d600000000000000000000000400000000000000059e7f0000000000018000000100000005000000000000000000000000000000e15b2ae500000000000000000000000044bc5380f5ffa304bdae9dc7814922bc285218f25e03578c31a14dc0718eae90b580a5f862fbe01b98cbce74308c1401000000000000007db8dcf195ad70cfcabeb4a4d6abf120f7ff2eafdb3523f1050af7d5694803563b2b815fd4632dbc8079af634e3fe8758179e01c66d9144bdc859141c5533c066c29136482bcd0070000004212b68860dfdf21348a087bfdb9efdbd408bdff9e04218ea05a1a1d30d8c6bb3b0000000043934074b80c197679a6d7856f836636485e917501b93f876dc416f8b44873ea24e78e496debcf663b12fd189fe29ae4fcbca875cfd9eb041a3c9b332946429426287632e0aaae000000000000000000"]) prctl$PR_SET_MM_MAP(0x23, 0xe, &(0x7f00000003c0)={&(0x7f0000ffc000/0x2000)=nil, &(0x7f0000ffe000/0x1000)=nil, &(0x7f0000ff8000/0x6000)=nil, &(0x7f0000ffc000/0x4000)=nil, &(0x7f0000005000/0x4000)=nil, &(0x7f0000006000/0x4000)=nil, &(0x7f0000ffd000/0x2000)=nil, &(0x7f0000ffd000/0x2000)=nil, &(0x7f0000ffc000/0x4000)=nil, &(0x7f0000005000/0x1000)=nil, &(0x7f0000007000/0x2000)=nil, 0x0}, 0x68) r3 = socket$inet_udp(0x2, 0x2, 0x0) perf_event_open(&(0x7f0000000000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x400, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, @perf_bp={&(0x7f0000000140), 0xb}, 0x3220c, 0x0, 0x0, 0x0, 0x0, 0xfff7ffff, 0x400}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) setsockopt$netlink_NETLINK_CAP_ACK(0xffffffffffffffff, 0x10e, 0xa, &(0x7f0000000280)=0x20, 0x4) bind$inet(0xffffffffffffffff, 0x0, 0xfffffffffffffff9) mprotect(&(0x7f0000005000/0x3000)=nil, 0x3000, 0x0) ioctl$sock_inet_SIOCADDRT(r3, 0x890b, &(0x7f0000000340)={0x750, {0x2, 0x2000, @remote={0xac, 0x14, 0x11}}, {0x2, 0x0, @dev}, {0x2, 0x4e20, @broadcast}, 0x0, 0x0, 0x2, 0x46a, 0x0, 0x0, 0x6, 0x3ffffffffffffffd, 0x382}) keyctl$assume_authority(0x10, 0x0) setsockopt$netlink_NETLINK_CAP_ACK(r2, 0x10e, 0xa, &(0x7f0000000100)=0x7f, 0x4) unshare(0x60000000) 05:19:08 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x9, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) [ 318.878314] IPVS: ftp: loaded support on port[0] = 21 05:19:09 executing program 3: r0 = getpid() sched_setscheduler(r0, 0x5, 0x0) syz_fuse_handle_req(0xffffffffffffffff, 0x0, 0x0, 0x0) perf_event_open(&(0x7f000001d000)={0x0, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, @perf_config_ext={0x800000}, 0x0, 0x0, 0x2}, 0x0, 0x0, 0xffffffffffffffff, 0x0) r1 = openat$null(0xffffffffffffff9c, &(0x7f0000000100)='/dev/null\x00', 0x200000, 0x0) perf_event_open(&(0x7f0000000180)={0x1, 0x70, 0x5, 0x7, 0x4, 0xf0, 0x0, 0x4, 0x10000, 0xa, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x2, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0xcc5c, 0x4, @perf_bp={&(0x7f0000000000), 0x2}, 0x10080, 0x1, 0x40, 0x1, 0x1, 0x7, 0x40}, r0, 0xffffffffffffffff, r1, 0xb) r2 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000080)='/dev/kvm\x00', 0x0, 0x0) ioctl$sock_SIOCGIFINDEX(0xffffffffffffffff, 0x8933, &(0x7f00000000c0)={'bond0\x00'}) r3 = ioctl$KVM_CREATE_VM(r2, 0xae01, 0x0) perf_event_open(&(0x7f00000003c0)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1ff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$KVM_CREATE_IRQCHIP(r3, 0xae60) r4 = ioctl$KVM_CREATE_VCPU(r3, 0xae41, 0x0) syz_kvm_setup_cpu$x86(0xffffffffffffffff, r4, &(0x7f0000fe8000/0x18000)=nil, &(0x7f0000000240)=[@text32={0x20, &(0x7f0000000040)="0f0836660f3a633ea4c4e1bc5649deec9a13000000fb00f00fb18500000000670f01cb660f388054fe04660f3a0aef07cf66ba410066ed", 0x37}], 0x1, 0x0, 0x0, 0x0) ioctl$KVM_SET_VAPIC_ADDR(r4, 0x4008ae93, &(0x7f0000000140)=0x5000) ioctl$KVM_RUN(r4, 0xae80, 0x0) 05:19:09 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xa, 0x0, 0x0, 0x0, [@sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x50}, 0x1, 0x7}, 0x0) 05:19:09 executing program 4: syz_genetlink_get_family_id$l2tp(0x0, 0xffffffffffffffff) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0x8}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) mprotect(&(0x7f0000006000/0x1000)=nil, 0x1000, 0x0) mprotect(&(0x7f0000ffc000/0x1000)=nil, 0x1000, 0x0) r0 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r0, 0x6, 0x80000000000002, &(0x7f00000000c0)=0x2000000000000074, 0x25d) ioctl$SNDRV_TIMER_IOCTL_INFO(0xffffffffffffffff, 0x80e85411, 0x0) bind$inet(r0, &(0x7f0000000280)={0x2, 0x4e23, @multicast1}, 0x10) openat$sndseq(0xffffffffffffff9c, &(0x7f0000003240)='/dev/snd/seq\x00', 0x0) ioctl$SNDRV_SEQ_IOCTL_SET_CLIENT_POOL(0xffffffffffffffff, 0x4058534c, 0x0) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000000040)={0x2, 0x4e23, @local}, 0x10) ioctl$BTRFS_IOC_DEV_REPLACE(0xffffffffffffffff, 0xca289435, &(0x7f00000002c0)={0x2, 0xfffffffffffffffc, @start={0x0, 0x1, "045eff8c3d48c208f69fdd6d242e70087ce7bf18411e8fd8e6bb7d1449993021d8c488794f3c1c19cd52806204742893a00f278880e65fade2e5b5ff8ff872415df06d5a2b5c8513a7453bc1ce2bc1813978ea30624faf69a726dba1a9a58119573c85e82a05939772321f2a167632716527c127f012db3c07c541973ab0d6b24d1b28c59eb29833dcdcf12bcee73c9b6f19223c0c636274c6d4b945ae02bc346c8b5c2c27fdc16bfdbf983dd837924a6fe43781caf9b1df011546f5560be1294764892a42694405062d4b02aa9fdd970fcc6f096df2a2e61516d36e11b8736389a6e28ab626480289043a0c9cbabbe7e2e254cc96246e4ec37608073ba765025891740718613c0f87fa45ea9809b09f2003f9afce1b9897d90b494d19d8d2d3b4f268d34363b2482b3f7c7c507c5e49d5fd8f7f8920eafa5bf6783755bfe84e2faec90013cdea843c7fc58b1572da3809e4e1c9ff293e301964b20e268258c40760aadcac0fb1a7376849e71883d4ba3821103a208d65200017e4c6c3ddb0b8b3c48b7a8b8ecf072404b2c2196bb49c96b88ae9a4fdfc48661b7ccbd850574b965f40549fcba20e5da1044dbaedc15a714cdfc7003e404f98b49b68b3ce05af82912a8897e5b1d3ab77e63db61fc7341020a20211bc1d178fcb6ac8a3c261c9a0fd6068e5405f0e4311b1ee5e6b088e145f2589d9782675ad95d1f3a7dbc8e6a1812eff9663899dad172d5d678631cf460955738a26e81028ab7d002d462e9d00b2229f25dc0a4107d5263fcb9223918f85af9ebb6977d3023bf6b1cc5267ebabb90e92cc0e55341035ec41a0da88a935d691172a65676ce6a11ec56e11f0de9609701e11c23134d0f6d2d73d978ad5acc678ecfb3ce79863b47c928049a5ad7ec19b5f773da732738179e83aec7151c8da4c0b61eb3cb1edda0342bb8cad128c0313b6462911a48da2dc4af79ad290c38190a3a34f3449353942aef23b071896f6340acc93d6b281b8dfb1dee53f6ad743b91a9b7221b999ed0f21ed8cd2155038e540b5aaf0f9f380f739b0df5dd0e2c23a6dcb48b426e3fc575ff01aa07519708b4c879be3233545d3a92a392637cbd902f9f947428ab2f30c846848af7834d03397dcce2bef3e74ad279f0bde3d6a70bb8f92c7c22057db4337f83ff6ac37721065c5046c01d83d47936c87394acd0086a4b73a5d18ab193c28e905dce03aaadea9786675ef662c8cb6ce1eb110e290b93f3aaa590a401944ebaf106b3fc71499bb4fad8413d7df31cc0fdf927aab0e41248061370329ecb8cea8223aa00091db60d94b6f7831b26618b495c4b6f66ecc12df845a2a0840b003cc4f5fd9f06d5e3cb355f66bb27e205b31c7f5403aa731559731b4d6c9667ea38f8f9df32f63be44a96b7946bd4caf298da22868cddb228a3eb1f25615704bd089072af430", "386d5712c7e84a114db27511c1f9378b8bc7ea7cd7d0ae86782fe9a9c9f66299dfaa1bee029931c2a42f7dbf98d6d24454fae6babba83d51ea00d57f3bcbd8a0cff2d6053209caa1a300cd0a0c5cfbeaddec7a1a96a930ee6f346edbccfc001c0740d80b2fd976a4ae1ad523e9901d68cf61779e9ae32cbafdfcbcb1c20430de1b44eb61df6659107ed3a2fbc577b35524c780874fce90fd1e76ca3e34b9a00d33d6964838162d58a830cb707791a805c640b8561a5077d52aa5745bc0678cded410b92a21da17ee9b57250b9f685959789bed5a202e11a0a4d6757401d607a8923f642757434fb98f01e065cd7c6f1f2fe61d6620c18e6ab63ab4b56ce09168b44f5680f8f1ba436a5b98ee75c0c7bb296db78c4b09963d4d55cb0c08f603031f61796c34b7828c6cb79ac1ec8210fe0c0064b5db11ba1e4f7744cef87e1787ee44f4da3bb3e2ed3147d0b7417538a4e98418ba028a68babb4375e77b97a98385c00faf6069525b28956c3ab4cef6f9644aca8afe3c5edeec5d9209f31d28fa37fa50b512480bcbc5db3927227e93c3a6de65433c239d524f7480d96dd5dd795991c858c49661fc8558c1983fba5e574891ee4262753e165d8511061a563b216c3c2f1e82a70745f4dbb656ec79a7c6892e1bf94465c6c7ff0696ed203824a906fdafc53951fb20803751208243fb870aca428d131012f7dccaa1e0f6a9dc486b9f5f4f1986da43007af1ab2439f371ec0e7a5fc0a9f58792c935885bd3fc7a101fd9690b6b65c804439505b3394b9b35d43843d2b35a121c09abca24aac7ba69854722018b3a47c078e012a91a095539e19b094a87836bf55c3c01db595071124097dfa24c9cb66c315537e0b223344a703de77f0ef0cb8a123e36301768d5a48038cd232fff030e6a1d2be0c5627cf51db50b5e4f99f5cc9a5a75f2fb1e63b57ce4984c06c440521d7f8c3669c0ba65d3ab5e01f485d031f4338d953fd66597209c1e1cd819ed3032a8fa9638be0a82e3dac902ae610442b18c795b1c58c30b7490fa5f9e75449aa1015b64d48d49708784fe93ca4e1a974b7685da22502e5da1137ba34168ba28a73a19729faea38823f57a9f905c04e975d6b113b118c782a5399c39d89890deb7d5d4f1b52c7515fe7af9981d0c0a9f7ab797dcbae2dedb99fb9086226ce913fc6f784693caf7a087ec67e390f6f081752e4cf23b82bda5906194fb05caeec78d4ab1c1a21479dfcacde2e93889ea0b383d5d2de4b64396c3dc719e029a5c8325d32bb9411574d6083514dede4e4f7a533815aaf74d51c1e9f8f0be403dca3d9d529cea2b9f08e8cd37e623b5c18084c804fa24dfec467b75820bc8544fad669e2ee85c8b383bb062ab9b5a7ab7064bc33c9b17be33f605d299ed120d7a27e07bd8aff7efdfffa271b7cc1efcf0c5b91a7b6f31414de7da"}, [0x20, 0x1ff, 0x3, 0x100000000, 0x1, 0x4, 0xaa, 0x7fff, 0x401, 0xfff, 0x7882, 0x0, 0x7, 0x0, 0x1, 0x0, 0x400, 0x100000000, 0x8, 0x10000, 0x0, 0x7fffffff, 0x0, 0x81, 0x0, 0x0, 0x1, 0x0, 0x3, 0x800, 0x1f, 0x7ff, 0x8001, 0x8, 0x6f4, 0x9, 0x3b990000000000, 0x4dc, 0x1000, 0x3f, 0x80, 0x0, 0xfffffffffffffffc, 0x7, 0x0, 0x7, 0xffff, 0x5, 0x0, 0x2, 0x1000000000000084, 0x100, 0xaf8, 0x62a, 0x81, 0x1, 0x927, 0x1, 0xb386, 0x5, 0x8, 0x8001, 0x9, 0x1]}) setsockopt$inet_tcp_int(r0, 0x6, 0x6, &(0x7f0000000080)=0x7, 0x4) r1 = openat$zero(0xffffffffffffff9c, &(0x7f0000000200)='/dev/zero\x00', 0x0, 0x0) preadv(r1, &(0x7f0000000280), 0x0, 0x0, 0x0) setsockopt$inet_tcp_TCP_CONGESTION(r0, 0x6, 0xd, &(0x7f0000000000)='cdg\x00', 0x4) sendto$inet(r0, &(0x7f00000012c0)="0c268a927f1f6588b967481241ba7860f46ef65ac618ded8974895abeaf4b4834ff922b3f1e0b02bd67aa03059bcecc7a95c25a3a07e758044ab4ea6f7ae55d88fecf90b1a7511bf746bec66ba", 0xfe6a, 0x11, 0x0, 0x27) 05:19:09 executing program 0: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000200)='/dev/kvm\x00', 0x0, 0x0) r1 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000)='/dev/kvm\x00', 0x0, 0x0) ioctl$KVM_CREATE_VM(r1, 0xae01, 0x0) ioctl$KVM_CREATE_VM(r1, 0xae01, 0x0) ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000140)='cgroup.controllers\x00', 0x275a, 0x0) write$binfmt_script(r2, &(0x7f00000001c0)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r2, 0x0) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$KVM_NMI(r2, 0xae9a) madvise(&(0x7f0000000000/0x600000)=nil, 0x600003, 0x9) 05:19:09 executing program 2: fcntl$setpipe(0xffffffffffffffff, 0x407, 0x0) mknod(0x0, 0x0, 0x0) lstat(&(0x7f0000000080)='./file0\x00', &(0x7f0000000200)={0x0, 0x0, 0x0, 0x0, 0x0}) r1 = add_key$keyring(&(0x7f00000000c0)='keyring\x00', &(0x7f0000000140)={'syz', 0x2}, 0x0, 0x0, 0xfffffffffffffffb) keyctl$chown(0x4, 0x0, 0x0, 0x0) keyctl$get_persistent(0x16, r0, r1) dup(0xffffffffffffffff) r2 = openat$null(0xffffffffffffff9c, 0x0, 0x380, 0x0) sendfile(r2, 0xffffffffffffffff, &(0x7f0000000180)=0xfffffffffffffffa, 0x0) ioctl$FS_IOC_FIEMAP(0xffffffffffffffff, 0xc020660b, &(0x7f0000000440)=ANY=[@ANYBLOB="050000000000020001000000000000000100000075000000060000000000000001000100000000000800000000000000060000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000010000000000000005000000000000000000000000000000000000000000000004000000000000000000000000000000ff7fffffffffffff8000000000000000180000000000000000100000000000000000000000000001080400000000000000000000000000000000010000000000d70900000000040006000000000000000000000000000000008f0400000000000000000000000000000000000000000000020000000000000000a00000000000000008000000000000000000000000000008040000d600000000000000000000000400000000000000059e7f0000000000018000000100000005000000000000000000000000000000e15b2ae500000000000000000000000044bc5380f5ffa304bdae9dc7814922bc285218f25e03578c31a14dc0718eae90b580a5f862fbe01b98cbce74308c1401000000000000007db8dcf195ad70cfcabeb4a4d6abf120f7ff2eafdb3523f1050af7d5694803563b2b815fd4632dbc8079af634e3fe8758179e01c66d9144bdc859141c5533c066c29136482bcd0070000004212b68860dfdf21348a087bfdb9efdbd408bdff9e04218ea05a1a1d30d8c6bb3b0000000043934074b80c197679a6d7856f836636485e917501b93f876dc416f8b44873ea24e78e496debcf663b12fd189fe29ae4fcbca875cfd9eb041a3c9b332946429426287632e0aaae000000000000000000"]) prctl$PR_SET_MM_MAP(0x23, 0xe, &(0x7f00000003c0)={&(0x7f0000ffc000/0x2000)=nil, &(0x7f0000ffe000/0x1000)=nil, &(0x7f0000ff8000/0x6000)=nil, &(0x7f0000ffc000/0x4000)=nil, &(0x7f0000005000/0x4000)=nil, &(0x7f0000006000/0x4000)=nil, &(0x7f0000ffd000/0x2000)=nil, &(0x7f0000ffd000/0x2000)=nil, &(0x7f0000ffc000/0x4000)=nil, &(0x7f0000005000/0x1000)=nil, &(0x7f0000007000/0x2000)=nil, 0x0}, 0x68) r3 = socket$inet_udp(0x2, 0x2, 0x0) perf_event_open(&(0x7f0000000000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x400, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, @perf_bp={&(0x7f0000000140), 0xb}, 0x3220c, 0x0, 0x0, 0x0, 0x0, 0xfff7ffff, 0x400}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) setsockopt$netlink_NETLINK_CAP_ACK(0xffffffffffffffff, 0x10e, 0xa, &(0x7f0000000280)=0x20, 0x4) bind$inet(0xffffffffffffffff, 0x0, 0xfffffffffffffff9) mprotect(&(0x7f0000005000/0x3000)=nil, 0x3000, 0x0) ioctl$sock_inet_SIOCADDRT(r3, 0x890b, &(0x7f0000000340)={0x750, {0x2, 0x2000, @remote={0xac, 0x14, 0x11}}, {0x2, 0x0, @dev}, {0x2, 0x4e20, @broadcast}, 0x0, 0x0, 0x2, 0x46a, 0x0, 0x0, 0x6, 0x3ffffffffffffffd, 0x382}) keyctl$assume_authority(0x10, 0x0) setsockopt$netlink_NETLINK_CAP_ACK(r2, 0x10e, 0xa, &(0x7f0000000100)=0x7f, 0x4) unshare(0x60000000) 05:19:09 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xa, 0x0, 0x0, 0x0, [@sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x50}, 0x1, 0x7}, 0x0) 05:19:09 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xa, 0x0, 0x0, 0x0, [@sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x50}, 0x1, 0x7}, 0x0) 05:19:09 executing program 3: r0 = getpgid(0x0) perf_event_open(&(0x7f0000000300)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50d, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, r0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r1 = socket$alg(0x26, 0x5, 0x0) bind$alg(r1, &(0x7f0000000000)={0x26, 'skcipher\x00', 0x0, 0x0, 'cbc-camellia-asm\x00'}, 0x58) r2 = accept4(r1, 0x0, 0x0, 0x0) setsockopt$ALG_SET_KEY(r1, 0x117, 0x1, &(0x7f0000c18000)="ad56b6c5820fae9d6dcd3292ea54c7beef915d564c90c200", 0x18) sendto$unix(r2, &(0x7f0000000140), 0x14ded905162a6a4b, 0x0, 0x0, 0x429) bind$unix(r2, &(0x7f00000000c0)=@file={0x1, './file0\x00'}, 0x6e) pipe(&(0x7f0000000080)={0xffffffffffffffff, 0xffffffffffffffff}) accept$alg(r3, 0x0, 0x0) recvfrom(r2, &(0x7f0000003240)=""/4096, 0x100000205, 0x0, 0x0, 0x415) sendmsg$kcm(r2, &(0x7f0000001a80)={0x0, 0x0, 0x0}, 0x0) syz_genetlink_get_family_id$nl80211(&(0x7f0000001140)='nl80211\x00', 0xffffffffffffffff) 05:19:09 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x0, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) 05:19:09 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x0, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) 05:19:10 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0x11, 0x0, 0x0, 0x0, [@sadb_key={0x7, 0x0, 0x170, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549fd61a6557f82c2f96660000"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x88}, 0x1, 0x7}, 0x0) 05:19:10 executing program 5: r0 = fcntl$dupfd(0xffffffffffffffff, 0x406, 0xffffffffffffffff) r1 = perf_event_open(&(0x7f0000000240)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c42, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext, 0x0, 0x0, 0x10000000}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r2 = dup(r1) openat(r2, 0x0, 0x5e9000, 0xcf) r3 = openat$ttyS3(0xffffffffffffff9c, &(0x7f0000000840)='/dev/ttyS3\x00', 0x802, 0x0) sendfile(r3, 0xffffffffffffffff, 0x0, 0x20000000000000d8) r4 = syz_genetlink_get_family_id$batadv(0x0, 0xffffffffffffffff) sendmsg$BATADV_CMD_GET_ORIGINATORS(0xffffffffffffffff, &(0x7f0000000100)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x400}, 0xc, &(0x7f00000000c0)={&(0x7f0000000480)=ANY=[@ANYBLOB="89230bd8f892ddc965c3049ed2f5d65640717b53b70e56e834d99c36ff3f8fec5220b9b3c339e99ed52b31725d16a7d20ceacc4a53d108166ea39bbbe2b33a60f6c21143f2b9a127cb0593b09fd1de9c6214bd7c8b804814748ac4b5786fa9d1f4820c498ce577", @ANYRES16=r4, @ANYBLOB], 0x34}, 0x1, 0x0, 0x0, 0x20008001}, 0x40804) sendmsg$BATADV_CMD_GET_DAT_CACHE(r2, &(0x7f00000001c0)={&(0x7f0000000040)={0x10, 0x0, 0x0, 0x8000000}, 0xc, &(0x7f0000000180)={&(0x7f00000002c0)=ANY=[@ANYBLOB='4\x00\x00\x00', @ANYRES16=r4, @ANYBLOB="200024bd7000fddbdf250d00000005002f000100000005002f0001000000000500330002000000000000000000008ef2163c8335b2c3f4cff74ae398e642863f28363d8fcd060b640200064e7f6998042fb7eadc245066f3"], 0x34}, 0x1, 0x0, 0x0, 0x400c084}, 0x800) r5 = open(&(0x7f0000000700)='./bus\x00', 0x151042, 0x0) r6 = openat$procfs(0xffffffffffffff9c, &(0x7f0000000040)='/proc/asound/seq/clients\x00', 0x0, 0x0) sendfile(r5, r6, 0x0, 0x4000000000010046) r7 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000)='/dev/kvm\x00', 0x210a00, 0x0) ioctl$KVM_CREATE_VM(r7, 0xae01, 0x0) ioctl$BTRFS_IOC_START_SYNC(0xffffffffffffffff, 0x80089418, &(0x7f0000000080)=0x0) ioctl$BTRFS_IOC_SNAP_DESTROY_V2(r7, 0x5000943f, &(0x7f0000000880)={{r3}, r8, 0x14, @inherit={0x50, &(0x7f0000000340)=ANY=[@ANYBLOB="010000000000000001000000000000000000000000000000010000000000000020000000000000000100000000000000ffffffff80000000010000000000000003000000000000000500000000000000"]}, @name="0b882100cd1b26df5a72723b2828bb7815c53f7a92d564a4b3cf5ca8fd6c72a098702a01974682684e4a6d5ce80e826b6dae0735d9764480d0e56c7b5ed861dce916a41de9a0b42f5fb2b625388caa096dfd0c2e7b8a878b4f4a881dafa7e73dd4c4d698cab10bfef7225300d48bad476408757e620fb732788378bb2e48edcde1fc347d8e43d09a294f9770022bceeeea532abe21448dc61c3c79d5854dae01ded9904bd90854bcf180f189a752f168d8d50ca438633b47fe8365943d67f113584b8230e710af990ba1de9668b9c18819e5d0c0f3e689c33d20c3d051a3185e1eca5b25bba851a45d0bd037f72cffdd2b24906c2c7183163d18b74369862dbc0d0ecdf4ac90e4fae3fa761578927e0d0c3f274b4ddada01514ab7eaedf2ea665522e1d5e9a8b35f3fc4d96162da4d0996cc2e9bd5b1a85877eb324271cd620ac33d7af84f87d87b49c0a36c21e8e396f1321a5615e56b050b07266effc0bec17d363c93d8426fb6439e9e08625b31efe80b21d955708578c7159381d242fc68c2c9f8fc9ab7c5b28095c721f12fcbc00b424f0060b73d981a5bad29cdb97783a642276e16672255ebbe83c835512ec349045b21ac0299727b63f6e3091d14ed9400a39d9b027ba973c7a0d5bc95c1adb154e616314e91d215dd5e79fbc2aaf44c2e8fb1cab48ede35411c23a5bf1917b55625ca0451e8d207fe059cb8332af5d87bfc80d04c3845a3957ac51059a4f5b523268cd70e3229d0108924dded0c2291f9ba0d5340a30796a4768f11c9ea016deff4935aec83840accd6ad8df7d35647b7c8f1862f06c6c9fa04f51a00f4b6f9519fc717bbe17a8dbb3225c3b7e7ef1e1332e7723bc4c6787e424e97bb39d386bdb1ce693de623869f479b75d5fbca60120cb920d8d9d3c234727b9055ad6a16cafed273df389598ec1126fa520bb5d6b06038a114e79c4bd080e6b678c2e480b271a2f99df271a073dc326f1d8f03881f9c26d3b7009094cf64cb6eb66478f6097f06ac5235f42dec82ce1daa62a2aae6d1745902e9ba22ac4e61a5cab0944777ecb1f6577baa1aae17a17053c1f7f145a2fed3580dd952f987aceeaa9c03cbe41f34e40c9337c9082ab82d026cfd4138530d9c87a83ecaaea6f1dd9e75260861b9adf4dd03e0275a75c8322a2809ccc914af3bac90e18fdb04ceda8dd4ff7bd823f463094644de813d6d7c47bd01c5c6454c57fbb6c47404d0abb841c5f32f455f80c24c3d16103068304081228ef567939b771c9c26e85f00a975c2de92968faee16ac93051bff577e348f35f71a791c24d5a4b5a81553c59320edee9fde7f106751e0d1af2a4713e80a67439401bbc4649e4685436103e7c3f8da00c770eaaf9f2975830c8a62750370d6b1e2741ee051abe7205b589f40e74fee96a6ee5f9e6322c969b0315d0d61b1a1c4d57d76ee5031819ad66699d774cf39f170afb4d674e006cca893d49dd91c9029730036f81bb375fb607fe69dee64eeeb01d51274e855b2d5abd1b2928a2b48892c2549713846283bb3822447d1a884b41de60f1941801247e98df9477bc020583ac7a7758f4419c4fe9da59464dc6203c7224eb521d5a8a2486d4fe29ae98c56456ece953b2c06553d3bb87bf79fa2b828f7de9faed87fba0a6f3be0d8ea0491926495e813411718ff94bc3eb91e43da958c24759da093bc5e83d88611ceaf5ce08101ad879b1e3d39371e6c0d53bdf48c0fdcd8baf86cb8cdad557daf114896b6d8a1b631aca702cf3fd18a2e18cbad535f240c178f9f6079ea29a1a09c60a9f401e453288471333e6d496b68d94dd01cd0a4810dea00a8a4dd946d0e66a83a3a02998733b0601fd5e58a2144b482e7a8e3a82752e0e6c53e3f48138fb90b0905a03239ca88745e87c6a698acd6c651dda39404809dcdd2ed6e739e6ee6e4943332303f067700ffdd192674166669f084f909aab3c00d5d318f204127350321e7eaa78f9eea402c8ef357bef064d0eeb6cb8a6974890c3467b2e304ff2a322354e589199369a18dc3081f78de71c744894fe6d52e43e57b56e7a883067d8a13e6e1e0893b1d5c0ff39ec0e331a5eafe9fd4d6f9a9bc5eefae3c3d91701575d6e3d28906802cc23f2743ad6014fb4f31b01fc39fccee3fac1ebe874fcebd4ec2c7dc7b58e1bc453785ddafbcd29e7af07873125bb50956206d75813165c01ce1d1d895092f547f5419b8c55855d8776fbb14b238a0b9337caa485a9d922b76655bc7d409d34a01322dcd703f536e5fa1e7653ea56c83f2248fe4c4185a4eab9bcf4481f446123894497735e86da8d86543f808b51f1d43a993b1b6ff80a68fecf0bbe1255e39bb6dcd181d0ea6062005070a5f9fe551cffc0e3185d1da48fe0d13f03cb2afacb4bfc68c0ac4ad73de5009540edaa9b5a19b1bcc5f9b48fec9f21c20c576193808d418fc8c1d6f7881514635a7126ed3bfa47d43715bccbdfc206d5e6a1225a0119c2b56b8353122cdaeceb27237ef0fd6dcae5334765a298cd1a64607d6e0e3f72f40dafd405e0287e44efc4208f9756893cb5e53c17b71fb5b818a10a9e6c3468f677be18e9513c498e1bea150019c1d4cf17f266479ae7f3e485ccaf3d557bbf2ac7bc288b65dd8d9c47fc3eb9962aa7b1c477f20cbc40843b3cbc85729edc73091c9503ce1981eb86c73d59fee56cadd71dde4345f05d30267ed7f4c658f2d299f2dd30bb4038e38c0a8e34406350ee99d153bacc7b11f25a549442a2869a057b2a4da22a8a09adba0a804cd506d7f921e3a2a69ab8218018249830551aaa58eb4324075f1b2ef4eeb25db893616854a53394db35262aa794bfdc535fcbf003e97c4f271c09dacb2ebe7c7eeab21e4795f0e5bb75f7346229457dc1591808da9e4bddc02e8217e16218d2b362ac65f5e16f95df3bde8167ec63f758d2645756c329c31856756608b206883ca6645a2e4cba51d61940afaa87b6ab5317cc3cb34809edf4b6fb8d02f5e0bfc97d204f3dab133bb8135f52090b64fc8a5a7deaa2058cc0441cf46c480c6d6177d60700e34a612fab60cfe79f091017d04f46daad48647363a1cd6758e271a161ff5a90bd761e9bb75272a78e9f094a2b68e17772cb71d548f0b2752f69ae3eeb0be1a9e203c86bd2471443c6a10229c5aef8901b9195422880283f76c099b0ea212955439406b21d11c71afe00adc4b29b2f17452627047e3c97267a173ab8daa87ccab0e702da6dccace9ab0b3289a678b5fe1ab0559c2f93b3dd35f86933275cb432b997634591501b2138a46e6f3347e339a685aa316cd7c4f495ca47d41d460d5e9e2afb3f7fe436376cde99a7ab97a77d1de3b83da5e8461a9c96afd92a43153906987b5153974fc8a867555e2dd7bd93444b5ae841983cdd96f8d0858b21b1062657eac8d8fb3ba92460ae7800e40a70f75a097a18fd9c1976baf42518e9101aa9c43bcbbafe88c04bddaf20deb67b1abb853347271d300044d69b4804c2938929374364e2053137b16c2533b189e854b2ff98cb39ecc800ca8edf5c28aa1aa6683970d98818dd5865f4978d764314fcee3572376e5e4aaba7098fe20516eb1eb11779e1d0fa4d8a81cfac7c5a60428146db34a504f8d659a4b68c7e5fad50af20fe52fc36e8b434f65a909a8842060d1dfdbc6aa4ad7e1010eb01270394b037dfda19856792016b8854a79a34e83610481b7a225c89be01662b5a17915db6ee130dc873b39d1da944e2147033434cf0d752763c80d5ae312bc03909c0da3db274b4e03a231f1aa3cafaf02857f07907c9501b021e4d62435c2ae9ea1e643f38bcb1acdf9459ac47a12c66473de426c462b3b23081b58c8bb52c9d799eff06b9c5cfc0ec5a876f390ba9d325a381ac358eb5f78780d67179431ece9d09b98acb9f132e442b09d46709daa5afab6e84c8efccacd37a5680363bd796f98cd1d3d1730dd1298ae105d94ab154bb4ae78e5eea23edc1d282707df42f0e97873c0925850e4607ed193b9cfba7e0512d573e6b41b6417b7c5e272bf48f0b7bbbb2974aa224b0d97c6cc77d10beafb4c232acf65d07de98c1ffb97c83c20c8143b0b3e6f74bf5e7ef08736a0c98b40190475cd19f68a9f806667a53a1ae153bcce87506883b97078c9bf7e7d59a306c50a313e4371fe54d11e714af6e11ce0e6e644f1831c58f9be65485cf22f5d29482c5e25c1b74ee52c8da7449de5005908a531e2d5dde0506c7d17e34f20b8aca505b924b0420b7028596640532db2e5f475487d38d787dcf83bc7f96daf196ce81142a8125a88e4742c8234a22fe00be99bc892e8d2a9767d10316cb14ebf875b007eb8e56a654f846bae14aafe6f9587ddd70b8952d88cfc704b921ea1a63c0216f91bb241eda80f4b61a062adb0308fb48fda6a5b18fca945ab78d1f8b1c82bed0ae8680145b1e37c7176e86a0a0b5caae505e0dd6e8af920f8a3b4c2f3f67e18632f9c12cf1fae0c5621720981713afe0f77ccff164e0e1bb9a71ad31489d7ed3f6920344a63bb40bac08d2d6c1330100dbf3bf51a44ce013539c0315ac03f6a4759834abe7eb24a555ebfb7c0d64f238b4f569e4e8a1efe583b82bf2c039d3d743f67fd31a85db7502aaf42c144ba48e0d07ffe45ada229f3a2f002204854fc15b5123a87b9c1de600dbc0c4dcb433c14ce733d28822a0ee10c47688453da3bf80ece23f5b191d5d8eccf7b1649674b7c0b05d1793af7fb5f4edf3820c9cd92a13ff6e8cb409a5387dfd40b8b76d79ab3a30cf5362068ac81e24e0d08aae777f10ec7352850a201490f364b585a95392a22293513de6ff3da06220da5beb9d590c3a82fa98bb32028c7e6b5ac7c7a4eaabb8080833de141b625dbf00e9446bed4b3832116de13f08e68e00b8ad044f151e98b7b31d23a77c88bcc6828a8466adf738fa9ee9664c9990d65f1096f0b4aa8b6de42993d7f4980f6283af7d9dab4e09535e13dcef086a382466402e8d2149ddcc3117dba721d35dd744259965efb8724526e5316cc2364ea841ce3072ea9fd98c16b24362f0a3b622d192585e7a151d685c212450fd1537ee157c18d090c1ecdecae74522eb9b9181d7827cb5f10602c4d0141a1846e4bb26c921e153f161fda077eb5c38c525ce58eed6873981a42d60d95d9aa4cead134022e08f246b00ae9d170ab9570d37dfa5df5c2b35b03e20f9c9e84a84a0e18750481a33d9c80d12a1680aca5fbfec247698ce1ae83635a6d0d6e28927942e228d38c209e58c6994f0eac2db013cf796061a1c3a6cd5fe9b9eac12d154eabfeb0f5d66375532b70c040fe34d7b75d6d5dc059e787876e6a34d99d524739c56b030fa9bc32d7da2cbd945c3f4bdaba2dbe656afddac6117dce010d85390b2cddb2fae06599a66caac3196cb32127f16d352bdedd227175f370e37fe9e6807468eb19edff64a972f0a874d44c3133681cd63e1d6b5eca7d4b76cb1e56c2198ee4586aeecce2144ff0d02a92bef3cb78014bb49cda731144cb32049f287791fc5018f1cca8bbaface8b603362803b93de728ac8671e32e3ebec90dd7224d6b59c03d75643f39fec71ef7e115c97ca3994ce7bd254b70d04dc0c802e1d136f983de9642f503c94947166762339e813f0b253025ec37180659d55074370ccfc15cdebfabc9fc58efe77202ff0eaf8d1928b210beab951d4ae3ef28effa79e"}) sendfile(r0, r5, &(0x7f0000000200)=0x9, 0x4) r9 = syz_open_dev$mouse(&(0x7f00000003c0)='/dev/input/mouse#\x00', 0xfffffffffffffffc, 0xc0400) ioctl$TIOCMIWAIT(r9, 0x545c, 0x0) ioctl$BTRFS_IOC_SUBVOL_CREATE_V2(0xffffffffffffffff, 0x50009418, &(0x7f0000001880)={{}, 0x0, 0x10, @inherit={0x70, &(0x7f0000000500)=ANY=[@ANYBLOB="0000000000000000050000000000000002000000000000000180000000000000200800000000000000000000000000000800000000000000000100000000a14153f65f0b00006b37000000000000000100000000000020000000000000006b6f00000000000006000000000000001f00f34119a4ac41ba33a695bc8b95577e89d78314054e8d853446950e556c1a05f66bf8b8b2e327ae85e5af233da8229463606c3b871932d8fcfe3cee72b3076c701c49d5d73cd20dce29deca31a3c2acb037ee50008ef3f9dd93d8aec3a339584dc5baab8721e71dfe9e8e9a2c08a6f02fb0fd59f4cb583b8d8571a6617b70d113d86798f5dcbe837e993f2232ad2b7cf6fac020acf87067ae48d1ca431456614cd68d637ef535288644f8093a51718c5fea10996cdfcb112064e36e4a8796bb8698258fc87eae00"/321]}, @devid}) 05:19:10 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xb, 0x0, 0x0, 0x0, [@sadb_key={0x1, 0x9}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x58}, 0x1, 0x7}, 0x0) 05:19:10 executing program 0: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000200)='/dev/kvm\x00', 0x0, 0x0) r1 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000)='/dev/kvm\x00', 0x0, 0x0) ioctl$KVM_CREATE_VM(r1, 0xae01, 0x0) ioctl$KVM_CREATE_VM(r1, 0xae01, 0x0) ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000140)='cgroup.controllers\x00', 0x275a, 0x0) write$binfmt_script(r2, &(0x7f00000001c0)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r2, 0x0) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$KVM_NMI(r2, 0xae9a) madvise(&(0x7f0000000000/0x600000)=nil, 0x600003, 0x9) [ 320.057599] syz-executor.5 (11642) used greatest stack depth: 24752 bytes left 05:19:10 executing program 4: syz_genetlink_get_family_id$l2tp(0x0, 0xffffffffffffffff) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0x8}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) mprotect(&(0x7f0000006000/0x1000)=nil, 0x1000, 0x0) mprotect(&(0x7f0000ffc000/0x1000)=nil, 0x1000, 0x0) r0 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r0, 0x6, 0x80000000000002, &(0x7f00000000c0)=0x2000000000000074, 0x25d) ioctl$SNDRV_TIMER_IOCTL_INFO(0xffffffffffffffff, 0x80e85411, 0x0) bind$inet(r0, &(0x7f0000000280)={0x2, 0x4e23, @multicast1}, 0x10) openat$sndseq(0xffffffffffffff9c, &(0x7f0000003240)='/dev/snd/seq\x00', 0x0) ioctl$SNDRV_SEQ_IOCTL_SET_CLIENT_POOL(0xffffffffffffffff, 0x4058534c, 0x0) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000000040)={0x2, 0x4e23, @local}, 0x10) ioctl$BTRFS_IOC_DEV_REPLACE(0xffffffffffffffff, 0xca289435, &(0x7f00000002c0)={0x2, 0xfffffffffffffffc, @start={0x0, 0x1, "045eff8c3d48c208f69fdd6d242e70087ce7bf18411e8fd8e6bb7d1449993021d8c488794f3c1c19cd52806204742893a00f278880e65fade2e5b5ff8ff872415df06d5a2b5c8513a7453bc1ce2bc1813978ea30624faf69a726dba1a9a58119573c85e82a05939772321f2a167632716527c127f012db3c07c541973ab0d6b24d1b28c59eb29833dcdcf12bcee73c9b6f19223c0c636274c6d4b945ae02bc346c8b5c2c27fdc16bfdbf983dd837924a6fe43781caf9b1df011546f5560be1294764892a42694405062d4b02aa9fdd970fcc6f096df2a2e61516d36e11b8736389a6e28ab626480289043a0c9cbabbe7e2e254cc96246e4ec37608073ba765025891740718613c0f87fa45ea9809b09f2003f9afce1b9897d90b494d19d8d2d3b4f268d34363b2482b3f7c7c507c5e49d5fd8f7f8920eafa5bf6783755bfe84e2faec90013cdea843c7fc58b1572da3809e4e1c9ff293e301964b20e268258c40760aadcac0fb1a7376849e71883d4ba3821103a208d65200017e4c6c3ddb0b8b3c48b7a8b8ecf072404b2c2196bb49c96b88ae9a4fdfc48661b7ccbd850574b965f40549fcba20e5da1044dbaedc15a714cdfc7003e404f98b49b68b3ce05af82912a8897e5b1d3ab77e63db61fc7341020a20211bc1d178fcb6ac8a3c261c9a0fd6068e5405f0e4311b1ee5e6b088e145f2589d9782675ad95d1f3a7dbc8e6a1812eff9663899dad172d5d678631cf460955738a26e81028ab7d002d462e9d00b2229f25dc0a4107d5263fcb9223918f85af9ebb6977d3023bf6b1cc5267ebabb90e92cc0e55341035ec41a0da88a935d691172a65676ce6a11ec56e11f0de9609701e11c23134d0f6d2d73d978ad5acc678ecfb3ce79863b47c928049a5ad7ec19b5f773da732738179e83aec7151c8da4c0b61eb3cb1edda0342bb8cad128c0313b6462911a48da2dc4af79ad290c38190a3a34f3449353942aef23b071896f6340acc93d6b281b8dfb1dee53f6ad743b91a9b7221b999ed0f21ed8cd2155038e540b5aaf0f9f380f739b0df5dd0e2c23a6dcb48b426e3fc575ff01aa07519708b4c879be3233545d3a92a392637cbd902f9f947428ab2f30c846848af7834d03397dcce2bef3e74ad279f0bde3d6a70bb8f92c7c22057db4337f83ff6ac37721065c5046c01d83d47936c87394acd0086a4b73a5d18ab193c28e905dce03aaadea9786675ef662c8cb6ce1eb110e290b93f3aaa590a401944ebaf106b3fc71499bb4fad8413d7df31cc0fdf927aab0e41248061370329ecb8cea8223aa00091db60d94b6f7831b26618b495c4b6f66ecc12df845a2a0840b003cc4f5fd9f06d5e3cb355f66bb27e205b31c7f5403aa731559731b4d6c9667ea38f8f9df32f63be44a96b7946bd4caf298da22868cddb228a3eb1f25615704bd089072af430", "386d5712c7e84a114db27511c1f9378b8bc7ea7cd7d0ae86782fe9a9c9f66299dfaa1bee029931c2a42f7dbf98d6d24454fae6babba83d51ea00d57f3bcbd8a0cff2d6053209caa1a300cd0a0c5cfbeaddec7a1a96a930ee6f346edbccfc001c0740d80b2fd976a4ae1ad523e9901d68cf61779e9ae32cbafdfcbcb1c20430de1b44eb61df6659107ed3a2fbc577b35524c780874fce90fd1e76ca3e34b9a00d33d6964838162d58a830cb707791a805c640b8561a5077d52aa5745bc0678cded410b92a21da17ee9b57250b9f685959789bed5a202e11a0a4d6757401d607a8923f642757434fb98f01e065cd7c6f1f2fe61d6620c18e6ab63ab4b56ce09168b44f5680f8f1ba436a5b98ee75c0c7bb296db78c4b09963d4d55cb0c08f603031f61796c34b7828c6cb79ac1ec8210fe0c0064b5db11ba1e4f7744cef87e1787ee44f4da3bb3e2ed3147d0b7417538a4e98418ba028a68babb4375e77b97a98385c00faf6069525b28956c3ab4cef6f9644aca8afe3c5edeec5d9209f31d28fa37fa50b512480bcbc5db3927227e93c3a6de65433c239d524f7480d96dd5dd795991c858c49661fc8558c1983fba5e574891ee4262753e165d8511061a563b216c3c2f1e82a70745f4dbb656ec79a7c6892e1bf94465c6c7ff0696ed203824a906fdafc53951fb20803751208243fb870aca428d131012f7dccaa1e0f6a9dc486b9f5f4f1986da43007af1ab2439f371ec0e7a5fc0a9f58792c935885bd3fc7a101fd9690b6b65c804439505b3394b9b35d43843d2b35a121c09abca24aac7ba69854722018b3a47c078e012a91a095539e19b094a87836bf55c3c01db595071124097dfa24c9cb66c315537e0b223344a703de77f0ef0cb8a123e36301768d5a48038cd232fff030e6a1d2be0c5627cf51db50b5e4f99f5cc9a5a75f2fb1e63b57ce4984c06c440521d7f8c3669c0ba65d3ab5e01f485d031f4338d953fd66597209c1e1cd819ed3032a8fa9638be0a82e3dac902ae610442b18c795b1c58c30b7490fa5f9e75449aa1015b64d48d49708784fe93ca4e1a974b7685da22502e5da1137ba34168ba28a73a19729faea38823f57a9f905c04e975d6b113b118c782a5399c39d89890deb7d5d4f1b52c7515fe7af9981d0c0a9f7ab797dcbae2dedb99fb9086226ce913fc6f784693caf7a087ec67e390f6f081752e4cf23b82bda5906194fb05caeec78d4ab1c1a21479dfcacde2e93889ea0b383d5d2de4b64396c3dc719e029a5c8325d32bb9411574d6083514dede4e4f7a533815aaf74d51c1e9f8f0be403dca3d9d529cea2b9f08e8cd37e623b5c18084c804fa24dfec467b75820bc8544fad669e2ee85c8b383bb062ab9b5a7ab7064bc33c9b17be33f605d299ed120d7a27e07bd8aff7efdfffa271b7cc1efcf0c5b91a7b6f31414de7da"}, [0x20, 0x1ff, 0x3, 0x100000000, 0x1, 0x4, 0xaa, 0x7fff, 0x401, 0xfff, 0x7882, 0x0, 0x7, 0x0, 0x1, 0x0, 0x400, 0x100000000, 0x8, 0x10000, 0x0, 0x7fffffff, 0x0, 0x81, 0x0, 0x0, 0x1, 0x0, 0x3, 0x800, 0x1f, 0x7ff, 0x8001, 0x8, 0x6f4, 0x9, 0x3b990000000000, 0x4dc, 0x1000, 0x3f, 0x80, 0x0, 0xfffffffffffffffc, 0x7, 0x0, 0x7, 0xffff, 0x5, 0x0, 0x2, 0x1000000000000084, 0x100, 0xaf8, 0x62a, 0x81, 0x1, 0x927, 0x1, 0xb386, 0x5, 0x8, 0x8001, 0x9, 0x1]}) setsockopt$inet_tcp_int(r0, 0x6, 0x6, &(0x7f0000000080)=0x7, 0x4) r1 = openat$zero(0xffffffffffffff9c, &(0x7f0000000200)='/dev/zero\x00', 0x0, 0x0) preadv(r1, &(0x7f0000000280), 0x0, 0x0, 0x0) setsockopt$inet_tcp_TCP_CONGESTION(r0, 0x6, 0xd, &(0x7f0000000000)='cdg\x00', 0x4) sendto$inet(r0, &(0x7f00000012c0)="0c268a927f1f6588b967481241ba7860f46ef65ac618ded8974895abeaf4b4834ff922b3f1e0b02bd67aa03059bcecc7a95c25a3a07e758044ab4ea6f7ae55d88fecf90b1a7511bf746bec66ba", 0xfe6a, 0x11, 0x0, 0x27) 05:19:10 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xb, 0x0, 0x0, 0x0, [@sadb_key={0x1, 0x9}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x58}, 0x1, 0x7}, 0x0) 05:19:10 executing program 5: r0 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f0000000280), 0x18, 0x0, 0x0) setsockopt$IPT_SO_SET_REPLACE(0xffffffffffffffff, 0x2000000000000, 0x40, &(0x7f0000000300)=ANY=[@ANYRES32=r0, @ANYRESOCT=0x0, @ANYBLOB="f61df2c651d028cbd1267b237cbaf1b7e298cca56338dc6e7525bb269fe58b8b536c8104ac3c0e27263438abc4bea8cb87e10a5491dc3b2374b842b435338c9b12f478bd5e8159f47d803c8e966ffde06b655107b848d64acf71b020d5e8cde781388b3e06e051010468813fbe41", @ANYRESOCT=0x0, @ANYRES64], 0x1) openat$cgroup_int(0xffffffffffffffff, &(0x7f00000002c0)='cpuset.sched_load_balance\x00', 0x2, 0x0) r1 = socket$inet_tcp(0x2, 0x1, 0x0) setsockopt$IPT_SO_SET_REPLACE(r1, 0x2000000000000, 0x40, &(0x7f0000000000)=ANY=[], 0x0) 05:19:10 executing program 2: fcntl$setpipe(0xffffffffffffffff, 0x407, 0x0) mknod(0x0, 0x0, 0x0) lstat(&(0x7f0000000080)='./file0\x00', &(0x7f0000000200)={0x0, 0x0, 0x0, 0x0, 0x0}) r1 = add_key$keyring(&(0x7f00000000c0)='keyring\x00', &(0x7f0000000140)={'syz', 0x2}, 0x0, 0x0, 0xfffffffffffffffb) keyctl$chown(0x4, 0x0, 0x0, 0x0) keyctl$get_persistent(0x16, r0, r1) dup(0xffffffffffffffff) r2 = openat$null(0xffffffffffffff9c, 0x0, 0x380, 0x0) sendfile(r2, 0xffffffffffffffff, &(0x7f0000000180)=0xfffffffffffffffa, 0x0) ioctl$FS_IOC_FIEMAP(0xffffffffffffffff, 0xc020660b, &(0x7f0000000440)=ANY=[@ANYBLOB="050000000000020001000000000000000100000075000000060000000000000001000100000000000800000000000000060000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000010000000000000005000000000000000000000000000000000000000000000004000000000000000000000000000000ff7fffffffffffff8000000000000000180000000000000000100000000000000000000000000001080400000000000000000000000000000000010000000000d70900000000040006000000000000000000000000000000008f0400000000000000000000000000000000000000000000020000000000000000a00000000000000008000000000000000000000000000008040000d600000000000000000000000400000000000000059e7f0000000000018000000100000005000000000000000000000000000000e15b2ae500000000000000000000000044bc5380f5ffa304bdae9dc7814922bc285218f25e03578c31a14dc0718eae90b580a5f862fbe01b98cbce74308c1401000000000000007db8dcf195ad70cfcabeb4a4d6abf120f7ff2eafdb3523f1050af7d5694803563b2b815fd4632dbc8079af634e3fe8758179e01c66d9144bdc859141c5533c066c29136482bcd0070000004212b68860dfdf21348a087bfdb9efdbd408bdff9e04218ea05a1a1d30d8c6bb3b0000000043934074b80c197679a6d7856f836636485e917501b93f876dc416f8b44873ea24e78e496debcf663b12fd189fe29ae4fcbca875cfd9eb041a3c9b332946429426287632e0aaae000000000000000000"]) prctl$PR_SET_MM_MAP(0x23, 0xe, &(0x7f00000003c0)={&(0x7f0000ffc000/0x2000)=nil, &(0x7f0000ffe000/0x1000)=nil, &(0x7f0000ff8000/0x6000)=nil, &(0x7f0000ffc000/0x4000)=nil, &(0x7f0000005000/0x4000)=nil, &(0x7f0000006000/0x4000)=nil, &(0x7f0000ffd000/0x2000)=nil, &(0x7f0000ffd000/0x2000)=nil, &(0x7f0000ffc000/0x4000)=nil, &(0x7f0000005000/0x1000)=nil, &(0x7f0000007000/0x2000)=nil, 0x0}, 0x68) r3 = socket$inet_udp(0x2, 0x2, 0x0) perf_event_open(&(0x7f0000000000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x400, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, @perf_bp={&(0x7f0000000140), 0xb}, 0x3220c, 0x0, 0x0, 0x0, 0x0, 0xfff7ffff, 0x400}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) setsockopt$netlink_NETLINK_CAP_ACK(0xffffffffffffffff, 0x10e, 0xa, &(0x7f0000000280)=0x20, 0x4) bind$inet(0xffffffffffffffff, 0x0, 0xfffffffffffffff9) mprotect(&(0x7f0000005000/0x3000)=nil, 0x3000, 0x0) ioctl$sock_inet_SIOCADDRT(r3, 0x890b, &(0x7f0000000340)={0x750, {0x2, 0x2000, @remote={0xac, 0x14, 0x11}}, {0x2, 0x0, @dev}, {0x2, 0x4e20, @broadcast}, 0x0, 0x0, 0x2, 0x46a, 0x0, 0x0, 0x6, 0x3ffffffffffffffd, 0x382}) keyctl$assume_authority(0x10, 0x0) setsockopt$netlink_NETLINK_CAP_ACK(r2, 0x10e, 0xa, &(0x7f0000000100)=0x7f, 0x4) unshare(0x60000000) 05:19:10 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xb, 0x0, 0x0, 0x0, [@sadb_key={0x1, 0x9}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x58}, 0x1, 0x7}, 0x0) 05:19:10 executing program 3: r0 = getpgid(0x0) perf_event_open(&(0x7f0000000300)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50d, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, r0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r1 = socket$alg(0x26, 0x5, 0x0) bind$alg(r1, &(0x7f0000000000)={0x26, 'skcipher\x00', 0x0, 0x0, 'cbc-camellia-asm\x00'}, 0x58) r2 = accept4(r1, 0x0, 0x0, 0x0) setsockopt$ALG_SET_KEY(r1, 0x117, 0x1, &(0x7f0000c18000)="ad56b6c5820fae9d6dcd3292ea54c7beef915d564c90c200", 0x18) sendto$unix(r2, &(0x7f0000000140), 0x14ded905162a6a4b, 0x0, 0x0, 0x429) bind$unix(r2, &(0x7f00000000c0)=@file={0x1, './file0\x00'}, 0x6e) pipe(&(0x7f0000000080)={0xffffffffffffffff, 0xffffffffffffffff}) accept$alg(r3, 0x0, 0x0) recvfrom(r2, &(0x7f0000003240)=""/4096, 0x100000205, 0x0, 0x0, 0x415) sendmsg$kcm(r2, &(0x7f0000001a80)={0x0, 0x0, 0x0}, 0x0) syz_genetlink_get_family_id$nl80211(&(0x7f0000001140)='nl80211\x00', 0xffffffffffffffff) 05:19:10 executing program 5: r0 = syz_open_dev$vcsn(&(0x7f0000000000)='/dev/vcs#\x00', 0x0, 0x80a42) setsockopt$inet6_tcp_int(0xffffffffffffffff, 0x6, 0x1b, &(0x7f0000000040)=0x1, 0x4) fcntl$addseals(r0, 0x409, 0x0) 05:19:10 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xe, 0x0, 0x0, 0x0, [@sadb_key={0x4, 0x9, 0xb8, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x70}, 0x1, 0x7}, 0x0) 05:19:10 executing program 0: clone(0x13102001ffe, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) socket(0x0, 0x0, 0xdc1) poll(0x0, 0x0, 0x8000000000000200) io_submit(0x0, 0x1, &(0x7f0000000880)=[&(0x7f0000000040)={0x0, 0x0, 0x0, 0x1, 0x0, 0xffffffffffffffff, &(0x7f0000000140)="a3", 0x1}]) ioctl$UFFDIO_API(0xffffffffffffffff, 0xc018aa3f, &(0x7f00000002c0)={0xaa, 0xd}) r0 = socket$netlink(0x10, 0x3, 0x0) r1 = socket(0x10, 0x803, 0x0) r2 = openat$zero(0xffffff9c, &(0x7f0000000000)='/dev/zero\x00', 0x22042, 0x0) syz_genetlink_get_family_id$gtp(&(0x7f00000000c0)='gtp\x00', 0xffffffffffffffff) r3 = signalfd(r0, &(0x7f0000000100)={[0x8]}, 0x8) sendmsg$nl_route(r3, &(0x7f0000000440)={&(0x7f0000000240)={0x10, 0x0, 0x0, 0x400}, 0xc, &(0x7f0000000340)={&(0x7f0000000980)=ANY=[@ANYBLOB="24000000190000021d0000000000000002802001ff023709b5f0000008000b00020000006456d44013649717df12bd813fc2db8742b84b44135ae6444351dd301205bdbaeb6937beff6e70ae2ff3e759dad8d3b51cfd080493269ce32907b2db89a3bd1fe38821add365b3716a92293aa346b15f63434c27523b011477917ca48df617e15acb9ffcb7522f36b6f33a9949077e8ccb2968eb42de6dbc295be2075146511effa37fae6069c881c55fb70a8ba96c58a27050b16dfe58c1aa5eba1c85faee42cbce957bce8fa399320500094926416a8e52895dd4bf8f808f9ff26976bcf0ddd2051e82813c2358fc68467564e5d59862296acdb2ef4dbbad026929692abe319a8859bfb4b23a552d33cbe0828f32627c332837cbca641f5b1aee6c6a876c1391abd8c071af308933c16de063738099c1e52bf2b9cef084c419c27734978deb1e0ca2fcf19e8d0fe80b20f1eee9d06e8bebb05ec64978ba77acdb484d9cac136eb7a871e5bbb6cda075156669bce6cbde789afcb9c4b2c9b9e6a2364aa9e5bc8b1147271f7752a3d2bad8c732935ca11c9a5fc793154071858fab1faf99d1cb76bfb14a69594c4ef1ca1e098e0a1c2d435898f594885e55902a6370dcfe95ec9d398d7680d8c8a882de7fbe9a94be5b522e577da9dfa5d6d8bea56a2a790ddde866b1978bb86fd1b6bc683f529c7004984caf6463f24b0cb768000000000000"], 0x24}, 0x1, 0x0, 0x0, 0x8004}, 0x20000000) sendmsg$GTP_CMD_DELPDP(r2, &(0x7f0000000200)={&(0x7f0000000080)={0x10, 0x0, 0x0, 0x40000}, 0xc, &(0x7f0000000140)={&(0x7f0000000300)=ANY=[@ANYBLOB=' \x00\x00\x00', @ANYRES16, @ANYBLOB="00042abd7000fedbdf25010000000800080002f506fe6362901bd84a7118ec43000000"], 0x1c}, 0x1, 0x0, 0x0, 0x40000}, 0x4080) sendmsg$TIPC_CMD_SET_NETID(0xffffffffffffffff, &(0x7f0000000540)={&(0x7f0000000280)={0x10, 0x0, 0x0, 0x8}, 0xfee3, &(0x7f0000000500)={&(0x7f00000004c0)={0x24, 0x0, 0x4, 0x70bd27, 0x25dfdbff, {{}, {}, {0x8, 0x2, 0xffff}}, ["", ""]}, 0x24}, 0x1, 0x0, 0x0, 0x20008010}, 0x20000000) sendmsg$BATADV_CMD_SET_HARDIF(r1, &(0x7f0000000180)={0x0, 0x0, &(0x7f00000001c0)={0x0}, 0x1, 0x0, 0x0, 0x4c000}, 0x24040080) openat$hwrng(0xffffff9c, &(0x7f0000000380)='/dev/hwrng\x00', 0x42200, 0x0) ioctl$FITHAW(r2, 0xc0045878) r4 = openat$zero(0xffffffffffffff9c, &(0x7f0000000000)='/dev/zero\x00', 0x0, 0x0) mmap$perf(&(0x7f0000ffc000/0x1000)=nil, 0x1000, 0x1, 0x10010, r4, 0x9) ioctl$BTRFS_IOC_QUOTA_CTL(r4, 0xc0109428, &(0x7f00000003c0)={0x3, 0x5}) sendmsg$nl_route(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000400)={&(0x7f0000000900)=@newlink={0x6c, 0x10, 0x705, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x28403}, [@IFLA_LINKINFO={0x1c, 0x12, 0x0, 0x1, @vlan={{0x9, 0x1, 'vlan\x00'}, {0xc, 0x2, 0x0, 0x1, [@IFLA_VLAN_ID={0x6}]}}}, @IFLA_ADDRESS={0xa, 0x5, @empty=[0x4]}, @IFLA_MASTER={0x8}, @IFLA_NUM_TX_QUEUES={0x8, 0x1f, 0x4}, @IFLA_PROTO_DOWN={0x5}, @IFLA_BROADCAST={0xa, 0x2, @remote}]}, 0x6c}, 0x1, 0x0, 0x0, 0x20044084}, 0x0) 05:19:10 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xe, 0x0, 0x0, 0x0, [@sadb_key={0x4, 0x9, 0xb8, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x70}, 0x1, 0x7}, 0x0) 05:19:10 executing program 5: mkdir(&(0x7f0000000300)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000080)='./file0\x00', &(0x7f00000000c0)='ramfs\x00', 0x0, 0x0) mkdir(&(0x7f0000000040)='.\x00', 0x1) r0 = open(&(0x7f0000021000)='./file0\x00', 0x0, 0x0) fchdir(r0) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0x0, 0x7}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x1) r1 = creat(&(0x7f0000000000)='./bus\x00', 0x0) r2 = fanotify_init(0x0, 0x0) perf_event_open(&(0x7f0000000140)={0x5, 0x70, 0x8, 0x20, 0x50, 0x5, 0x0, 0x80000001, 0x1000, 0xa, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x6, 0x1, @perf_config_ext={0x7fff, 0x9}, 0x1002, 0x8, 0x6, 0x3, 0xfffffffffffeffff, 0x8, 0x1}, 0x0, 0xffffffffffffffff, r1, 0xb) fanotify_mark(r2, 0x2000000000000011, 0x2, r1, 0x0) r3 = open(&(0x7f0000000000)='./bus\x00', 0x141042, 0x0) write$P9_RREADLINK(r3, &(0x7f0000000100)=ANY=[@ANYRES64, @ANYRES16, @ANYRES32], 0x44) r4 = creat(&(0x7f0000000080)='./file0\x00', 0x0) write$binfmt_script(r4, &(0x7f00000001c0)=ANY=[], 0x3e) sendfile(r3, r3, &(0x7f0000000240), 0x7fff) mmap(&(0x7f0000ffd000/0x2000)=nil, 0x2000, 0x0, 0x10, 0xffffffffffffffff, 0xd9b72000) 05:19:11 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xe, 0x0, 0x0, 0x0, [@sadb_key={0x4, 0x9, 0xb8, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x70}, 0x1, 0x7}, 0x0) 05:19:11 executing program 4: ioctl$ifreq_SIOCGIFINDEX_batadv_mesh(0xffffffffffffffff, 0x8933, 0x0) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0, 0x9}, 0x0, 0x510, 0x0, 0x0, 0x0, 0x2, 0x800}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) socket$nl_route(0x10, 0x3, 0x0) r0 = socket(0x10, 0x803, 0x0) sendmsg$IPCTNL_MSG_EXP_GET(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000040)={0x0}}, 0x0) r1 = syz_mount_image$vfat(&(0x7f0000000140)='vfat\x00', &(0x7f0000000240)='./file0\x00', 0x7, 0x3, &(0x7f00000013c0)=[{&(0x7f0000000280)="d6595159d2f089a7bd62fe3f0c05f14311464708b20e1229fb055c44d76955ac06f60fb38f7a630050dd7117b18ca7f982aaac4c0a672fed6062822f5e685c71923ed5fa1eb432e83ad0b0d21c86bbe8b04b7232710156ef5f1f99d02be2ea1f474f8b3a1a2b93dfa22566919583e1caf1894525e5a6a478e716c10505523e26d7a01bb97a49d2851ddc31393657c1fa6a9bd57c25113f79058500263ca81fcef7c950046e7eff140d44173140531aa6c063ae22f8a7c1feca5a6ad6452265f6efe62e6944aba8ffae47e321da4b44f0e84b700fcd1290037f578bc81acc9a4ff782345302ed8c5feb9150f3", 0xec, 0xfffffffffffff000}, {&(0x7f0000000380)="8cf0d270f45ee6dcd48559e621819c37ca2cebb80ed655f2ac6e65a98a6b0f73cca355f34e06fe78323b124e0f230f2c2b80678c866f17a45938b38d4fe5ab48d7128391d457c099cd6769c91fa21395039575d49d2706f0c10a42b587093ee33cbae2e68eff53bfe50cbf08e7995b66c20ecc9e30cdf0ca9c16cf03156ab72bf24328907972ab69de7ce1f7e043817d3192f707f4722ac9682b05a0d2f43a6ce3e16de2aad0d068f6472d0a5bbd5a683234f1575c2a98595b9298f05e26d4aeac207c988049ee660c60a8410f67c65865113291d7e7dc050cc6337c29c45de1a0ae0e90942b53f4d180d45b588b2b91213de6f460fc7c58bbeb646aa44117c5b3b21bc2262d14afdbf6e01b0be4d7f32d6e4c2cd357f823f9fffdd6ba4d0a174b9b2c033b9ff7d5722bf39106277c7e22f8e8203ac0705f2c3aabe180ba44dba0cec26918191302c18abafda1c97f4ec4758dd92bd4590ac114abedd614b70f79b826d626b54a71dc9763940e59fac88bfa1de1269b054402f753061199a76e90be1328e308364577a30cdfb6a4e51b2b42219aa72bfe526361268e43eaabb06b91f47a3653db863bfa69db9af1a86d541eb11db4c6578c51a792a03cccbeb15792538a27870d8378a2e1242a7951688e4e46e22916cdcf30fee9ed66f50e6bd14c28f497dc3a1a2be3674f36a40d2f66bd8a3fcaca8215ee3c1ba9d77d9d6a0a27c3e71b9ca59c26b3b4b46e13bf16d9c0f632f467812e559b598f3e038c99f2f8c8b602197a5d1ae8e52c40fff8b216fae20f2516eb3cc65a7664a0d43a0d82a24f74e8548d0bae23bde03583a8d13b8c5f135c89ca47d9643a3ed328450b3e97e5813811b12d8f1bfacc6e734c823c657134ad7ca7f6e04241edff1dcdc66ce0ed6be7241337801545632a20c6d3eef74a9998faac907e2b315cc562edbc2eafd3f5f267c5ccbacc2b45305780ae46e06691a23d439c917eb0f0e4d9d5e5283705401d08863c9910af7939983381bf243183571852a99a48a6f68ee2a444abb7dfc055d47fab4c11f5ca30e8723ffdc8541c66c2a6a24631843a437110f111d49f350f9b33795c1c46776632e6d09ffc7e1f11b4f5012ebfa313db43c26b375658777ce2cd8e8efedd69f6045cf1ab258a9f9edf1e87244d650ff09de09861258a773a790abdbd9ab6ceefcc655b4b6897af7165ac48f6128e62214c485b84564f86407039a63db97f4523ab1c73798bc3b8d93034aa2d8df1b51a788a981d6969add4a4521a21d4d348157c9cefbe5500272c588440722cf7c61e6efc67a1b06162b3abfd6e1b3929d22644b1b231bb88feca4b7286e066b9025ae767fa676cb68c47ecae2034f412be4adea260df45182cdb224d8934ed17c113e006c33fd34d148c8e5eca4da6275d9b74fdcf86cc5187eb5327e30d729f38b4dc99ded1f1438a6f4249e29daf0c1e2cecde6410c2f154fb67288420efbc834325e33d62f386a6a71f376ea410e4ce8c2dab50ba7e38818d49b2fd8c78ec435e05702d3ed319227cd8fa4a6b8c9c9bb3fecd4756eb645542bd8ef9f9d9448d4b8c3670820e50b24c1602d3fcabc7fc76e062221c7a8943eec29f8f419749be49af450e6b4241c6d2548e4e9313b931b4122ba19200788ec3c0e118759838741c4f891e920dc9e97cb9643264300c2c49c73f37f301c3beec7df2d6d25677fdfb6b50ef4a173dc10f7c7802a1db332875a66aa360d8a16409eee38f6275e211dc17a50f40cdb1ff50ef59cd9e795141e1d9b4f5bb8a6de50e381fdcf57e02ecbf89302b7e5ac243efb11fe2af38b7cf90358ae0be3783e5c8b3dfda604ea0f1f801d1069b15030f5c81a4c194d069f51b77a7a3619477debff9c8d1b64a0773b1307157079a3f8d560df5fe0f81421d2bd1456df692f080e4237b407befc7e00cc4f0de1bf62074f07536eb153f50abbf325cd66d012d616642173193a0bfa240384c9a7874f20526bb502d8d1e0140c3a6a1f033f6e2dfa5f1dcb29cf822aacf95ab8cc61d77b308ce7d9eb22b66274082aad48729bc3b4f29025b45f2922e789122c38e4388042f25233090529b9aa817dfc97b0dd017f14426a58f93904da0003e870cc98576085b09056336bef78e7807636441f5dd58d42fcbfa963f6fafde4056a51ded20910ba63a151e512931703b62e707588c8e61370048693a11b7f72ff14c75c3cad277d313ce730cead09b61b14cb441de31a90bd8afac927cd6223be776afa8036d1dc31678dda8a3e7af00f82358212be17ef00270aebaf7f9c4af165f391d60c22d0619ef880ef3cceb2900a10d4a1cdb18fa57dad1c294d0a36fbfc9f4a8d5819eb0bb41786f4cd0eb890718b1f6804ed9b9dca67962604533d4dfc44d185eb89f3b473f3994d6a89cdc01782b72b97097c77677f6b8b2b477f32de3d7db095152fdfe070cef090fdbb43f3e178776c6ceb465c8d910e549ee264b0cbcd4a26c7f93bab849c44560cca1d08785584936ea737e9d9baada46189699702e2b7197bc0794fc07c28836ef16345768dbd99e84e179908c1c4d948160867925c868080763d9db7b91b0b8219b8fcaeed9cdb9b5063689b085e90275aaa17efdb492ce8a77a95100ed73568a17f671e494b63b8cf9b9957bca682c17db7e52e59b10dc0160a03b287e4a2c83a46e4de31fe514a1076767907a07f49ef1c416a41ca79e7fda8f2844c7de0b7846d15340d267cf4970660649eb207d414290a1573f4c8d44d7c85ee9968d328aa1ca72b5cefc8234e0b737061aa19a987bf8f7999f632fa682dcb5c7a178e4114e602f1139424b6983919fc6af2f425b762db3311dad3216fc4284c919d38cebdf5941ee9c7a93483230b2dbf493da0b5968eeff386017b38826a903c3eb5df1ec1dc32d697a9b99184c868f353b1a59b3a477e06c0affc2b471cb2c26c464744bdc94493db9ad2facf36c6cc832b0f6a8a8595065e228c2bb696c47a8136109d80ee374db0c67fe56724090709d5197e0bd135e0425c2e2c60fd8e6a4fcd96879c385aa722a721401a809763a35425c75f1e411adf15ce7b5d6da747a4aa256503d7958834d51a9578a3bbac09e01465fbd80fc4340849360e844aeecd2d07d3966e9c28220cb7d47487718e08f52e2a100048f15902a884ed04046f9e68cc3991c0542b67a7b29fe5dae785b721b54d11754d8e6bae1fb25c5090e137f1bcb638edeaab16c86ebf3a3bce72a5f0660caa3a7594d551acf90716a47b19d30b70dd29361b9a8f7df29ff1d62b57862501fd0f59f36bbcc98981f5975984417cf98f2bcfe5633d9b4287d4bdc1170b38abf589868eca93940e9653d30b128ff52c7302db1999bcc9b4059051722ef2bf8a3493c0ee573c96f9252790219a68d68cc3825ef38a3a9a35b579bf433397d39eef3e84d137b31d5eddd249b26f256ddec3fe0bede67a7621e3e875f5e7dc04cf8ce3b2dea51d8c953a98a282e1729193dd1a115b37fcc7e4cf5640e1619e9abfc8c4c84d35f222b1d8271f5630d13f650efe42375293232efb660ba4dee857d88afc121e954fa56b926a1765667eb62262558273fb60451612b0ef42e90c15e5c04e61df73eb05eb3528c52745ceaa72b3d587556d08afa87c87884e84c36acaf056b33c4e84f7abbdfc7beda9a89b0b04fe12ee18124502a37e508a5dba08dfc4c23daac884ad5f6ad4764af9e5b92e4004635e280f26c719c4131c48c3458bab5306612b14f55c2ea5cc8027fe118166676a688810ce1bb19e1af3e33ff400c441892f937655e152783c2b998adc916833d2607c0aaddc95949ecced6e9ff85458f45a0072a62cc8b862f73bf87995bdb421739524f2f3b933afac680af0ad65130a63b7561938d24dc080bef82636e8136bfae457324d427f9ac2aa56a88e835019115d211e708c92bdb05ef44d5bb0107446f3bfd52e0f4e0621458ae4a1fa7219c67c449643aa6d9fac6ff0efac445c7693ec2bcf7a62a6a6de2c63e8ba830cd6e058058d8cac70e726b740fcfc8b54721ad3f124ed769572231f6ee5ac80527c8e9c27d49153345f888c0a6041cdbf6d44633733e78b29471c4b6fe26358b5a948bfd4f83dedbe4f3cef544412a4e16e90f0a907854df4c124065cf00e80b05ad61551aa500158f7af455039832c9436fc6d3ec8edb600395336c226c21afeb29cf41019443068afb15cd28b030b2f729e16da36abbd1a3a81e9eb72ae298e9288a03c1e282b59653a153e87b43fc406849e518bdea29190f428829705657cf4a3adf1b6001f8c31f9e818256c7c8f3e0f9bc3530268f298958c53c3da4f62ef295480451fb6b1d0f7a3d71eb1cc1bcd41b3442955a9eb5f014b0aa0a8611c99bc861edd97a1820ce7af6bd8f7b8c53429838b3488e2a825c60f0f2987e89d63176a896cc7479e0ae8a1c58147f212c677eed14de7524277489491e030902f9ed13f7912790050509ceae5e29648e00b06415f7d74b5660cc3f04a1f3479681dad25f844c581b9e27adca168050ca3ae72f86a644dde61e345594e2ffe456a3eff710a8e23b23c5b3338ffe076d68e4cea9c2ae723185384f884a25e365601909db30c26555189aa627ffb7cd91593e72aa96e57dfb6464d487a093f4bf5b8f3aa0af432ee56eecd2a7f0523ff3937dd70ae5bde4ba4be591f68880079b570d93e7231e01bbacbf9c48df5f9718e70d6844e57740e43565e38f2948483d4c68f8497dc7d0ba36a7c0e09613198bbdd078e03c85c20173c44a73e47ea6c47c1e6815aa20bb12b905874ca5c6ae9986ce466c74fa76c055dbf406386778bba1bd942bc7524e854f1fed739744e348d06c37afcfef3852fb72e8d00d3a075931fd0631bdedc19e5ac8cb414fd46aa88eb82f1ae5ad5cb6b03ecf1d9b24df85779323aaacd0bc7722dfa6f4fc99fedadb2bea236b4e2195cf94896931b63492c7fc6fcbf9458c4d15780745cc8c50317c4928146ba91744a12bdb0bf700a0d99706a0c7c43ce6928adf592a8a39c6be02ca550d8c3d1f8ee803203fca5d73eedfbd4d180b7901eb4546fb5e1f38b1ba9381ef018a8edad35f55dd3b0009412f0110976b05c8faf57a89073677a58b447eb4b2dd623bb2f9d445e949090769705b070a58fc9c87bbc49363ccf63b466eb75c17254ada474b3b435d4d88e26aa4c878648e71c5f6e1de6455327824833a7875d9c86e5dacec3a3f339d1ea1cbf5126c35999da96a5172c9edde8d9cb693ad74953ee4067cec21b629bc34e752f47fc02ed8b0b121d5965ec8ec76b0a400b2df1110be8b45e09f9768ef13ffa201d3c83ee2b493df279bd86338c75b1ac292786184c3d090e3ade2b70be6bfd3e6b3571b8798b70133e2c9d8a52277516a137e35276e0819ccb0be35ee0d891d1d61f2c266b66f7843549b36af3dd1cadbd3ae660fc67daa862394ce4684029e11d49d5c1fc4efe3f26d057cddf2ce9b9b6d73ba2e5182c35e5a4f10a8ca6c64e7d4b9546121902020e6a7edd99b49fbfdee3212ef15e057d2a1568aeb4cfed79e7c4b443b434b96f40ad88b3cad1ffa52b230bc4906b1a92b47c1f37f7ac061cfa270bf56903e18e293fa20c9b1372d88c58a4c711e60aade15bd3cd25d336132b21689405fa01836f1a802ce83e281d8c2c62da2d2277177b18a650153ef6c45bd460ad9620c1095ff8c0b0033f748726d0b780dd2ede6da9983a87073ceb54cc098aa1f72846feaac792306df5168629ee3720034f56eb171b2e674ca01fcc8fd", 0x1000, 0x1}, {&(0x7f0000001380)="ab56b331870b64f8484c152eb5d80548d8de056866716492d8437a605553cbc0fe2ada9bd2d4341a5afcb1c8c8db34851d491174de92a732a20e3b7e", 0x3c, 0x8000}], 0x200880, &(0x7f0000001440)={[{@uni_xlateno='uni_xlate=0'}, {@fat=@showexec='showexec'}, {@numtail='nonumtail=0'}, {@utf8no='utf8=0'}, {@uni_xlate='uni_xlate=1'}, {@nonumtail='nnonumtail=1'}], [{@fsname={'fsname', 0x3d, '!-]\xc9)\'(&}-{,\xe0'}}, {@fowner_lt={'fowner<'}}, {@subj_user={'subj_user', 0x3d, '/dev/btrfs-control\x00'}}, {@defcontext={'defcontext', 0x3d, 'system_u'}}, {@func={'func', 0x3d, 'MODULE_CHECK'}}, {@euid_gt={'euid>', 0xffffffffffffffff}}, {@euid_gt={'euid>', 0xee01}}, {@measure='measure'}]}) ioctl$int_in(r1, 0x5421, &(0x7f0000001540)) r2 = socket$nl_route(0x10, 0x3, 0x0) r3 = socket(0x10, 0x803, 0x0) sendmsg$IPCTNL_MSG_EXP_GET(r3, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000040)={0x0}}, 0x0) r4 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r4, 0x0) preadv(r4, &(0x7f0000000280), 0x18, 0x0, 0x0) r5 = openat$btrfs_control(0xffffffffffffff9c, &(0x7f0000000180)='/dev/btrfs-control\x00', 0x101200, 0x0) getsockname$packet(r5, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000001c0)=0x14) sendmsg$nl_route(r2, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000200)={&(0x7f0000001580)=ANY=[@ANYBLOB="30000000100001006800"/20, @ANYRES32=0x0, @ANYBLOB="000000000000000008000d0067c8084fdb07bddd25d629e4bb960f78360ff94ad4332a29a1feec5adea3a416b73c3e59a38762360d296263c056d78e25ee7181a1d53557ee3245e822ccbb23b156ca04103a9e5d246f01afa70f47e66d3d0a1ed41446c731290d37c1862ecac294ffa0213b16cdc38034", @ANYRES32=r6, @ANYBLOB="08001b0000000000"], 0x30}, 0x1, 0x700}, 0x0) r7 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r7, 0x0) preadv(r7, &(0x7f0000000280), 0x18, 0x0, 0x0) perf_event_open(&(0x7f0000001640)={0x2, 0x70, 0x4, 0x1, 0x1f, 0x5, 0x0, 0x1, 0x40000, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x3, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, @perf_config_ext={0x1000, 0x401}, 0x40506, 0x101, 0x7, 0x8, 0x80000001, 0x5}, 0xffffffffffffffff, 0xb, r7, 0x1) 05:19:11 executing program 0: r0 = openat$procfs(0xffffffffffffff9c, &(0x7f0000000180)='/proc/partitions\x00', 0x0, 0x0) fsetxattr$security_evm(r0, &(0x7f0000001800)='security.evm\x00', &(0x7f0000001840)=@md5={0x1, "63ed19e8942f142a38cadc54789aa0b6"}, 0x11, 0x2) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) recvmmsg(0xffffffffffffffff, &(0x7f0000002e80)=[{{0x0, 0x0, &(0x7f0000000000)=[{0x0}], 0x1}}], 0x1, 0x0, 0x0) write(r0, &(0x7f0000000080)="d09e59fee582cee9200913d853c2f1567dda2d560a5946cb90da0f2023164bf4b572f253e27a50d13a7973e80a1e84e0d3da546339d767e7ae38ed73c43dd8885347d07e374d1409632ff136f537bfbe37a6667c7a291dd4264db3c7c5436fe1ae6108843288ad6e4d630f731c6e5947e624af5de5ebe385a5227e78e040b2b9703dab74e1c3c2393d835a8454d20ac52843f35f6bfdb0ec4fd9228f002c3821e0c63f60278bb1f2655e58b868c8fde01e109df21df100a10ad211abc9878bc187f565b218", 0xc5) r1 = openat$cachefiles(0xffffffffffffff9c, &(0x7f00000001c0)='/dev/cachefiles\x00', 0x6200, 0x0) accept(r0, &(0x7f0000001740)=@pppol2tp, &(0x7f00000017c0)=0x80) sendmsg$sock(r1, &(0x7f0000001700)={0x0, 0x0, &(0x7f0000001580)=[{&(0x7f0000000200)="77be15f7d299660f38f128c88b395cbe7675f2f3ea8c76b3a874cffbf22677d0690dff4f51f90b01e12bd952d098222841be6a84e445ff058f7bdd9a387ef8fd7835", 0x42}, {&(0x7f0000000280)="283b2a7a109350c48b9ed37bd567d477b20604868894a8ec47df50d44c62c280948f84ea0480ed0344a3a9934ae6a413015487be4510504254e00245a4ebe815925d32405cdaf1ff2a9b10c914ef236d53321b7f9103af594e18e39729860e5cc16d65928cb8c932f73e96aa9b01c621ce2f3ee262e6a8b28e1989118784", 0x7e}, {&(0x7f0000000300)="fe057ab8b6214f0d1a1ae01009e841b102e92b7ca540887bf0aafc1c28d9d44d209c261b03a45216e7ece0dc6dc10d9d4fa5d21200df36c65feb2781a98c1d22a1306b", 0x43}, {&(0x7f0000000380)="d2de8f2a2f6167b3e5449418812d3c7ec9a0e9666607ac65de21fa1efbf15a2ed08517920d013b8ea349ff3556fc03d331f7045e012b6095e977db428a32a65a680a99a25c374cf7e812b19a800a3bf6713e99b2cd22e221f6873f9dafc929fd127b65ca", 0x64}, {&(0x7f0000000400)="001b7f791152d3248901dc97669beac7c0d16a0caecd89d5ea606378f6", 0x1d}, {&(0x7f0000000440)="5ddb6874d78211965464e734b995a9e8c977d18d0a83673f3b9ccd1255bc1f7dcededbf9bb799bf0e7bb69ec755668d3a82d9d49585cb689335c79545df9f236e50c8e7687b2e9061931c329897428f72d989e96edccb021c8bf015b315db68c6685482fe45e5f5986ffd66abaf7a605b1b56d094d55bf62da02c5c78b23496270cb7e492de25e8b65bd8b4658270f807750d761851822370e8f756a71f1278ea2ca903a3bcc98547fd033608e2e20a5c7899b54b5f03f7d03e102267188ebc99949db414369c06650485a4c1060722f1e904e21ea8ba8d2c630cefc1027bf15ccae6d3ae7117ec41b248a4ccfd8c7e96ffa26805b3d2b26f5212305d925056fab06d1709c2aab240d695960f02bb42dd7861693eee816625bdf03bab08efd7e607b7ed5139217102c837b1de7a21ee1fd626e5fe3bff989f42b5f1280bf3c0de7aa8224079d6c07cb883d7b9901e4da4b776ac1b6e38ddb0544ccd4f39e634b6480cbba167ed05f7b16d7e4f35ae3c4e928f2adc17017298c7e3d6c1556f86d267fe4abebaf3c6814681b4fd813a74d6cb4ca83c4e5997fdb72d7a6276931f8c12952c08d01be63c08a801f678d1a0062f0ea2d6157cf3da695b81f406b9be2b364d94027c7f11fb3c940ed4ef33277e7bbeb0cac697024382ed8857b71c82514632566a318c8279c6619346317d424f3eea88b35d96cad95a03b1d59d113558db8fa5cd65740fe58ed26820705859b5923e213faced0058d1702fbbd2878ac15e938b113f9230dd39978b587d2711f74e8ba1b85ddbc1523a7e946e581bf1ffd7cdb7fb1b6e3828ad0c3c6ad6b86fcdf52b630f2907257672f0033c9d45a41b5b4ec4243c87ae13fed78866a9d872dc3360dd53d7ebe0cfb48292ca112d7b2a3c421ad275d61fee5f56bb3c37e29a19ac3c93c07a23870c48ebc7848cb4a8c59fa2b5235aeecb2b19f9c611a4f605e915fbf408d3d238723c2e6b17d1e198185ab1fce8bc0b0553d7d007217e7714d97206e2696e72acb217991cc119855a243650518ee0af4d5e1c37530ad8bf13f75ebc5aa7fc650d6b711d18b268aa677ef8328e457ce2eeb7ec800ca4b7a76dade280daf4d16d444e05a14980af2cf1fe43464257cbb34204ee764125c2f57963c630b223dbccbe93da29689dd47e83ecde222a22d04a2d83aadf4b81eac6a2f1924fd36bcddddd9a4aed69cebb3da3203b0c2535a9db480c0c18ff15f7e0131c7cc47db2a5a2bd6c042a82915671be7a8420c2168558eeb8f776610cfbff4d4141123046c20e6552a4508ec72ff8b104b1de8d0da73aa04f80109567a2da69604c4bbe236c289f2f67e738f007e9bc5df5c19d6be5e9d9e9efaa7d90b60e202a97859e13fa2ea3cd47bea16c80f5497cc7ccc5ad6d24f3f343dc86adfb9e5c1570ee8c9fe878ad048b9699c99de83b268c8ac52ac3d29116137303818418b0967d9b0893b270bd48137e84136e75c2a3fb76835773f36880e2048628b3d69b6dad040118eecdf6d4f266de08424556bfa62caaf3b05e3675057d6f9a1b26cdb2c766d587c99b2377876ca4d893102f8e71380d48efddc35c6cb30dda1714e3456e5c3bd212aa34297c3bc4d1ad82a161bff7d5bd44d67fe6f39f830fc868690d0635e91ff256bb29378bd4b928edef151f091d4bb50a37126ee0bb657f9fc6b62024eda604dcb1233f935d32ad46f5c4af006ffabb1a4c8df6f04dd2c87ab5efbed3256547d6a99e6c72748ece31386c6ca25803ea1a1d0323f2ead94f2b1ef5b95b8d3fc0e4313cdf1b6113529463fbc83601e77ea3a3c6fe41b84ebf93d14112808398fcfc44dd347e9ad5631c211b586a83c4aec7d495282aaff28a834f44baddeff1ca10b57019fec5afae0e0ad1cdfe92f1c83c2c031c4571a6b7664cb56bf0c4a758cdc9a7921e2fc8448295b5f555bc527aa843000794116c8000ce020f5c2ceeb6241bc8fda633bcf71903368ba0b4078564bf12afbd5197c716f677a2722ba18a037a4a006c2d578e4c55472f2058b95a1fda55f8731dcf8fcbdf8164f274eb19829481ffc8bf669322cff1b2555a87815cd8bd3c3eb95522b06362892cc305ad687640b88991944476f54a0070f9aabe368f9104cd8f608e0b82898e9ce91a125f7cc153a2ca1ac2003fc0c43669347a7133b15d747303edbc04b03786597e100dc31bae2731b0286bf1d702bfec7982d6d62477a21f50e39346b8a0e67e8df352851c43c98730f7d4001701707b4d16be03f95ca09cc13dfa237bb05a9e7b7a7530a7a9a60f0f9ee29cd930311b8879f9d3dd2a95afa3d1051903510de96ec337f0668e8bb78fd242b4b98892a390d21ea50dcd73def7839276a03a9cc9a2d57c39a1897dc5a3dd2dc69c945d65ec0fb0887fb77006387e5c0f1cae04b822447d9761b29d4ba0dfaf4a50c9623b54b8dcdf01350d92d67b86682e5dfe277d31b57654e9010056d7d422236a6eda07ec1d5f79d04b896a0cbd83fb7ff990fc01795fb72ce986a85e7d2091829be8ae244961dba20f1839ba88b65fe5a1ec7e012b946354aaa7105ad380a3c0978104885c9bca1bec0a0a3aee5ba0ba381534502c6542a6ec30dd821bffa36af8ea68a81055b91f3e92c65c06d9b9729eb04c3147fad304bdc3ff65a1f5fba1c2421d2f1e3c3ee951f4cea37033bf59c3da1874cec7085bc57b12bff220617de4d2982697cd18812e7e420321976f8778846db1879ecf0c93138d058e6444aedd8e91df018f55e70b147d0a29d3328d68f4cea9c9681a9dd7384abb1401f4625a5722ca978d9ef5d3f9dbb19db159bce650e188d4a5ccb778ba99ef7ebcf3df0205acd1f0d816124a98d77dce4bc4959610540b56676fd60d9317a651f4a32bd8a2fb0bdbcf583a3ab906742dfe8593f7770220b8cb61a45175ab6c7a8a68a540396dcae9e8c0a21e0fd9d0be4619c083ad2e7d0ead5443ad805e8130286c21b3e2d37adfcd7a10364ccee904957e405412fcc814e1b95bd94964c68bd7adffdbc33abd6509485787c1a1bb6a522d720b30521af239da662b022d3aa547466f464d5cef5af33eba6b166ea606bac157fc72c5eabbb400d2085f6616034898eff2b5ab2bc570eb7f9954518728fa149f3d48f9071fa9290bf61ab36f96f30363a8f17eb87d9692b04d7b195fd41762f25bc92a6acb0e0c1aad53dc2e665749ec508722f03dd2634086703e2c561ef78098a4eb291ba26193d7fe7605346ae0120b72101483d61edfdc461163b57e92a7e3faf768933d81f585eb88a5ce8eb7f7cf5c3feeffca006f4737e121d4a8d866dcbd7b23413ed1d1b274d7adf2e1b078aa8b894bcc788d9fdd179d0c053ba855c2afe44cda96fa6396ee9b3c09a6281a38f2374629f083c8641303fd7cebcd5fec59d46641c86df30e981c853c1e12b4f31fc8beb6bc45c660254d0b8656017e748a9d79549daa2afb48a88aa5ba15ca42551ae64064c34f74deab7cffccbb27a03ee6e3169885a93398c9f37d14abd6d14a7807434e927af0b4be2393565cd73db1763d7f85f2582b503b1b70459557d4e3ffb227d38f3a88ef56fdb5d5deb270ce38aa8efcdf06540375bc80aacdc50f2a83ecb861896cb845089fd866e84916ca2be98cae73f61827013575a9e0fd0f16c59ef6223355ef519d2657184bae48a0d50484cc718919d1176feec877da7c899f7bfb67411c6a99e2a5e9b78756990e96dfa33c5e9b32e4bdff00a8678108bdabb01c22c1251cad52c93a9f4a2f813b12f0119b94e53e1f7f8e77e5910d994a14be4f127a7bf2d868dadb45dea652218cc76c1b0ff356cea68d33f277b55158056d46ceadd067ba21bd20140a79dd4f1d3fc809c0ac88d99537449dbc96fadafc4bfc6ef00d6ae54424559a96b71733656a312da4cd8d1def637ae9b5a3149aa0c130be406d6e99f641d641ad81ca9adebb6638b59789ff056a364eb5d1781be9fe2b7a7c786ab58a9eb6a539fb1df8319395d17d8f776ba4af92ebda814a857299802f5eb1713186e55cd8ac3cc62971809d023cd0a9cb7ff37da1049c357ba102e6f80cf7f957fd6d8ed659108f57a2bb1e6cfb191ad09f1700d9d982d8b9132ab5c20c3ad15448736d93504b8bf0264efd9e184710a5431157f297097bc11a12ba21fadc1d2f415427505c6dcb046d65ed10e42cf0da766bbc9bce8921eb6d594ff9aadd0ae3dabbb8dc483a5535a4d004313234cf02f62b53483e336c148547205bc234bf9cc7121301eda8e0cf314e145a51fea5877a8042785f89c6eff22c1686e414f2da2975b97c583a3da203f55edad93ba617149bfbfc0befe6e5812f1039783a66356bf526f17656105f0f0096a113a01124b8f7b3628c1b35860f74e2385c6e34358f47f5efb31842b0b2f22f72778a01bc4d072ae2307120b5eba9642c3cc5c000c925c95c53856a6e16300fc5fe610b6f148e184c9b684b03445b2ca7c9a36e1370778df922e05cf492afc929b82461d289be1d4e906f62419f1c6120f40798adcbaa399390efba50c5aedf2bbb14ad249f202c9f2ac8e76a8068dd3e3d5ec6d370601333e26787c8cb0085ae84edc1c8d2db64106d50e800f5b102c5664ee211dc20caad77bf6e7f04a6e2b54100443f1b4f07a40f76e3058d70608ed644c71e5245d6111eb1bb43b76e37167a3ae3a9575d683121b982331f5ac40cbb40f5d7c434bff665d92f04154928e0d601040b6cb092e39871211caafb6f86be8e9565590e824a19a35eaae0409296f5e98c13990a31ab92c7a2e371e3a06fdfe61407fe1348c8740b1bff6151d229b3b6c4c56aff748f3dcb91546c41aa8c4e5916860dcb334237a9507c96ea3c9a27411f12b30353688a6d65df9e12cf27db3955e8b7d696c97b5688d3d23c1eadf1add318a1494b4e3fc65b6b63bc96ec23a46caa921df675bfaa209a159ec5c857483f55fa7149fcc6bb10aae370c291e956320a3c307eb46be9511e4fe35f2b1c76e43533241351a6e3708881ced8dd916e3f8583329f5411da8b507b7a9144bbc71f4d7a0ee1949a409d18acf757d1f3752ebe551039b06b86ff3713138bf6417a53ec03278cee29c1fdb45b35a4fb15959ddb1d8fb2708c8930625acf55b18554060fe59b86d1d3d08350c6f6d786abf8c3a599527689d5c079b6e8d0ce89ab85fd2893fa1f44b86ae0ad2e818b4a5429ec30ca81f0ead55e2aa05502e2be3c5f8ddf8dc13dbf6d7d2f6ff1891299085b76ae6aa8f30670cd2e28c1bd9546a1ece5a2efe2c8d74aac1c747d36584b73c1ae9c3e7aa5aec39a34719b7382954d2f137138aa5a91ddfabd64f542369f7bb55bafcd886a6ced13bfb34abcaa8ab64b38bbc8598f1f23ce3ae02ab1144332b524bfdf7cc7b4316144462760ea83f24e92ceb5afd1ba1cf9351bc948b8dea372aa9fad9d42c40c2209582922a5dcbfb53df189b93097015387e4f825e8e235238c200ccdc4f4ad9840f26b3dfae60b69c4b91a1523c1f76f8ecde2bb5e2c064c725855bbbc95838f243abefe1d41c18f921af2f183984367f38901aced79da915db16d53e0752de76f05f64762615b682558e15d65895c066ad59bb499a14cc1c4e6de100b4762bc280fb094101872847f1fa89c4485de13b0901c722d653cc5e4d3c638bb3cd2669b7dc65f601c023897099ba309e36a54eea0b335ffc0fe63a5214c6bfc924b3e77544f21dc6dd09ac81eb320e0e4da52e34dd619d475b41c33f0926f230a65bca20d2c495f05e115cdd6092abaf78", 0x1000}, {&(0x7f0000001440)="802ce4d1e386ef924ecbc2581643d935aaa8f110016d2d8a510f79a098f2cccecd8fbc48f32f1cf6a32087d9c806271d7d84750f5692958cf54201f6be82e20d2b1341b9c443aff47eba97935ac82c00a48740009f32599ec67375056e620a7c13206d000b6e04df73b3cb1ff2f329f169c8da32ee42e7d50d8ea421a471b9bca4b9b4287f6f93342d8a3dde2129c68b594f1761f0542d1aa8264e1ef27e61cef06881acc01362a08621f162a5647caa970eb0bc8fb39fe88ddd58d6397c313ca0f41a9b435fe79519b9c9", 0xcb}, {&(0x7f0000001540)="50543a3a5f42c207c3332e27a2b6a1f7aae68dd61cad4b9573", 0x19}], 0x8, &(0x7f0000001600)=[@timestamping={{0x14, 0x1, 0x25, 0x27cf5c67}}, @timestamping={{0x14, 0x1, 0x25, 0x20aaeb23}}, @timestamping={{0x14, 0x1, 0x25, 0x1}}, @mark={{0x14, 0x1, 0x24, 0x315}}, @timestamping={{0x14, 0x1, 0x25, 0xfff}}, @txtime={{0x18}}, @timestamping={{0x14, 0x1, 0x25, 0x1000}}, @txtime={{0x18, 0x1, 0x3d, 0x20}}, @txtime={{0x18, 0x1, 0x3d, 0xfffffffffffffff7}}], 0xd8}, 0x20000001) r2 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='fd/3\x00') preadv(r2, &(0x7f00000017c0), 0x2f0, 0x0, 0x0) 05:19:11 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0x10, 0x0, 0x0, 0x0, [@sadb_key={0x6, 0x9, 0x118, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c549f"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x80}, 0x1, 0x7}, 0x0) 05:19:11 executing program 2: fcntl$setpipe(0xffffffffffffffff, 0x407, 0x0) mknod(0x0, 0x0, 0x0) lstat(&(0x7f0000000080)='./file0\x00', &(0x7f0000000200)={0x0, 0x0, 0x0, 0x0, 0x0}) r1 = add_key$keyring(&(0x7f00000000c0)='keyring\x00', &(0x7f0000000140)={'syz', 0x2}, 0x0, 0x0, 0xfffffffffffffffb) keyctl$chown(0x4, 0x0, 0x0, 0x0) keyctl$get_persistent(0x16, r0, r1) dup(0xffffffffffffffff) r2 = openat$null(0xffffffffffffff9c, 0x0, 0x380, 0x0) sendfile(r2, 0xffffffffffffffff, &(0x7f0000000180)=0xfffffffffffffffa, 0x0) ioctl$FS_IOC_FIEMAP(0xffffffffffffffff, 0xc020660b, &(0x7f0000000440)=ANY=[@ANYBLOB="050000000000020001000000000000000100000075000000060000000000000001000100000000000800000000000000060000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000010000000000000005000000000000000000000000000000000000000000000004000000000000000000000000000000ff7fffffffffffff8000000000000000180000000000000000100000000000000000000000000001080400000000000000000000000000000000010000000000d70900000000040006000000000000000000000000000000008f0400000000000000000000000000000000000000000000020000000000000000a00000000000000008000000000000000000000000000008040000d600000000000000000000000400000000000000059e7f0000000000018000000100000005000000000000000000000000000000e15b2ae500000000000000000000000044bc5380f5ffa304bdae9dc7814922bc285218f25e03578c31a14dc0718eae90b580a5f862fbe01b98cbce74308c1401000000000000007db8dcf195ad70cfcabeb4a4d6abf120f7ff2eafdb3523f1050af7d5694803563b2b815fd4632dbc8079af634e3fe8758179e01c66d9144bdc859141c5533c066c29136482bcd0070000004212b68860dfdf21348a087bfdb9efdbd408bdff9e04218ea05a1a1d30d8c6bb3b0000000043934074b80c197679a6d7856f836636485e917501b93f876dc416f8b44873ea24e78e496debcf663b12fd189fe29ae4fcbca875cfd9eb041a3c9b332946429426287632e0aaae000000000000000000"]) prctl$PR_SET_MM_MAP(0x23, 0xe, &(0x7f00000003c0)={&(0x7f0000ffc000/0x2000)=nil, &(0x7f0000ffe000/0x1000)=nil, &(0x7f0000ff8000/0x6000)=nil, &(0x7f0000ffc000/0x4000)=nil, &(0x7f0000005000/0x4000)=nil, &(0x7f0000006000/0x4000)=nil, &(0x7f0000ffd000/0x2000)=nil, &(0x7f0000ffd000/0x2000)=nil, &(0x7f0000ffc000/0x4000)=nil, &(0x7f0000005000/0x1000)=nil, &(0x7f0000007000/0x2000)=nil, 0x0}, 0x68) r3 = socket$inet_udp(0x2, 0x2, 0x0) perf_event_open(&(0x7f0000000000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x400, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, @perf_bp={&(0x7f0000000140), 0xb}, 0x3220c, 0x0, 0x0, 0x0, 0x0, 0xfff7ffff, 0x400}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) setsockopt$netlink_NETLINK_CAP_ACK(0xffffffffffffffff, 0x10e, 0xa, &(0x7f0000000280)=0x20, 0x4) bind$inet(0xffffffffffffffff, 0x0, 0xfffffffffffffff9) mprotect(&(0x7f0000005000/0x3000)=nil, 0x3000, 0x0) ioctl$sock_inet_SIOCADDRT(r3, 0x890b, &(0x7f0000000340)={0x750, {0x2, 0x2000, @remote={0xac, 0x14, 0x11}}, {0x2, 0x0, @dev}, {0x2, 0x4e20, @broadcast}, 0x0, 0x0, 0x2, 0x46a, 0x0, 0x0, 0x6, 0x3ffffffffffffffd, 0x382}) keyctl$assume_authority(0x10, 0x0) setsockopt$netlink_NETLINK_CAP_ACK(r2, 0x10e, 0xa, &(0x7f0000000100)=0x7f, 0x4) unshare(0x60000000) 05:19:11 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xe, 0x0, 0x0, 0x0, [@sadb_key={0x4, 0x9, 0xc0, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2f"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x70}, 0x1, 0x7}, 0x0) [ 321.316869] netlink: 8 bytes leftover after parsing attributes in process `syz-executor.4'. [ 321.390974] netlink: 8 bytes leftover after parsing attributes in process `syz-executor.4'. 05:19:11 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xe, 0x0, 0x0, 0x0, [@sadb_key={0x4, 0x9, 0xc0, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2f"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x70}, 0x1, 0x7}, 0x0) 05:19:11 executing program 0: prlimit64(0x0, 0xe, &(0x7f0000000280)={0x9, 0xd}, 0x0) clone(0x20aa0700, &(0x7f0000000480)="d9a5cb596e7271ff6a9c5c024af59472ee4fd8efc085fe621ca35c3b4ad903869561a5fd32fc3484628bd2ecb2618169627600"/62, 0x0, 0x0, &(0x7f0000000380)="ce14e21aed9b8ecdd9be1c03a969a58a470c3edf6857fce4a38ca7a51376793e18fc8741245db383c34766cbf8cc51c275f5f2cb2073b05a06131425566daf7f5262b16ff427faf0a45096b9bd576a5fbad673cb02ee4980e6d3cae6fdf3834f69ed283a315ad76a6a92be723f6dbdd94946") r0 = getpid() sched_setattr(r0, &(0x7f0000000040)={0x38, 0x2, 0x0, 0x0, 0x8}, 0x0) r1 = socket$inet6(0xa, 0x2, 0x0) recvmmsg(r1, &(0x7f0000002bc0)=[{{0x0, 0x0, 0x0}, 0x1de5}], 0x1, 0x0, 0x0) pipe(&(0x7f0000000100)={0xffffffffffffffff, 0xffffffffffffffff}) fcntl$setpipe(r3, 0x407, 0x6) write(r3, &(0x7f0000000340), 0x41395527) vmsplice(r2, &(0x7f0000000000)=[{&(0x7f0000000500), 0x3528a9c0}], 0x1, 0x0) sched_setattr(0x0, &(0x7f00000000c0)={0x38, 0x1, 0x44, 0x26, 0xa, 0xffffffffffffffd4, 0x0, 0x20, 0x6}, 0x0) prlimit64(0x0, 0x6, 0x0, 0x0) accept4$tipc(r3, 0x0, &(0x7f0000000140), 0x80000) syz_genetlink_get_family_id$team(&(0x7f0000000040)='team\x00', 0xffffffffffffffff) clone(0x10002103, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) r4 = syz_open_procfs(0x0, &(0x7f0000000180)='attr/current\x00') preadv(r4, &(0x7f00000017c0), 0x375, 0x0, 0x0) 05:19:11 executing program 4: unshare(0x40000400) r0 = openat(0xffffffffffffff9c, 0x0, 0x0, 0x0) r1 = socket$unix(0x1, 0x2, 0x0) bind$unix(r1, &(0x7f00000006c0)=@file={0x1, '\xe9\x1fq\x89Y\x1e\x923aK\x00'}, 0x6e) connect$unix(r1, &(0x7f0000000080)=@file={0x1, '\xe9\x1fq\x89Y\x1e\x923aK\x00'}, 0x6e) r2 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r2, 0x0) preadv(r2, &(0x7f0000000280), 0x18, 0x0, 0x0) sendto$unix(r2, &(0x7f0000000740)="8643f7f6e9ef480fa4afa3fda3a0612e23667f721ac8d4934539125e337f4ee567ad261757f310e6ad39568dad250844f23573def4225bbb9bfaf1ffabca4c2ba390eda0c552d43f32b6092c786e60cdb93cc0210cf2cf121b556f74dba025e33b9357a4a4c6ae1ed0d1f8a255a3ad38e483286f26eefd57b662b760e2c352358b612b4dc3ef2f04f584855151b5796557a3883fdc0b8ae466fa71f6bdf2e0e0173ce223ac9ee4bf3a64ac7650dda77c2238e981093f515df105f092eff8307bc5ed10c70046a685b10d13bc1d4832d87d7ffd9a6a2d0fedb8589367dec06686a3005133d73f945338fead6d3fc4d8b212535db8fdc07f9022f9625096e5bb5dd5d618b988fa2c52dc93f94924188b8e88eba0d5bdf8553aa7b04a749cf9bfafaa16e3c0041393df70ac1a378d766ae3fab15485894bb2cd2ac24bb29dce6cf84280fb07f0507482e5cae611e3879e7060e11000397aed6c73cfc54abcddafeea6ab8dbb2de7e89cef089c7f8b1d5aef0a7c62130b0e95f6e36bfd1466c13194a8bb0eacc87e1beb9cb94d71559a3e4f7c086a87ab7a23d60d30d03689ccb35da9c6080d711ff45438b5cee1586fa641cc71bbdddc8bde37b49d1d28a4b592eff61c375559aea63f769d28337a677b7f833ed242eb535cd054c43b7eaa1ba8b3f12f6982538320c3e89f0ecebddfc02255f0701259299b2747df2df3abda61152fbdc807ae2ae711644e09a3468a2b529233f85f6554497ed640c93df5933828ca9319d313c911a49c5af044dc60f70976ef91b316d203ee22fc1ae401f191f289f0b564c2a3426c47801eaa486f8ca324d67345f0a63dedbb625699a6d99424b358d8f9f08289921b17cc69ea1e0bd254251ea784017b2dd60266d0feda02c29c3193b9061bf5423039f9ab3a6e0623ca1c9a03cf2339b7e58eb9f93ca1c6e2e069a930d980ba558d175c48a5ea996c9a6ae815ff40320faaa829aa827e53e2d4231560a48ba9ae09ad4072cb51ed76721e8c5e4456065ca12dfd0bf6cc9c06e1af8b96311b585155da168d3323800056796e458edd6786bd5a95ccc19dbfd85f38141db03de8d58bf4567ed15356844d183ed1460087d81754e1f89b7706f03fa2faf8a60cdafb8ceafde785286bb5a8c72e830122b7cafc30c1ce0443e79a0ac72268f2aa263cedcf695aa8d9a4a446e6a9b22441336565aad1b48f04cc627a3d8ffc401cf81a81b5ac7bb132671d0f532d95f245bc3143668c6962aaceb6e938e622bb18e1ecd9f039f34669bdfc73f1b61c05b9e920057cec9679a66649a4c5238b5343a61f82cb9f9c81da1126c4f06ae2aac7ec2e245361192654d84018272516fde8dd21174627b5c7dd6d5e5e3637216f3a828d1a06c2a634fde5963281cb54dc5f41a216ef9f52a5351b180f4b36361054f165812510a059e78029c75f86e0658232a03b8c3bee3c67de8c4a1b16f1a88f749c73a91cfa3463424ca0846e9880ec3ffe753f885b5f16f6892f12e5e64c02dd2ebfc769a7022edc5ce4114a810721e6a0690bfe7eaec5653c8b7ada7b918dd16e1b1ac215340aeed3620eed58dd0b5298b36f4d183fba565e95739cf5518a9acf5b4af2a20fe95a32b12927405f04e9598b33aa68ca5ab344a57aebfcf4bf0603e9f4d53ae5d85c46ed285578c0472631a023263406064a8b1f170b143191316282d865467615ffc47e9cea5a64345a0745f0bc4c3732272d6536cfaa187915b3237e16268fc99f0a8ff2f03e3d647db2c613b2fc143a21b0b2cd849b7815172730cfe8dcf46c17fb81b87b10b6caaa7e7dde6eb58af3541a94af7486219792dc486536be6d904ab3b0607cbb7d523e7d4ab31be84c21dab46b2de3b2ee8649e12b724a7e27fb1cd739baa81701a4533208d5549dca832f32d65257d85f6fa8a4faffd7bf1c6d9ec575a0978bb979635d62729993688a8e3beca1df335965e369ed9467e89046ab95018f6c42022b8527ba583277ca7a9e03fadfac286317cee6894d01afacb1f5bd0cc8e2dda71bfbf3d3524e7e148a7ca32c97db7ab9f3ac8bdb72d8b538d268c5c8af144b3029abb2172e541678de320e18ab32dd9f21659d6dd2591ff605e810664c588ac2f965eea45d725d904cc612fc450ff5f82784822eb3aa2ca37a83c575d658d7df1f3499f3d06c69b60592dbecec9b26d8a3f8ced1dff7940a63336c42bac5726efeb9a922701bfd9bdaeea9eae782ebf5ffe058840c594fe632b80d363781bf1230285fd0cbc5f0b442142c2370f1b86cf20ad5571975ad844aadf6925c33bd5a910fe43036ee1427fbfae8e08b91401a2d16d6067f6dcdf7aad72fc05b396020996358a975efc7ff87d0daa8e676b844df5a45ee23ff34a6a6d783154461b34a49b838f288ccaf7511ee8038e744736b788a160e95678288025edfb11aefb8850c8c5ffa298b176f8f31fd3864a465d6cbf906fd0ad163ffd210e3373fec92e1897bf1d0183a2479aa4a8e8a51494d4ac9fd4ee379985736ed93b33b51becf3c1e5825a655e8b032ee06a2dd81ea89691181b6725816e37eb5ca1178d646005a32aa3ebf8e2c2fc7319199a21164deeb83b1dd283997abc73ae57d9bda26bf5073b1a66c37086d8a07e26adabad2fad52958592fb8a7b95ccb3e96e49f80a883167188b3c5ce00a1d86541a607e35455ec6d584966f45ba471aeaa485d460e9358ab608a2267b9eed15f425ca30d28e6697a8ecbf4f416c31c5f099450fd775d9811621b43c0c9b7d5d9add56d1cc022f3edb238ca47e91d13d76420d072fdedced6ec89a729d00d173e4b80914d491d697679f462121b5e1a24328da4a7a7915cf2b35f2f829bde9ed60bc3e4684faab070053ed2c7e6d56e6857566d2ff06945bdd0a131f7ace2b290bf4a16cb78c3e9a933977e0a21839ab3ce51f1cd1bb314c399e5c76e8ec1b1c4e3bcaab3e622c0d0181018ad2335b041f7e6fa9c27d75072563a9a9727f88d4de1c3abcf1ee7d4f5e05a1663abe80dcc58403292b11909c34b299c225dbfefa72a8280c5594b7ce44367ab5ad964d444a7fb6b7951520f9690c864649036921a9992ca483c0d73b1306ce4714deca6df9579de6320590fc94b5a90e5a858d74882798509696a686d687c91f0451464cb6c0a092a775232d71ee926de6ee417fcb8efb2118d2b03a5dc6bf674217ae446ffa6b9f16de280c120efe32911a22ef5cc19045deb86eba1e1d65e642842b621eb502497b39862e8628d0b813df8c4efa03e9be19b69f35ccc6609b480af409142d93acf51844f49a45d22967ab0b598ec32f657a3e6ad1bc1a3b62a6e61d295fc22a93d956f9db1a0304b3d27cd7f3ecc492f48e6f1d59f55cfd3f2cd158b408833817a0c3c3ff99b3642c79699eeb0a9da2bbcfbc39bc036a4407fa1138a001f00c881208bf6baa3d194da210af56ee7b85f4964d504ecbfca5f0f2bca1b10b673b88a98afbf1a1d687552fc55ce11b94f4cd93849b168f904014a4174966d2d22fa2e8d80dbf0202e4b91921d79a67173ed5d8064c08a2085de8282e093c2441536c1a4e5d76330ffd3af63f3da26a3a2b4e2d7d75c0f8d14e4f9ed2d0138891d177bbb84974ebc2497281cfd1c64f7586de5baa68615212dd4f49f50d0281070b098ce693fdfe57490d9c197ed8c11d32783ecbafbc93d066f3ef495d5e82690da9ee9ffd9607af12552090d37dd58e08bf8e745e0a3f072f832129535d695397920b12baea54087c780d47fa54b8b9ffffa3ef5e673911a40644b314dbd029ba74670108735a6fd13cf4052d76dbdcab4afa3e15b0ecbbc7eb70fd14ced54e1558721b5475a2759618707b818fdd36243d7716da5a07534cb213b09212752ebe2fef2410dfc9295265f0a311bc0f0ade7537909641f58cb8824f5666220a1ddec3faf8ffb515385e96eb815fb2c550f5e73ce189707d01471219b0ad270a08106d43be7a1a8691ef98c52c47583b20f2681e623f100ca4d15dc3c81c9886e0083e437ec7da5fe480b43d9b74c8818c2813ec3d10f1c4bdbe9b154a5ddec32cbc595656d7c1bb9203080e0238aa2012aeec624d4a1ba37d9564e95bf2e232e7d783e91492e4330fcf4352bd685d614301b1489a4877b0c493b472f1511e724c56e507e8e3f8bd0b4b0bb1400ca39f0f9f34b2d1d2c48d85d28813013e8d4906607491e4193fc3f16f9a5858f101836832a3b78f6549d2afa4c2e9c93f9a13055dc4f14b16741d6b7fc62ba29bacb017da8ddc18e0243a1d214c77294313ac1b82f08df6fc408f0eca6aa2eebd549d901275114b37bba1bb2951539d425b2a00e9af6228e32b46f45666d766a1c8bc0ed5a3e1eec4f9aac6b683b01e932a2a5ac3db301c213122e15dfa7fab5273bfb5c5d0349f8779e2adcca8d246c7a919d4e8326249a353f1b1f8b4ca42ecc808fe6ad9d6cc27c092f9d1a1dade15b14bf18a6a94abc235edece01724cb124257b9b6232e5185e4f7005f09386fbff9546c5c8e97ec9846def9c23fcde1da123bb4c495a0a79577c913ff2a450e9e8f0caca97dc4a067ea63afeb0328e68f140b41b5fee8effe4846e37490c3bbb66a552afa3db67279c9524f27a21ae42de85402f4f1b45fb24f95b171b479308e7bc67a8c419ed48c3a941b4a1551a4a01ef057668d2ea3b7d8fc56fa4b67c7ad8292b2e8849075c0ea3147d3a9dce51d1f914e3e50c64c82fa7e93b66a17698926e77a2eb4d802be9e22fd2ca736c1caa23508d00b7bd65e16cdeb739d50e5cd6c818e89b0d924449ca23144b82a31f99cfa0fcc2523ebba206548c402657769f6d0295bae9840e6ae627292a6de223650d24e6998ccd3cbceeabf3ab3df4153a9326fe7f9a1f62bd5d977b48c94bd2831758c8038cbb8ee6d048d84d78a2bc09d4ef80e1aec88694119dc2bfd3c7db8be91bb990bbb1ecc0b680904d46f2bd8b1fbe2d5af037bc421480626d74e3c1927bd66dc42d80efa2a8df603aaa36c029034aae80cea98486f4ae0bd230475d41d7b65af3f23719919c076a35d269021e91550cbf86147d37bda6be152a458c930eac556a013f5cfa399e60abd730c7f2014ef032fabdcb09055fe59d21cb316393ec1f7faddb826f8ab5449a3d079e576cdb7f96df26816ed159846268c0e3a5afc9403ab0c10eff647db92a8456c8d139dd3bf2e4e17170124bbbf9b79173015f5a5dd3d8d5d4a8175190642b5615c50bba619a9b4ee14eeb038b9aa5f31c5036ef8302c9929601e83a61096d36c5632166dbef2726f1cd02efd325f1a66e3d99bb9d1d4e714490c4aeb8e06db423ef4b02c262da78d44a9f84810399f716e207ba20603f08960cb21a70f6f370e256d9419f5742f7055c9145035c18c7d8e4e44f94098a4801011834a0b0231a2f4e0ba14d363ef8b5c0cb9ab79cc43a5a43d3adb4fa4e86f901a6f4f0cb50e6ac32e5be5030d228dcf11e2b18815a190f4d32319e0b77f5e1c4641c7b2c3129b3edcb3cb1396df69f2cb13e579ab487098d5ce24452811ba4113340fe3adee2980cd0de5289410ccfb114e1b757f8d627c1e51dc24757ad1019594eb25c704f23e2790146ab5304bfb6d8e91c03d14700381699ba1957002f4d2ca33d60a902cae5691e8b90940edb6025fd85e3ac8ccf94041d282e2de3c9f7228f30fa7c6845dc402f7686a15cdb2bb7edd825c2901a3113319c4e301634c2f69230bff8ae32a909063abb7fa2c6f3a32e633a41c6f4f9aea1442b13d1ded5a56a927bfed5d1add365", 0x1000, 0x40, &(0x7f0000000140)=@abs={0x0, 0x0, 0x4e24}, 0x6e) ioctl$FICLONERANGE(r0, 0x4020940d, &(0x7f0000000100)={{r0}, 0x2, 0x6, 0x3f}) connect$unix(r1, &(0x7f0000000000)=@abs={0x0, 0x0, 0x4e20}, 0x6e) r3 = socket$unix(0x1, 0x2, 0x0) connect$unix(r3, &(0x7f0000000080)=@file={0x1, '\xe9\x1fq\x89Y\x1e\x923aK\x00'}, 0x6e) 05:19:11 executing program 3: perf_event_open(&(0x7f0000000040)={0x4, 0x70, 0x0, 0xf7, 0x0, 0x0, 0x0, 0x800, 0xbc20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={&(0x7f0000000000), 0x9}, 0x40805, 0x0, 0x4, 0x2}, 0x0, 0xa, 0xffffffffffffffff, 0xb) mlockall(0x2) r0 = shmget$private(0x0, 0x400000, 0x0, &(0x7f000000e000/0x400000)=nil) shmat(r0, &(0x7f0000000000/0x13000)=nil, 0x4000) shmctl$SHM_LOCK(r0, 0xb) r1 = shmget$private(0x0, 0x1000, 0x0, &(0x7f0000fff000/0x1000)=nil) shmat(0x0, &(0x7f000029d000/0x2000)=nil, 0x5000) shmctl$SHM_UNLOCK(0x0, 0xc) ioctl$sock_ipv4_tunnel_SIOCDELTUNNEL(0xffffffffffffffff, 0x89f2, 0x0) shmat(r1, &(0x7f0000050000/0x4000)=nil, 0x4000) shmget$private(0x0, 0x1000, 0x0, &(0x7f0000fff000/0x1000)=nil) shmat(0x0, &(0x7f0000ffd000/0x2000)=nil, 0x0) shmctl$SHM_UNLOCK(0x0, 0xc) shmctl$SHM_UNLOCK(0x0, 0xc) shmget(0x2, 0x1000, 0x0, &(0x7f0000ffd000/0x1000)=nil) shmctl$SHM_UNLOCK(0x0, 0xc) shmctl$SHM_INFO(0x0, 0xe, 0x0) shmctl$IPC_RMID(0x0, 0x0) shmctl$SHM_UNLOCK(0x0, 0xc) 05:19:11 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xe, 0x0, 0x0, 0x0, [@sadb_key={0x4, 0x9, 0xc0, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2f"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x70}, 0x1, 0x7}, 0x0) [ 321.585350] audit: type=1804 audit(1618291151.809:21): pid=11710 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="ToMToU" comm="syz-executor.5" name="/root/syzkaller-testdir745032376/syzkaller.dKXm07/21/file0/file0" dev="ramfs" ino=35991 res=1 05:19:11 executing program 5: r0 = perf_event_open(&(0x7f0000000440)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) openat$ttyS3(0xffffffffffffff9c, &(0x7f0000000840)='/dev/ttyS3\x00', 0x0, 0x0) r1 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000)='/dev/kvm\x00', 0x0, 0x0) r2 = ioctl$KVM_CREATE_VM(r1, 0xae01, 0x0) r3 = ioctl$KVM_CREATE_VM(r1, 0xae01, 0x0) r4 = ioctl$TIOCGPTPEER(r0, 0x5441, 0x3) dup2(r4, r1) ioctl$KVM_CREATE_VCPU(r2, 0xae41, 0x2) ioctl$KVM_SET_USER_MEMORY_REGION(r3, 0x4020ae46, 0x0) r5 = ioctl$KVM_CREATE_VCPU(r3, 0xae41, 0x0) r6 = openat$dlm_monitor(0xffffffffffffff9c, &(0x7f00000000c0)='/dev/dlm-monitor\x00', 0x4100, 0x0) r7 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r7, 0x0) preadv(r7, &(0x7f0000000280), 0x18, 0x0, 0x0) syz_kvm_setup_cpu$x86(r6, r7, &(0x7f0000fe8000/0x18000)=nil, &(0x7f0000000180)=[@text32={0x20, &(0x7f0000000100)="c74424000c000000c74424020c4b0000c7442406000000000f011c24c4e16d71e2f5f30f3066ba2100b8cc000000eff30f320f01c3b9a90a0000b807000000ba000000000f30c4e160159100400000b9a60b0000b868000000ba000000000f300f01b900000100", 0x67}], 0x1, 0x60, &(0x7f00000001c0)=[@efer={0x2, 0x80}], 0x1) syz_kvm_setup_cpu$x86(r3, r5, &(0x7f0000fe7000/0x18000)=nil, &(0x7f0000000080)=[@textreal={0x8, &(0x7f0000000040)="dd4500bad00466ed66b9a109000066b80c00000066ba000000000f300f0176130f381cd61943060f0f866e001cba6100ed0fc7f967a7", 0x36}], 0x1, 0x68, &(0x7f00000000c0), 0x0) sendmsg$IPSET_CMD_TYPE(0xffffffffffffffff, 0x0, 0x0) ioctl$KVM_RUN(r5, 0xae80, 0x0) 05:19:11 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xf, 0x0, 0x0, 0x0, [@sadb_key={0x5, 0x9, 0xf0, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x78}, 0x1, 0x7}, 0x0) 05:19:11 executing program 0: r0 = open(&(0x7f00000000c0)='./file0\x00', 0x40c2, 0x0) r1 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r1, 0x0) preadv(r1, &(0x7f0000000280), 0x1000008c, 0xd9f, 0x0) mmap(&(0x7f0000ff9000/0x4000)=nil, 0x4000, 0x1, 0x1010, r1, 0x7b136000) write(r0, &(0x7f0000001400)="bb8f9f640903127a53527c6fbfe65d43b0e0586f2d40c7e7df58cac83420e83662d6e39bb6d5430622431454eedeeaee423d8f210bc3525fa7927c18d5fbc91ab13c2041136047d8da9375934d00f325499bfe7712208d387d41c31821c2a22d1325b556528e9b790b74053d1ed631c6ec8126d37c87216173138c00cef396868029af5b76bebac5e38b74d8bbc6ae66b6e202b6d505710377710ea7d43edf00e1a4c1c670bb4c263ce777da81abdd5ba5a5c82f67232f9b4d6f21b2e6afa8b38e4642b0daa2acbc0478d89b88e8b2094d4248855e5e81992e60be3afff0f3c3799350615489a901a659abdeca0c615a622ebf64175f990320e0356d4a11ed62eff72b709c23dd65942e8b534d7d775d370c1e435654a2634e6ee3649c4c3bcbe39e866f1eb9972af1a9cef42e701798a53dc92a242aadbac343e1765cf8ea5665e22deda69777e52b1e9e5d3edc022256939e1eee013448294911139d5b9c6241049fecdf9b31f4cdf6cff65d71b5071ef70e1798347c8846aa5b905e83050e3e606986ed3f603d18c5cdeb11cda1ce3abddea9376231af130e19fc7601ec1ab8cb5a7de9e2174547f18225b09a54fc8720dbb91eb69c1be88e601c3c9df4f2758f39a5151951b9c6dbb419ffd783a34c9fad10f201b8724d31865e2fc1fcf48db2be713053b43a0e3943c1e2b08e8a26e946c439d891db2a80b5ffa054bc8d0177d3214056250c61a537d2ec7630fb90395df2cd6aa9c5e573365db580520bdc3f1c6b2be992e1516a4b810a11935dc780699e461d9715f70c6d103ff49bf168f3cff4c0d0d6ba5671fcd2975450b0e1a3474139cb0f2d3476fcd87a8bccbeb2f5f8a821017b879aa5b9d1fafa9f4c429a74cd2da782114d97bf031746a817dd0293c4eddc3a9ecb5afe496f4971474ccd827449409f07cf94dda2e7dbe8520b5afff10a7e3b0b4289a167fc692635b5b7426d9e771b95860b09a3e752c867213c772e48ba30a78feecc7ff26e63e1749c62b52d377ac5cc52db830c965e04ccfcfb24ceacc69cfdc2094124dd27b2d68f699476a2562bab1de117ffc2b0702ee8b0b77f85fecec3a25b37ab7eb06232c9a73b4470f1727c82581d81942abf42d3ea37957927ad3dbd0ebe46678a9f4d25c47acaac83c14210a54b71fed40df017e2be27f01e3e6ea3ea381ca14efd202858e6535ad4f79a8cdf47e385b740a70c14e3651731a45cc0ca4a56f2e903cad0384efcc364caf67e09551d35c682ebc90a9286c4d274ba1b8ced742ede4e55a62db7ef9a96fde2add05b41599fd72a79ba280cc125cb266ef21b7eeafe3ee6aa78eef33fc66454549c3ec298cb683a55a32208cf6ce88b560166159d59e65f30540f62c5437652ea7f2a02f87ca242dd2250f58e75938a9a3ded51ae6598c2aba53287ff5cdaab17be7f4310f8e07e310d52778de79e1c2e4391b254be38910aa1cf6e1ca0e75d24be97d59f7025f16c6fbd549529b74e319c58f50438765ef0e3dc394eeb75dec41b3d80435b17520c97f5cd7ee692fb86d188fb0089fbf737dc1b96b9cc49be23a38a8cd92e5075f349993d7866369dd25eccbe1481477a05fee14e0edd1617921d7fcaa8fdc642e63b64388fa5b63442ff1466b1938d02546750b01ed9c980282ccbe10f204741249aed88c555ed6fdf7f68af9209807a71bbf4f31bef5a4223466da74ba8b034df529aef6ec6610a0d25973961e50e02af22d0ca8be1b9804a5918acbdb536e8f2f441ec9d640ed15133ee747440c86fc4526c9195954528673d25c8390170f3c19cb0b0c30b9e634c7ebae96946ae97c19eabca92226da925d22be37abbe0740938ea899ec42fd529a3b1063981e4c154219df5cf5af60a29b5a8ee530905725a14b28900eae937e705401ba8f632a7bca00d9724a992afdc9ed14aac71b8e3a7ee5ca095888feb195b4e083c3b611a1c2f8d092febe3b9f5f0df61e8d3c31a643c935b76bc1ad4265164e755484beb06610510bc51e8c6da8d71123bbe83a5e4128f41cf5c486d6a60496c300c406f990bee485cbdef794f2663ee66d2b18d8e55210c25c04b1a0c6d9c5f904e72806d2d4f5e5439bcdf146343cdffe4d0d70d42a9959cff9bd50c37cd478b0b0add16aae4dc839b46bca2ac7547144b6a422aed5e2db661bcb31a82bc0fc678e71a6cb090ef772860f3008b4152b5d281033be4a77b367baec3ab8ce7c83c601b11c8199bafcd15161a5454a6a982dbc3c2e3a5172b6a63e4904817075754eccbb0188c9cb2e5da9600f567485014887463b40f189b7ec3c5c0f36d502509e402c285765c78417ce6b3aab130ee79622dcd8ada842233e73a14554ee5e4995e32b3fe4075e247eb9bdeef64d1a7436c9b5782fb2f84f74e4c6e976289729c37b5bb8200a9480d181a6b11f5ec229b818134b8334967ae935ac1d81be4776fae4cb68b6fa330e93bd8de388b38455d569159bcd166df030a6dfedf28caf4608de7243f5df2c76f6680c301d819dc67d24d2f780432a931700a253b0a5b075195c6dbfd1fe17a1c11a3dffa872a07b877adc66d069fffb6d8326e1998c5a337c3d530250cae335ceffcf81dc438a47e73490d050a053813dbe6674e42c91ae94b4a88144f36adc1b08b4bcd6ddf4058c4e08d4dc83d5fbd843ee27eaf50b297c220350260d9abbeeb6deb921e50cae0ea590cfb6f00fb3c71520f565bb769705e2481ef27cf537d29f163c9fe3d39ed9fd18dc8b0c976cd302283e430807a9d751357f89092532d89fe280c69ad36e3541b5da9dea13fd19d0434c760fe295dfd9b9e63453c7853914c50b1b77ccd4b33c8b1f31fcb1aec040ffe2f9d728d8ea84297bac2e22230ebd1488c503b05b2e433cc37ce9fc123b7d3eb244b4549e9a841e73b664c8f6621ea5a4c9ff9c1da032255311f2c063a682baf4c97e7ba552bf71af4bd64f43872b846d15c65c487089be272cfa24a33f8c50930ea0bc4b089505fb8e97ded0e7e64a5ce897da6b940df4c3dddb8b4871d773f6ebf02058518c55c19aadb0f266caf18777ae68d2bfcfb2225961fcd10538ba664fd053a443320072707533ab761b9397bd0559126b84fe9196463ae50633017ea2d80940311d9c867102b1017f34af1965d8eb61be616a0d40656e2bbb750aee6f74f788c8acb2578e8686f5f8da6a19e979c152b7ee7c7f16902120588e2ff630144b5f929ffc593e946d9717c5968aa16c2d73d689fb5cce117acda3e23e5e0116de1cb6bddfa1a84cefb22c1e2c3753017696f27b9aec5d44f15411247643b84dd4410e784b4eb5b9c68fea671976f9b51c6526e2ddb40659611b0b3bcc7e249c77396fdb8c864ea9318f9de7fd3936fcbdc732c2f8b9556ec9afeb15d5e2df890351d66074d53dddc6e8dba8c91d733623ac95a49eb69c7de37ff2364ccddb01f6500750a012c2acf32a9f6bbd9e92d17ef858fbc34575db414ea42ad87a65b11ae5506469db256c421328f45aec73bdf18562447dc2840bbe9fc84dedd0fe6276fa174f21210d40193530ec7a70a9e60bfd6b00cba4d483be59950f16fa0dbd089b5fd0bb078badfcf42270cc62fe37be22b0d81f755263d74636fa466d2574ca62b58c649936d21e949de73ea45df3acade6609413f56fc218d6f11947bf1fd629d38d8acce90ee3c1a51117601ae126bec537e3e76ce7ecc53cfeefee8aaa104aa853a65aadf27bac9849ee0122793b11cd8e4f32fb07afa39e439cb738c30a6df958160aac15c26032a61aaf614b2e6601581fb0ab8d115e045005dee3df8ea42643cbcbb0b111130c42c94b7e874cfee50d5c2eb13b3a38c417fce9d740b7d43120431a7d44bc3934ee87b112401cbee3553837b6a0b4b3faaceb46eca4064301c8060870350e256ac9d5557f674536b9d9717a82fa211e7dfb52ca410d8a4f2f6b733c2a082f247538a6c40f56cf64204e62515db692f32733ff6f4b0787ef305d5e80881375467ae603ac3600e688c42f89a4fea4fdda09a8d59e19457c654a98c8129a8c65bae3310af2b170729e18400c915d0a2f4c4fc51747846630b95ec181228bda7ef48ad389815aa82de6c4a3b0746c28c01f9ec697ff17f095e1cf9d2fe78fdab9cbb1ca7aefc8af6a0cd98444735fad79e394a8f9c2fd358c3cde4ca6d57a620d0bb52dc6ff93f034b596f407c21511cc2c5ec8b0ede7f5c0acca61939ac7f2cad820c15133e69507eaa739e9a88936f4a74f0ad1574a1591f31f582a76157d89805cb3ba5e8d10509bf7a08e928653b4f05ba797a06765b74c8759fc34178624c08a2b99e59bcff5d33af2b0f9176b56c35f4da31c751a4c2fd88a1997cd9fc9bbf78220731d4c8cea23be1fd29c36b34d8458b7021ebcfafdc7e54096e517da3eb684298f742532d776164d9c9658e5faca0a3b08afca1bc27ed357884f49fe51bd0c38057f4288f1917e36e3865310b5eed140aef6150ae363293cf7467abd5e06cd7af5e2c49e7c5253a1155741e380bccb023a0faed93d9a64512d72436f1ef4ac0904a413e45164c23413bd57274a0a951c41a9a43aed094d4ea5c480ce64663cc9d36723179e2b19a48e9277a6591bbd888a06e0f2f142cd4495be4ba7274d69ba32a2788b935b2f18c5f336cb9de062829e2e0bb476efb36c3f53a766c14314f31637a464ac59d378ad7f51bef8d88715613653a427038e0d3e4dc3948bb1d70eb55c91c92f7510b1c0387253b458d2c90d17238f9eb239c680179a6c1e0759be367963e3b4d7395fd3911626582a094e6a8d0e746242f94267a4c57d5b2360ce3a6f7f3e3c10e124a54ed24d1585bc7b731cf731c94ee00ebf070b999b9bf28d76bfec9dcf12fcce2b9c4444c706ec6b943b5f39e9151a764ba1cd0cd6c1c7cdc3aa824cf17da705be27a18fbee41be39d6ae4dd4312f5f4bfee2c5bb21d941666f9d79b0f80c9b1bace84a05d2b0e3be1c3fd04d72b4b0124595c435813969d413960fddc858730a433383f3bc0472cb7683ea569e001f00"/3584, 0xe00) fallocate(r0, 0x11, 0x2, 0xe00) chdir(&(0x7f0000000040)='./file0\x00') 05:19:12 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xf, 0x0, 0x0, 0x0, [@sadb_key={0x5, 0x9, 0xf0, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x78}, 0x1, 0x7}, 0x0) [ 321.794931] audit: type=1800 audit(1618291152.019:22): pid=11758 uid=0 auid=4294967295 ses=4294967295 op="collect_data" cause="failed(directio)" comm="syz-executor.0" name="file0" dev="sda1" ino=14123 res=0 05:19:12 executing program 0: mlock(&(0x7f00007a4000/0x4000)=nil, 0x4000) 05:19:12 executing program 2: mkdir(&(0x7f0000000280)='./file0\x00', 0x0) mount(0x0, 0x0, &(0x7f0000000940)='tmpfs\x00', 0x0, 0x0) getsockopt$inet_IP_IPSEC_POLICY(0xffffffffffffffff, 0x0, 0x10, 0x0, &(0x7f0000000340)) mount$overlay(0x0, &(0x7f0000000140)='./file0\x00', &(0x7f0000000200)='overlay\x00', 0x51062, &(0x7f0000000a00)=ANY=[@ANYBLOB='default_permissions,xino=off,workdir=./file1,lowerdir=./file0,metacopy=off,index=on,fscontext=root,seclabel,dont_appraise,euid>', @ANYRESDEC, @ANYBLOB=',audit,smackfsroot=system.posix_acl_default\x00,fowner<', @ANYRESDEC=0xee01, @ANYBLOB, @ANYRESDEC, @ANYBLOB="2c6f626a5f726f6c653d2c00434f6ba629c4747bdc0b27e1054d71ea71e30fcddb65ab316d74effbfb05d1542250161cfba28dfe6ed67f52f16163075b4ec3d39e57527cd0fef0f4a38ca7cb7e949bbcbf5dece13c6ca59979ae813a88f4e80f3cafef6d373a9ea31de9a22e6777f3cfc795e3a269ccf7c7119e5610ae9509a5df1aee9c7adb721bd543b5e479b7b75f786943bde2d1b1b34ba9351a5106c87789b9ab4981ac8ba601af14c1df6622b29519a3c0a345716678a9c8c3b6033a262ae010db01ae124d299e13a76c"]) chdir(&(0x7f0000000300)='./file0\x00') read$FUSE(0xffffffffffffffff, &(0x7f0000002d00)={0x2020, 0x0, 0x0}, 0x2020) mkdir(&(0x7f00000001c0)='./file0\x00', 0x0) mkdir(&(0x7f00000009c0)='./file1\x00', 0x0) write$FUSE_INIT(0xffffffffffffffff, &(0x7f0000000380)={0x50, 0xb, r0, {0x7, 0x21, 0x0, 0x800, 0x3f, 0xffff, 0x2, 0x4}}, 0x50) syz_open_dev$vcsa(0x0, 0x0, 0x0) connect(0xffffffffffffffff, &(0x7f0000000740)=@ll={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @link_local}, 0x80) perf_event_open(&(0x7f0000000180)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r1 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r1, 0x0) preadv(r1, &(0x7f0000000280), 0x18, 0x0, 0x0) setxattr$system_posix_acl(&(0x7f0000000580)='./file1\x00', &(0x7f00000005c0)='system.posix_acl_default\x00', &(0x7f0000000400)=ANY=[@ANYBLOB="02000000010000000000000002000000", @ANYRES64, @ANYBLOB="02000000", @ANYRES32=0x0, @ANYBLOB="040000000000040008000000", @ANYRES32=0x0, @ANYBLOB="080000005beb3f9f45000084a92826f464bb00"/31, @ANYRES32=0x0, @ANYBLOB='\b\x00\x00\x00', @ANYRES64=r1, @ANYBLOB='\b\x00\x00\x00', @ANYRES32=0x0, @ANYBLOB='\b\x00\x00\x00', @ANYRES32=0x0, @ANYBLOB="100000000000000020"], 0x5c, 0x0) mkdir(&(0x7f0000000040)='./file1\x00', 0x0) mount$overlay(0x40000d, &(0x7f0000000000)='./file0\x00', &(0x7f00000000c0)='overlay\x00', 0x0, &(0x7f0000000100)={[{@upperdir={'upperdir', 0x3d, './file0'}}, {@lowerdir={'lowerdir', 0x3d, './file0'}}, {@workdir={'workdir', 0x3d, './file1'}, 0x5c}], [], 0xf603000000000000}) mount(0x0, &(0x7f0000000180)='./file0\x00', &(0x7f0000000240)='cgroup2\x00', 0x0, 0x0) 05:19:12 executing program 3: mkdirat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', 0x0) r0 = openat$autofs(0xffffffffffffff9c, &(0x7f0000000080)='/dev/autofs\x00', 0x80, 0x0) unlinkat(r0, &(0x7f0000000200)='./file0\x00', 0x200) syslog(0x3, &(0x7f00000000c0)=""/147, 0x6558a7e3409167e0) r1 = socket(0x52, 0x80000, 0x0) socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000080)={'bridge_slave_1\x00', 0x0}) r4 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r4, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000100)={&(0x7f0000000380)=ANY=[@ANYBLOB="000000000000a6cd6873a25b065e3ee7372500000000000000a0000000000000730737e7956b0fd89650f835be8bdc88e71117220cf1256de7cac07c724dc6e8c5acadb105dda21a9e81006a1699554b1f3ab20acd932e26e3c5b9e5fa09f51be1d67e48fcc05ec1fb122f1885179b2724789d0d95ac7c41d6919da6e74c59c69df335f501f6ee2a6e10fbae3420a30eb0ea4ca62bbf3b109e085564c2f4735cfde01a08f3cbd2c36346faa60ab8", @ANYRES32=r3, @ANYBLOB="0000000000000000140012800b000100697036767469000004000280"], 0x34}}, 0x0) sendmsg$nl_route(r1, &(0x7f0000000300)={&(0x7f0000000240)={0x10, 0x0, 0x0, 0x1000}, 0xc, &(0x7f00000002c0)={&(0x7f0000000280)=@dellink={0x20, 0x11, 0x800, 0x70bd2c, 0x25dfdbff, {0x0, 0x0, 0x0, r3, 0x40004}}, 0x20}, 0x1, 0x0, 0x0, 0x20000040}, 0x8040) r5 = open(&(0x7f0000000e00)='./file0\x00', 0x0, 0x0) mount(&(0x7f0000000200)=ANY=[], &(0x7f0000000180)='./file0\x00', &(0x7f0000000040)='tracefs\x00', 0x2000014, 0x0) r6 = syz_open_procfs(0x0, &(0x7f00000001c0)='mounts\x00') r7 = memfd_create(&(0x7f0000000000), 0x0) r8 = openat(0xffffffffffffffff, &(0x7f0000000340)='./file0\x00', 0x2102, 0x9) read$FUSE(r6, &(0x7f0000000e40)={0x2020, 0x0, 0x0, 0x0, 0x0, 0x0}, 0x2020) r10 = syz_open_dev$cec(&(0x7f0000000480)='/dev/cec#\x00', 0x1, 0x2) kcmp$KCMP_EPOLL_TFD(0x0, r9, 0x7, r10, &(0x7f00000004c0)={r5, r8, 0x3}) sendfile(r7, r6, 0x0, 0xfffffffe) 05:19:12 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xf, 0x0, 0x0, 0x0, [@sadb_key={0x5, 0x9, 0xf0, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x78}, 0x1, 0x7}, 0x0) 05:19:12 executing program 0: chdir(&(0x7f0000000040)='./file0\x00') open(&(0x7f0000000080)='./file0\x00', 0x4142, 0x0) ioctl$F2FS_IOC_GARBAGE_COLLECT(0xffffffffffffffff, 0x4004f506, 0x0) r0 = open(&(0x7f00000000c0)='./file0\x00', 0x40400, 0x0) r1 = open(&(0x7f0000000000)='./file0\x00', 0x141142, 0x8) write$binfmt_elf64(r1, &(0x7f0000000180)=ANY=[], 0x82) tkill(0x0, 0x34) ptrace$cont(0x18, 0x0, 0x0, 0x0) ptrace$setregs(0xd, 0x0, 0x0, &(0x7f0000000080)) r2 = open(&(0x7f00000001c0)='./file0\x00', 0x0, 0x0) r3 = open(&(0x7f0000000000)='./file0\x00', 0x141042, 0x0) perf_event_open(&(0x7f0000000700)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) write$binfmt_elf64(r3, &(0x7f0000000180)=ANY=[], 0x82) r4 = getpid() sched_setattr(r4, &(0x7f0000000040)={0x38, 0x2, 0x0, 0x200, 0x5}, 0x0) rt_sigqueueinfo(r4, 0x1, &(0x7f0000000100)={0x26, 0x6, 0x10001}) sendfile(r3, r2, 0x0, 0xa198) sendfile(r1, r0, 0x0, 0xa198) [ 322.116956] audit: type=1800 audit(1618291152.339:23): pid=11782 uid=0 auid=4294967295 ses=4294967295 op="collect_data" cause="failed(directio)" comm="syz-executor.0" name="file0" dev="sda1" ino=14123 res=0 [ 322.205430] audit: type=1804 audit(1618291152.369:24): pid=11782 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="open_writers" comm="syz-executor.0" name="/root/syzkaller-testdir910713201/syzkaller.a3KxQP/59/file0" dev="sda1" ino=14123 res=1 [ 322.296284] IPVS: ftp: loaded support on port[0] = 21 [ 322.396395] overlayfs: filesystem on './file0' not supported as upperdir [ 322.398350] audit: type=1804 audit(1618291152.369:25): pid=11782 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="ToMToU" comm="syz-executor.0" name="/root/syzkaller-testdir910713201/syzkaller.a3KxQP/59/file0" dev="sda1" ino=14123 res=1 [ 322.538483] audit: type=1804 audit(1618291152.379:26): pid=11782 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="open_writers" comm="syz-executor.0" name="/root/syzkaller-testdir910713201/syzkaller.a3KxQP/59/file0" dev="sda1" ino=14123 res=1 05:19:12 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0x10, 0x0, 0x0, 0x0, [@sadb_key={0x6, 0x9, 0x108, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x80}, 0x1, 0x7}, 0x0) 05:19:12 executing program 3: mkdirat(0xffffffffffffff9c, 0x0, 0x0) r0 = creat(&(0x7f00000001c0)='./file0/../file0\x00', 0x0) read$FUSE(0xffffffffffffffff, 0x0, 0x0) newfstatat(0xffffffffffffff9c, &(0x7f00000000c0)='./file0\x00', 0x0, 0x6000) write$FUSE_INTERRUPT(0xffffffffffffffff, 0x0, 0x0) fanotify_mark(r0, 0x18, 0x0, 0xffffffffffffffff, &(0x7f0000000200)='./file0/../file0\x00') perf_event_open(&(0x7f0000000100)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) timer_create(0x4, &(0x7f00000002c0)={0x0, 0x14, 0x4, @tid=0xffffffffffffffff}, &(0x7f0000000380)) timer_settime(0x0, 0x0, &(0x7f0000000340)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) r1 = openat$pfkey(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/net/pfkey\x00', 0x200200, 0x0) ioctl$BTRFS_IOC_GET_SUPPORTED_FEATURES(r1, 0x80489439, &(0x7f0000000240)) sendto$unix(0xffffffffffffffff, &(0x7f0000000440)="ec60317506806542932b59bc0b0a3a32cd7a038db18dff57aa68a64269022e58e0bbe7580b4d5ec19f61b5894be3f6d0247d7b79e15197a6b930acc06182cb453163b085d2f9d8c9904f50dd028af3ab94e68f04d1e665344768ae5450fdb731614cfd3d22597fc8162766b85507385aa1cee087f68343f0320f9f98aa7467683c13d398fa2a2088305fa8313beff3107915f49b3fa69e44bc9668148466a0115e58932e55e8ac6c9b206fd1c5eefcb4cf23dfc2f6ee840400e4c660f6abfd25d56fc261d51b102339e64d0d417169db47c4dd37d1170d6578f212b8ecd8a5", 0xdf, 0x10, &(0x7f0000000540)=@file={0x0, './file0\x00'}, 0x6e) timer_create(0x0, &(0x7f0000000100)={0x0, 0x14, 0x0, @thr={0x0, 0x0}}, &(0x7f0000000300)) r2 = syz_open_procfs(0x0, &(0x7f00000000c0)='net/netstat\x00') r3 = openat$sysctl(0xffffffffffffff9c, &(0x7f0000000040)='/proc/sys/vm/compact_memory\x00', 0x1, 0x0) r4 = socket$kcm(0x10, 0x2, 0x10) sendmsg$kcm(r4, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000100)=[{&(0x7f00000000c0)="2e0000002200813de05b80ecdb4cb904044865160b00160002000000740004140e00cabd44cd4c14931100020d00", 0x2e}], 0x1}, 0x0) copy_file_range(r2, 0x0, r3, 0x0, 0x5, 0x300000000000000) accept$unix(r2, &(0x7f00000003c0), 0x0) io_setup(0x3, &(0x7f0000000140)) 05:19:12 executing program 2: perf_event_open(&(0x7f0000000000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4000000003c43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffffffffffffffd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0xe1, 0x55cb3d50}, 0x0, 0x400, 0x0, 0x0, 0x0, 0xfffffffc}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x10) ioctl$DRM_IOCTL_GET_CLIENT(0xffffffffffffffff, 0xc0286405, 0x0) syz_open_dev$sg(0x0, 0x0, 0x17f8c2) sched_setscheduler(0x0, 0x3, 0x0) r0 = syz_open_dev$video(&(0x7f0000002880)='/dev/video#\x00', 0x7, 0x0) preadv(r0, &(0x7f0000003dc0)=[{&(0x7f0000002b80)=""/190, 0xbe}, {0x0}], 0x2, 0x0, 0x0) sendmsg$TIPC_NL_KEY_SET(0xffffffffffffffff, 0x0, 0x4) syz_usbip_server_init(0x3) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) sendmsg$NLBL_MGMT_C_ADD(r1, &(0x7f0000002500)={&(0x7f00000023c0)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000024c0)={0x0}}, 0x0) r2 = syz_genetlink_get_family_id$nl802154(&(0x7f00000000c0)='nl802154\x00', 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_802154(0xffffffffffffffff, 0x8933, &(0x7f0000000100)={'wpan4\x00', 0x0}) sendmsg$NL802154_CMD_SET_CHANNEL(r1, &(0x7f00000001c0)={&(0x7f0000000080)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f0000000180)={&(0x7f0000000140)={0x30, r2, 0x300, 0x70bd2a, 0x25dfdbff, {}, [@NL802154_ATTR_IFINDEX={0x8}, @NL802154_ATTR_IFINDEX={0x8, 0x3, r3}, @NL802154_ATTR_WPAN_DEV={0xc, 0x6, 0x3}]}, 0x30}, 0x1, 0x0, 0x0, 0x20000001}, 0x2000c000) [ 322.637997] audit: type=1804 audit(1618291152.379:27): pid=11782 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="ToMToU" comm="syz-executor.0" name="/root/syzkaller-testdir910713201/syzkaller.a3KxQP/59/file0" dev="sda1" ino=14123 res=1 [ 322.810125] vhci_hcd vhci_hcd.0: pdev(2) rhport(0) sockfd(4) [ 322.816138] vhci_hcd vhci_hcd.0: devid(0) speed(3) speed_str(high-speed) 05:19:13 executing program 5: r0 = perf_event_open(&(0x7f0000000440)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) openat$ttyS3(0xffffffffffffff9c, &(0x7f0000000840)='/dev/ttyS3\x00', 0x0, 0x0) r1 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000)='/dev/kvm\x00', 0x0, 0x0) r2 = ioctl$KVM_CREATE_VM(r1, 0xae01, 0x0) r3 = ioctl$KVM_CREATE_VM(r1, 0xae01, 0x0) r4 = ioctl$TIOCGPTPEER(r0, 0x5441, 0x3) dup2(r4, r1) ioctl$KVM_CREATE_VCPU(r2, 0xae41, 0x2) ioctl$KVM_SET_USER_MEMORY_REGION(r3, 0x4020ae46, 0x0) r5 = ioctl$KVM_CREATE_VCPU(r3, 0xae41, 0x0) r6 = openat$dlm_monitor(0xffffffffffffff9c, &(0x7f00000000c0)='/dev/dlm-monitor\x00', 0x4100, 0x0) r7 = openat(0xffffffffffffffff, &(0x7f0000001940)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r7, 0x0) preadv(r7, &(0x7f0000000280), 0x18, 0x0, 0x0) syz_kvm_setup_cpu$x86(r6, r7, &(0x7f0000fe8000/0x18000)=nil, &(0x7f0000000180)=[@text32={0x20, &(0x7f0000000100)="c74424000c000000c74424020c4b0000c7442406000000000f011c24c4e16d71e2f5f30f3066ba2100b8cc000000eff30f320f01c3b9a90a0000b807000000ba000000000f30c4e160159100400000b9a60b0000b868000000ba000000000f300f01b900000100", 0x67}], 0x1, 0x60, &(0x7f00000001c0)=[@efer={0x2, 0x80}], 0x1) syz_kvm_setup_cpu$x86(r3, r5, &(0x7f0000fe7000/0x18000)=nil, &(0x7f0000000080)=[@textreal={0x8, &(0x7f0000000040)="dd4500bad00466ed66b9a109000066b80c00000066ba000000000f300f0176130f381cd61943060f0f866e001cba6100ed0fc7f967a7", 0x36}], 0x1, 0x68, &(0x7f00000000c0), 0x0) sendmsg$IPSET_CMD_TYPE(0xffffffffffffffff, 0x0, 0x0) ioctl$KVM_RUN(r5, 0xae80, 0x0) 05:19:13 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xf, 0x0, 0x0, 0x0, [@sadb_key={0x5, 0x9, 0xf8, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x78}, 0x1, 0x7}, 0x0) 05:19:13 executing program 4: r0 = socket$inet6_sctp(0xa, 0x5, 0x84) sendmmsg$inet(r0, &(0x7f0000003c40)=[{{&(0x7f0000000100)={0x2, 0x0, @loopback}, 0x10, &(0x7f00000001c0)=[{&(0x7f0000000140)="1e", 0x1}], 0x1}}], 0x1, 0x0) r1 = openat$pfkey(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/net/pfkey\x00', 0x400000, 0x0) getsockopt$inet6_mreq(r0, 0x29, 0x15, &(0x7f0000000080)={@ipv4={[], [], @multicast1}, 0x0}, &(0x7f00000000c0)=0x14) socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$sock_SIOCGIFINDEX(r3, 0x8933, &(0x7f0000000080)={'bridge_slave_1\x00', 0x0}) r5 = socket$nl_route(0x10, 0x3, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, 0xffffffffffffffff, 0x0) preadv(0xffffffffffffffff, &(0x7f0000000280), 0x18, 0x0, 0x0) setsockopt$RXRPC_UPGRADEABLE_SERVICE(0xffffffffffffffff, 0x110, 0x5, &(0x7f00000002c0)=[0x3, 0x1], 0x2) sendmsg$nl_route(r5, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000100)={&(0x7f0000000140)=@newlink={0x34, 0x10, 0x401, 0x0, 0x0, {0x0, 0x0, 0x0, r4}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @ip6vti={{0xb, 0x1, 'ip6vti\x00'}, {0x4}}}]}, 0x34}}, 0x0) ioctl$sock_ipv6_tunnel_SIOCDEL6RD(0xffffffffffffffff, 0x89fa, &(0x7f0000000180)={'syztnl1\x00', &(0x7f0000000200)={'sit0\x00', 0x0, 0x0, 0x5, 0x81, 0x5, 0x32, @mcast2, @initdev={0xfe, 0x88, [], 0x1, 0x0}, 0x0, 0x20, 0xd7, 0x3}}) socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$sock_SIOCGIFINDEX(r7, 0x8933, &(0x7f0000000080)={'bridge_slave_1\x00', 0x0}) r9 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r9, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000100)={&(0x7f0000000140)=@newlink={0x34, 0x10, 0x401, 0x0, 0x0, {0x0, 0x0, 0x0, r8}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @ip6vti={{0xb, 0x1, 'ip6vti\x00'}, {0x4}}}]}, 0x34}}, 0x0) ioctl$ifreq_SIOCGIFINDEX_wireguard(r0, 0x8933, &(0x7f0000000280)={'wg1\x00', 0x0}) sendmsg$nl_route_sched(r1, &(0x7f0000001440)={&(0x7f0000000040)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f0000001400)={&(0x7f0000001740)=@newtaction={0x1090, 0x30, 0x200, 0x70bd2c, 0x25dfdbfc, {}, [{0x8bc, 0x1, [@m_simple={0x74, 0x18, 0x0, 0x0, {{0xb, 0x1, 'simple\x00'}, {0x3c, 0x2, 0x0, 0x1, [@TCA_DEF_PARMS={0x18, 0x2, {0x6, 0x401, 0x0, 0x81, 0x754b}}, @TCA_DEF_DATA={0x5, 0x3, '\x00'}, @TCA_DEF_PARMS={0x18, 0x2, {0x8, 0x8, 0x8, 0x7, 0x8}}]}, {0xe, 0x6, "6f9f6c1495309940d96f"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x4, 0x2}}}}, @m_ipt={0x11c, 0x1c, 0x0, 0x0, {{0x8, 0x1, 'ipt\x00'}, {0xe4, 0x2, 0x0, 0x1, [@TCA_IPT_TABLE={0x24, 0x1, 'nat\x00'}, @TCA_IPT_TARG={0x96, 0x6, {0xbb3f, 'nat\x00', 0x40, 0xffff, "52049ee0c5798f84226d126a68708280b316a1a1c056ba61289beef11c2c280c81bc7558f0c25f81f5a564ce34226147adc8177b28f20056d591685168a8abc576b61f5dcad4db7e8a91fe28612ceb3cb5b6fd930a132013c6a3dd772cf15c6f9c264853d6ebb738645efa7a"}}, @TCA_IPT_TABLE={0x24, 0x1, 'filter\x00'}]}, {0x13, 0x6, "2c9d5c660a561b7ca68f253469f6e7"}, {0xc}, {0xc, 0x8, {0x2, 0x2}}}}, @m_skbmod={0x118, 0x18, 0x0, 0x0, {{0xb, 0x1, 'skbmod\x00'}, {0x7c, 0x2, 0x0, 0x1, [@TCA_SKBMOD_PARMS={0x24, 0x2, {{0x100, 0x3, 0xffffffffffffffff, 0x8, 0x3}, 0xf}}, @TCA_SKBMOD_ETYPE={0x6, 0x5, 0x1f}, @TCA_SKBMOD_DMAC={0xa, 0x3, @local}, @TCA_SKBMOD_DMAC={0xa, 0x3, @local}, @TCA_SKBMOD_SMAC={0xa}, @TCA_SKBMOD_SMAC={0xa, 0x4, @dev={[], 0x29}}, @TCA_SKBMOD_ETYPE={0x6, 0x5, 0x800}, @TCA_SKBMOD_ETYPE={0x6, 0x5, 0x100}, @TCA_SKBMOD_SMAC={0xa}]}, {0x73, 0x6, "dde0e974bbbaa98b2d411cc98a16f3add4be96548bc4c75d4fda545b3fd28d936ebd4e92c89c6efe8798126cbc473c5efb439a559289afbee846b92ad9fc7b4f3c95fb196e8202b90d6cb88753a6afe88908de482b60a49a2caf02eca9a5dd0d1b97c42dbd5a8b22a1deac686634a4"}, {0xc}, {0xc, 0x8, {0x3, 0x2}}}}, @m_ctinfo={0xf4, 0x19, 0x0, 0x0, {{0xb, 0x1, 'ctinfo\x00'}, {0x1c, 0x2, 0x0, 0x1, [@TCA_CTINFO_ACT={0x18, 0x3, {0x57, 0xffffffff, 0x20000000, 0x2, 0x9}}]}, {0xad, 0x6, "03637ff7a812e0606f411f6a53a7d3bc2359bb490d6f4494c85ea3f73f9ef8defffb570d80f19d2d549ae282bfa0e29cf8564868b878eff0176988d745ed19f7356b2e90e8fadc722bf68d22e9bfe05b9d4946dfeaa1841a26c23534513d56e2714767c5a743101322d4ef3388f3295fb034015ed874646b7dff0fae834c0f3fdeeb1ef80e1edc96ea5e12959675020fe2fd20d9bb4e5aaeffbefda5f6348018b64101150ad1c94ad0"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x2}}}}, @m_csum={0x128, 0x8, 0x0, 0x0, {{0x9, 0x1, 'csum\x00'}, {0xc8, 0x2, 0x0, 0x1, [@TCA_CSUM_PARMS={0x1c, 0x1, {{0x581, 0x6, 0x0, 0x6}, 0x48}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x1, 0x8, 0xffffffffbffffff8, 0x928, 0x20}, 0x6b}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x6, 0x8, 0x4, 0x8, 0xc}, 0x30}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x2e6, 0xfffffff7, 0x5, 0x401, 0x7}, 0x13}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x200, 0x3, 0xc, 0x0, 0x2}, 0x51}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x8, 0x0, 0x8, 0x3fe0, 0x5}, 0x68}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x3, 0x2, 0x7, 0x5, 0x6}, 0x68}}]}, {0x37, 0x6, "035858c0f565ea920ab1e6fd9c19ce2719f83a3d9abafd9282f5119402d132cc188cc835df2ea4600e7e45928dcd5a672eea47"}, {0xc, 0x7, {0x1, 0x1}}, {0xc, 0x8, {0x0, 0x3}}}}, @m_sample={0x140, 0x20, 0x0, 0x0, {{0xb, 0x1, 'sample\x00'}, {0x3c, 0x2, 0x0, 0x1, [@TCA_SAMPLE_PARMS={0x18, 0x2, {0x8001, 0x4, 0xa, 0x0, 0x7}}, @TCA_SAMPLE_PSAMPLE_GROUP={0x8, 0x5, 0x80}, @TCA_SAMPLE_PARMS={0x18, 0x2, {0x8, 0xc7, 0x5}}]}, {0xd9, 0x6, "eaa5be67fd995bb97c72810626170ac368b39c03d29e972285aaf027b40d81038c1f7d408d728b73d8518349db7a889bffc335f4a2d3d72817b4b1625a88969f505926a67849321846805b9f433dc380958336e92a0c7401065bdc9fbcef23b3a806673bbd163fa6e0655fe6bc99bfc45b9911f17f9ccf08634b3fe2e2c493fa3ac3c230b7690d36860f1105fc4c92938a26209888755e0ee8140b16e600fc9ad634e35830e78be8ad8cb0d0e57b6e1a4a65d5dbeebfebfacc1626d7f8a94c88719269c279ba6b6f9207f2cb045336c4bc6e5a1fac"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x3, 0x1}}}}, @m_vlan={0xbc, 0x1d, 0x0, 0x0, {{0x9, 0x1, 'vlan\x00'}, {0x54, 0x2, 0x0, 0x1, [@TCA_VLAN_PARMS={0x1c, 0x2, {{0x3, 0xffff, 0x5, 0x1, 0x9}, 0x1}}, @TCA_VLAN_PUSH_VLAN_PROTOCOL={0x6, 0x4, 0x8100}, @TCA_VLAN_PARMS={0x1c, 0x2, {{0x2, 0xfc0000, 0x2, 0x238, 0x4276}, 0x2}}, @TCA_VLAN_PUSH_VLAN_ID={0x6, 0x3, 0xd2b}, @TCA_VLAN_PUSH_VLAN_PRIORITY={0x5, 0x6, 0x1}]}, {0x40, 0x6, "ead3c2b85d2563e9a6f06598417e02185cfed6bc62d54b4a94e7464d0c10037ea53a065b2c18dff37e02007073a6a4d2d844f821c3c130070a05f63b"}, {0xc}, {0xc, 0x8, {0x3, 0x3}}}}, @m_mirred={0x1f8, 0xe, 0x0, 0x0, {{0xb, 0x1, 'mirred\x00'}, {0x104, 0x2, 0x0, 0x1, [@TCA_MIRRED_PARMS={0x20, 0x2, {{0x101, 0x32a, 0xedde2d7b215a0f7f, 0xffffffff, 0x3ff}, 0x1, r2}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x1, 0xffff8000, 0x3, 0x7, 0x3ff}, 0x1, r4}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0xb3, 0x80000000, 0xffffffffefffffff, 0x1, 0xc469}, 0x2}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x7ff, 0x7, 0x20000000, 0x5af, 0xfe9}, 0x1, r6}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x1b38, 0x8, 0x10000000, 0x6, 0x4}, 0x4, r8}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x327, 0x5, 0x6}, 0x3}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x9, 0x6, 0x7, 0x95, 0x7ff}, 0x1}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x1, 0x9, 0x3, 0x7, 0x5d1}, 0x3}}]}, {0xcb, 0x6, "cf21598739a6fec0f6a1adef2463085f532b21e7ef8c99e285b8c00eeb53cd23241287b69b50479bc1574bfb8666cd0692a16b85cf190aec0495f27429b0821d3cc5e22c7d8041eb63b8eb4cfc27c5070c6ce23229d73364d6d9ac5da22efb69ea9e2223cac2b2909a2274f81860bce431ba6cb9e26008b995312d6cdddb12fc4d32552ed443801abb0bede3d6e5629e3887062b90c61bde25a54bd780e75a15445033548910d280b5f298d356223ed20d7e363abe8768746291cb2cfca8cc41f6a009ca07d7ba"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x2, 0x3}}}}]}, {0x7c0, 0x1, [@m_mirred={0xec, 0x1a, 0x0, 0x0, {{0xb, 0x1, 'mirred\x00'}, {0xa4, 0x2, 0x0, 0x1, [@TCA_MIRRED_PARMS={0x20, 0x2, {{0x0, 0x8e, 0x8, 0x0, 0x5}, 0x4, r10}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x1c, 0x7fff, 0x7, 0x20, 0xaf8}, 0x4}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x2, 0x1ff0000, 0x4, 0x4, 0x8001}, 0x1}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0x80000000, 0x4a5, 0x6, 0x6, 0x1}, 0x1}}, @TCA_MIRRED_PARMS={0x20, 0x2, {{0xba, 0x40, 0x3, 0x3, 0x99b1}, 0x1}}]}, {0x1e, 0x6, "e600646f94d34ea3e1585e526dd21d0b4b47c56852c41bdbd30f"}, {0xc}, {0xc, 0x8, {0x1}}}}, @m_vlan={0x150, 0x1a, 0x0, 0x0, {{0x9, 0x1, 'vlan\x00'}, {0x44, 0x2, 0x0, 0x1, [@TCA_VLAN_PARMS={0x1c, 0x2, {{0x8, 0xfff, 0x3, 0xffffffff, 0x58e}, 0x2}}, @TCA_VLAN_PUSH_VLAN_ID={0x6, 0x3, 0xc64}, @TCA_VLAN_PARMS={0x1c, 0x2, {{0x1, 0x800, 0x10000000, 0xfff, 0x5}, 0x1}}]}, {0xe3, 0x6, "b2612d6fa5636e7eaec8e06bb7dfd3382d2690c8eb09741beb77f65791daa1524fb00aa669d458d9827ab90e3f39250991fb8388bcdd24567d9f28539215c2ec5f60e4ee363f74a443a4d1ff13c3ed9e340aba076fe638033b981306c36618b7fecf3540c88e3763e1f2f4e7c06ac219d3fc46091e05c500ba81bd6b5b9f9f274be08ec7e0235eb1ffb1b971d671355a3eb1a09fda4106f92f9528e32330377c02ed2a42577ef521b799903ef23956dcca61d1a0531061ed2a30c18c1604de61a259489136e5c10020b572ad6f79ac42d5b6c4d8cae5f9bd4e0173a24a4600"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x3, 0x3}}}}, @m_ife={0x8c, 0x1e, 0x0, 0x0, {{0x8, 0x1, 'ife\x00'}, {0x40, 0x2, 0x0, 0x1, [@TCA_IFE_DMAC={0xa, 0x3, @local}, @TCA_IFE_PARMS={0x1c, 0x1, {{0x1000, 0xbf, 0x20000000, 0xede, 0x4}, 0x1}}, @TCA_IFE_METALST={0x14, 0x6, [@IFE_META_SKBMARK={0x4, 0x1, @void}, @IFE_META_PRIO={0x4, 0x3, @void}, @IFE_META_SKBMARK={0x8, 0x1, @val=0x9}]}]}, {0x28, 0x6, "a163143fc2cac3c4a6c407ca958eff2c705d9d494156162ab7222c9a6b5e77ee8351cc1f"}, {0xc, 0x7, {0x1, 0x1}}, {0xc, 0x8, {0x2}}}}, @m_simple={0x164, 0x16, 0x0, 0x0, {{0xb, 0x1, 'simple\x00'}, {0x84, 0x2, 0x0, 0x1, [@TCA_DEF_DATA={0x5, 0x3, '\x00'}, @TCA_DEF_DATA={0x5, 0x3, '\x00'}, @TCA_DEF_PARMS={0x18, 0x2, {0x4, 0x5, 0x1, 0x4be, 0x5}}, @TCA_DEF_DATA={0xa, 0x3, '\\-$&^\x00'}, @TCA_DEF_PARMS={0x18, 0x2, {0x1, 0x8, 0x7, 0x2, 0x5}}, @TCA_DEF_DATA={0xe, 0x3, ':./\\/\xb6(\\,\x00'}, @TCA_DEF_DATA={0x9, 0x3, '-+*/\x00'}, @TCA_DEF_DATA={0xb, 0x3, 'o\\[--(\x00'}, @TCA_DEF_DATA={0x9, 0x3, ':-@/\x00'}]}, {0xb7, 0x6, "3c7a62374a322c004936e6ae3b9c1c98a537e04fdc7b03061d9a3098a570306bd4906808e906da89fcbcd98cdba2df89ab2a5232e26fe761abf83c5eaa2e38d134e030a821f81a2c9735355a95f240b30b756e0a0c24d0edac8eaa48c2a9c9343307b9266d09d4e545fa281a868deeeab499116dc93bb0fed442acff4d8da1c31c901eca7ebdf88e2240726da327bb3290c00ff651cd6a5a046b49396933adbddd08015aba2b71d548cf3e0698486e5a449fdb"}, {0xc, 0x7, {0x1}}, {0xc}}}, @m_skbedit={0x124, 0x1, 0x0, 0x0, {{0xc, 0x1, 'skbedit\x00'}, {0x2c, 0x2, 0x0, 0x1, [@TCA_SKBEDIT_QUEUE_MAPPING={0x6, 0x4, 0x4590}, @TCA_SKBEDIT_PARMS={0x18, 0x2, {0x3, 0x8000, 0x4, 0x0, 0xcd}}, @TCA_SKBEDIT_MARK={0x8, 0x5, 0x5abe}]}, {0xd0, 0x6, "a3c6d8f13a203242cdb36cf45eade7ed4aa1eb14c60227c0a369a9115d04a68bdffb3d05d20b3537dcf75af9db1e9cbdd5410aa1df68a96e1244c2b8616bef433493abf53c783a286c675336a1a67c235650871b9c65f4a73497ee4809390afd94568fa75cdd3a6ef5bf413c51a793cb18ea9cfdfe8676ebc1a06b3bfe1bddfcf25c3179c425816ca6fca7d40d8a275c6844658888e5fb027af7c7af8f52d1e7a7f64f2f04575752da5137746102489c5009f91cefcad1973ea3573ea83bc019b41a583afb6efd30597c77d3"}, {0xc, 0x7, {0x1, 0x1}}, {0xc}}}, @m_xt={0x74, 0xb, 0x0, 0x0, {{0x7, 0x1, 'xt\x00'}, {0x40, 0x2, 0x0, 0x1, [@TCA_IPT_HOOK={0x8, 0x2, 0x3}, @TCA_IPT_HOOK={0x8, 0x2, 0x1}, @TCA_IPT_TABLE={0x24, 0x1, 'raw\x00'}, @TCA_IPT_HOOK={0x8, 0x2, 0x3}]}, {0xd, 0x6, "23566497504ab4fea7"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x2}}}}, @m_nat={0x1f8, 0x8, 0x0, 0x0, {{0x8, 0x1, 'nat\x00'}, {0xf4, 0x2, 0x0, 0x1, [@TCA_NAT_PARMS={0x28, 0x1, {{0xba5, 0xfffffffa, 0xffffffffffffffff, 0x0, 0x6}, @rand_addr=0x64010100, @private=0xa010101, 0xff000000, 0x1}}, @TCA_NAT_PARMS={0x28, 0x1, {{0x7, 0xffffffff, 0x5, 0xbc1, 0x7}, @empty, @remote, 0xff}}, @TCA_NAT_PARMS={0x28, 0x1, {{0x40, 0x8, 0x7, 0x80, 0x7a0}, @dev={0xac, 0x14, 0x14, 0x38}, @remote, 0xffffffff, 0x1}}, @TCA_NAT_PARMS={0x28, 0x1, {{0x1, 0x1b8e, 0x2, 0xa0e, 0x6}, @multicast2, @empty, 0xffffffff}}, @TCA_NAT_PARMS={0x28, 0x1, {{0x9, 0x8, 0x5, 0x9, 0x6}, @multicast1, @empty, 0xff, 0x1}}, @TCA_NAT_PARMS={0x28, 0x1, {{0xe39, 0x9, 0x1, 0x1, 0x2}, @dev={0xac, 0x14, 0x14, 0x31}, @rand_addr=0x64010101, 0xffffff00, 0x1}}]}, {0xdf, 0x6, "2836e1d8769485d020fec8089368643e2c71e84f155bc73f4dc7c72b47c3147bf3c2396a89d4ecf97cb279a1339ef188485af17728e69cd437c330a2574b6aab7b8c4fbe74a2c042107725dad83e3be0854b0daf2304a0e64cbe22eab0c4e4b5295865b46ce2ab08219c8f7f3fc5b1c186358437052d4d6e107a921ec71f2d10928090cb8fb991e862598d471bcbf34769431f1c79f24fd0c05f68d64d225dc04097f4d0fd373fbdaf52329068f48aab36e5c95d7c340de83b695b49f5a464caaa3bae947b631d151db6677fbb4703dea38fcf9523e41c8f0fe6e8"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x0, 0x6}}}}]}]}, 0x1090}, 0x1, 0x0, 0x0, 0x20000000}, 0x1) r11 = creat(&(0x7f0000001480)='./file0\x00', 0x42) sendmsg$nl_route_sched(r11, &(0x7f0000001700)={&(0x7f00000014c0)={0x10, 0x0, 0x0, 0x1}, 0xc, &(0x7f00000016c0)={&(0x7f0000001500)=@deltaction={0x198, 0x31, 0xd3c, 0x70bd28, 0x25dfdbfc, {}, [@TCA_ACT_TAB={0x30, 0x1, [{0xc, 0x11, 0x0, 0x0, @TCA_ACT_KIND={0x7, 0x1, 'xt\x00'}}, {0xc, 0x7, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x4}}, {0x14, 0x20, 0x0, 0x0, @TCA_ACT_KIND={0xd, 0x1, 'connmark\x00'}}]}, @TCA_ACT_TAB={0x1c, 0x1, [{0xc, 0x12, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x10000}}, {0xc, 0x1e, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x800}}]}, @TCA_ACT_TAB={0x20, 0x1, [{0x10, 0x19, 0x0, 0x0, @TCA_ACT_KIND={0xa, 0x1, 'pedit\x00'}}, {0xc, 0x8, 0x0, 0x0, @TCA_ACT_KIND={0x8, 0x1, 'ipt\x00'}}]}, @TCA_ACT_TAB={0x14, 0x1, [{0x10, 0xf, 0x0, 0x0, @TCA_ACT_KIND={0xb, 0x1, 'mirred\x00'}}]}, @TCA_ACT_TAB={0x54, 0x1, [{0x14, 0x19, 0x0, 0x0, @TCA_ACT_KIND={0xd, 0x1, 'connmark\x00'}}, {0xc, 0x1e, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x13b}}, {0xc, 0x15, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x5}}, {0xc, 0xe, 0x0, 0x0, @TCA_ACT_KIND={0x8, 0x1, 'nat\x00'}}, {0xc, 0x6, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x1}}, {0xc, 0xb, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x6}}]}, @TCA_ACT_TAB={0x6c, 0x1, [{0xc, 0xf, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x99e}}, {0xc, 0x9, 0x0, 0x0, @TCA_ACT_KIND={0x8, 0x1, 'ipt\x00'}}, {0xc, 0x1f, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0xfffffff7}}, {0xc, 0x7, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x8000}}, {0x10, 0x1d, 0x0, 0x0, @TCA_ACT_KIND={0xb, 0x1, 'mirred\x00'}}, {0xc, 0x6, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0xfff}}, {0xc, 0x6, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x8}}, {0x10, 0x10, 0x0, 0x0, @TCA_ACT_KIND={0xb, 0x1, 'police\x00'}}]}, @TCA_ACT_TAB={0x44, 0x1, [{0x10, 0xff, 0x0, 0x0, @TCA_ACT_KIND={0x9, 0x1, 'csum\x00'}}, {0xc, 0xb, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0xfffffff9}}, {0xc, 0x1c, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x2}}, {0xc, 0x17, 0x0, 0x0, @TCA_ACT_KIND={0x8, 0x1, 'nat\x00'}}, {0xc, 0x2, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x3}}]}]}, 0x198}, 0x1, 0x0, 0x0, 0x20004855}, 0x20000000) 05:19:13 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xf, 0x0, 0x0, 0x0, [@sadb_key={0x5, 0x9, 0xf8, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x78}, 0x1, 0x7}, 0x0) [ 323.026012] audit: type=1804 audit(1618291153.249:28): pid=11859 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="ToMToU" comm="syz-executor.0" name="/root/syzkaller-testdir910713201/syzkaller.a3KxQP/59/file0" dev="sda1" ino=14123 res=1 [ 323.098423] audit: type=1804 audit(1618291153.299:29): pid=11859 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="open_writers" comm="syz-executor.0" name="/root/syzkaller-testdir910713201/syzkaller.a3KxQP/59/file0" dev="sda1" ino=14123 res=1 05:19:13 executing program 0: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0x10, 0x0, 0x0, 0x0, [@sadb_key={0x6, 0x9, 0x108, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x80}, 0x1, 0x7}, 0x0) [ 323.140305] usb 13-1: new high-speed USB device number 2 using vhci_hcd 05:19:13 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xf, 0x0, 0x0, 0x0, [@sadb_key={0x5, 0x9, 0xf8, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x78}, 0x1, 0x7}, 0x0) 05:19:13 executing program 0: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0x10, 0x0, 0x0, 0x0, [@sadb_key={0x6, 0x9, 0x108, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x80}, 0x1, 0x7}, 0x0) [ 323.281458] audit: type=1804 audit(1618291153.299:30): pid=11860 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="ToMToU" comm="syz-executor.0" name="/root/syzkaller-testdir910713201/syzkaller.a3KxQP/59/file0" dev="sda1" ino=14123 res=1 05:19:13 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xf, 0x0, 0x0, 0x0, [@sadb_key={0x5, 0x9, 0x100, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x78}, 0x1, 0x7}, 0x0) 05:19:13 executing program 0: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0x10, 0x0, 0x0, 0x0, [@sadb_key={0x6, 0x9, 0x108, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b9c"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x80}, 0x1, 0x7}, 0x0) 05:19:13 executing program 1: r0 = socket$key(0xf, 0x3, 0x2) sendmsg$key(r0, &(0x7f0000000040)={0x3, 0x0, &(0x7f0000000340)={&(0x7f0000000180)={0x2, 0x3, 0x0, 0x3, 0xf, 0x0, 0x0, 0x0, [@sadb_key={0x5, 0x9, 0x100, 0x0, "6b590e655b352ac12cfb0349f905dd6591f367fc20445b2fe1a4ca6c0f00fa5b"}, @sadb_address={0x3, 0x6}, @sadb_sa={0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x16}, @sadb_address={0x3, 0x5, 0x0, 0x0, 0x0, @in={0x2, 0x0, @broadcast}}]}, 0x78}, 0x1, 0x7}, 0x0) [ 323.520816] vhci_hcd: connection reset by peer [ 323.526925] vhci_hcd: stop threads [ 323.531379] vhci_hcd: release socket [ 323.543248] vhci_hcd: disconnect device [ 324.030055] vhci_hcd vhci_hcd.0: pdev(2) rhport(1) sockfd(4) [ 324.035889] vhci_hcd vhci_hcd.0: devid(0) speed(3) speed_str(high-speed) [ 324.051572] vhci_hcd: connection closed [ 324.052006] vhci_hcd: stop threads [ 324.059608] vhci_hcd: release socket [ 324.064944] kasan: CONFIG_KASAN_INLINE enabled [ 324.069526] kasan: GPF could be caused by NULL-ptr deref or user memory access [ 324.076878] general protection fault: 0000 [#1] PREEMPT SMP KASAN [ 324.083094] Modules linked in: [ 324.086278] CPU: 1 PID: 11840 Comm: syz-executor.2 Not tainted 4.14.230-syzkaller #0 [ 324.094148] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 [ 324.103500] task: ffff88809fc840c0 task.stack: ffff88803de00000 [ 324.109553] RIP: 0010:__lock_acquire+0x1cc/0x3f20 [ 324.114381] RSP: 0018:ffff88803de07868 EFLAGS: 00010006 [ 324.119730] RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000 [ 324.126992] RDX: 00000000000000fc RSI: 0000000000000000 RDI: 00000000000007e0 [ 324.134251] RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000001 [ 324.141511] R10: 0000000000000001 R11: ffff88809fc840c0 R12: 00000000000007e0 [ 324.148768] R13: 0000000000000000 R14: 0000000000000001 R15: ffffffff8bebbd40 [ 324.156026] FS: 00007fc95da87700(0000) GS:ffff8880ba500000(0000) knlGS:0000000000000000 [ 324.164239] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 324.170194] CR2: 00007fcf43306000 CR3: 000000009b5e9000 CR4: 00000000001406e0 [ 324.177450] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 324.181618] vhci_hcd: disconnect device [ 324.184702] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 324.195932] Call Trace: [ 324.198514] ? mark_held_locks+0xa6/0xf0 [ 324.202558] ? _raw_spin_unlock_irq+0x24/0x80 [ 324.207576] ? trace_hardirqs_on_caller+0x3a8/0x580 [ 324.212632] ? _raw_spin_unlock_irq+0x5a/0x80 [ 324.217150] ? finish_task_switch+0x178/0x610 [ 324.221627] ? finish_task_switch+0x14d/0x610 [ 324.226148] ? trace_hardirqs_on+0x10/0x10 [ 324.230359] ? __schedule+0x893/0x1de0 [ 324.234329] ? io_schedule_timeout+0x140/0x140 [ 324.238886] lock_acquire+0x170/0x3f0 [ 324.242685] ? try_to_wake_up+0x6a/0x1100 [ 324.246811] _raw_spin_lock_irqsave+0x8c/0xc0 [ 324.251289] ? try_to_wake_up+0x6a/0x1100 [ 324.255454] try_to_wake_up+0x6a/0x1100 [ 324.259405] ? migrate_swap_stop+0x880/0x880 [ 324.263794] store_attach+0x577/0x990 [ 324.267572] ? valid_port+0x180/0x180 [ 324.271348] ? kernfs_fop_write+0x1d9/0x440 [ 324.275644] ? valid_port+0x180/0x180 [ 324.279421] dev_attr_store+0x56/0x80 [ 324.283199] ? component_del+0x500/0x500 [ 324.287259] sysfs_kf_write+0x106/0x160 [ 324.291208] ? sysfs_file_ops+0x190/0x190 [ 324.295448] kernfs_fop_write+0x289/0x440 [ 324.299570] __vfs_write+0xe4/0x630 [ 324.303174] ? kernfs_vma_page_mkwrite+0x230/0x230 [ 324.308087] ? debug_check_no_obj_freed+0x2c0/0x680 [ 324.313097] ? kernel_read+0x110/0x110 [ 324.316963] ? rcu_lockdep_current_cpu_online+0xed/0x140 [ 324.322392] ? rcu_read_lock_sched_held+0x16c/0x1d0 [ 324.327385] vfs_write+0x17f/0x4d0 [ 324.330901] SyS_write+0xf2/0x210 [ 324.334335] ? SyS_read+0x210/0x210 [ 324.337948] ? __do_page_fault+0x159/0xad0 [ 324.342158] ? do_syscall_64+0x4c/0x640 [ 324.346106] ? SyS_read+0x210/0x210 [ 324.349707] do_syscall_64+0x1d5/0x640 [ 324.353573] entry_SYSCALL_64_after_hwframe+0x46/0xbb [ 324.358750] RIP: 0033:0x41913f [ 324.361923] RSP: 002b:00007fc95da86b90 EFLAGS: 00000293 ORIG_RAX: 0000000000000001 [ 324.369665] RAX: ffffffffffffffda RBX: 0000000000000008 RCX: 000000000041913f [ 324.376919] RDX: 0000000000000008 RSI: 00007fc95da86be0 RDI: 0000000000000006 [ 324.384193] RBP: 0000000000000006 R08: 0000000000000000 R09: 00007fc95da86b30 [ 324.391589] R10: 0000000000000000 R11: 0000000000000293 R12: 00000000004afb38 [ 324.399036] R13: 00007fc95da86be0 R14: 0000000000000000 R15: 0000000000022000 [ 324.406330] Code: 18 00 00 00 00 48 81 c4 80 01 00 00 44 89 e8 5b 5d 41 5c 41 5d 41 5e 41 5f c3 48 b8 00 00 00 00 00 fc ff df 4c 89 e2 48 c1 ea 03 <80> 3c 02 00 0f 85 67 2a 00 00 49 81 3c 24 a0 77 2e 8b 0f 84 5f [ 324.425778] RIP: __lock_acquire+0x1cc/0x3f20 RSP: ffff88803de07868 [ 324.432771] ---[ end trace cf4c96cfe382e23f ]--- [ 324.437499] Kernel panic - not syncing: Fatal exception [ 324.443434] Kernel Offset: disabled [ 324.447053] Rebooting in 86400 seconds..