35b236b237b238b239b23ab23bb23cb23db23eb23fb240b241b242b243b244b245b246b247b248b249b24ab24bb24cb24db24eb24fb250b251b252b253b254b255b256b257b258b259b25ab25bb25cb25db25eb25fb260b261b262b263b264b265b266b267b268b269b26ab26bb26cb26db26eb26fb270b271b272b273b274b275b276b277b278b279b27ab27bb27cb27db27eb27fb280b281b282b283b284b285b286b287b288b289b28ab28bb28cb28db28eb28fb290b291b292b293b294b295b296b297b298b299b29ab29bb29cb29db29eb29fb2a0b2a1b2a2b2a3b2a4b2a5b2a6b2a7b2a8b2a9b2aab2abb2acb2adb2aeb2afb2b0b2b1b2b2b2b3b2b4b2b5b2b6b2b7b2b8b2b9b2bab2bbb2bcb2bdb2beb2bfb2c0b2c1b2c2b2c3b2c4b2c5b2c6b2c7b2c8b2c9b2cab2cbb2ccb2cdb2ceb2cfb2d0b2d1b2d2b2d3b2d4b2d5b2d6b2d7b2d8b2d9b2dab2dbb2dcb2ddb2deb2dfb2e0b2e1b2e2b2e3b2e4b2e5b2e6b2e7b2e8b2e9b2eab2ebb2ecb2edb2eeb2efb2f0b2f1b2f2b2f3b2f4b2f5b2f6b2f7b2f8b2f9b2fab2fbb2fcb2fdb2feb2ffb200b301b302b303b304b305b306b307b308b309b30ab30bb30cb30db30eb30fb310b311b312b313b314b315b316b317b318b319b31ab31bb31cb31db31eb31fb320b321b322b323b324b325b326b327b328b329b32ab32bb32cb32db32eb32fb330b331b332b333b334b335b336b337b338b339b33ab33bb33cb33db33eb33fb340b341b342b343b344b345b346b347b348b349b34ab34bb34cb34db34eb34fb350b351b352b353b354b355b356b357b358b359b35ab35bb35cb35db35eb35fb360b361b362b363b364b365b366b367b368b369b36ab36bb36cb36db36eb36fb370b371b372b373b374b375b376b377b378b379b37ab37bb37cb37db37eb37fb380b381b382b383b384b385b386b387b388b389b38ab38bb38cb38db38eb38fb390b391b392b393b394b395b396b397b398b399b39ab39bb39cb39db39eb39fb3a0b3a1b3a2b3a3b3a4b3a5b3a6b3a7b3a8b3a9b3aab3abb3acb3adb3aeb3afb3b0b3b1b3b2b3b3b3b4b3b5b3b6b3b7b3b8b3b9b3bab3bbb3bcb3bdb3beb3bfb3c0b3c1b3c2b3c3b3c4b3c5b3c6b3c7b3c8b3c9b3cab3cbb3ccb3cdb3ceb3cfb3d0b3d1b3d2b3d3b3d4b3d5b3d6b3d7b3d8b3d9b3dab3dbb3dcb3ddb3deb3dfb3e0b3e1b3e2b3e3b3e4b3e5b3e6b3e7b3e8b3e9b3eab3ebb3ecb3edb3eeb3efb3f0b3f1b3f2b3f3b3f4b3f5b3f6b3f7b3f8b3f9b3fab3fbb3fcb3fdb3feb3ffb300b401b402b403b404b405b406b407b408b409b40ab40bb40cb40db40eb40fb410b411b412b413b414b415b416b417b418b419b41ab41bb41cb41db41eb41fb420b421b422b423b424b425b426b427b428b429b42ab42bb42cb42db42eb42fb430b431b432b433b434b435b436b437b438b439b43ab43bb43cb43db43eb43fb440b441b442b443b444b445b446b447b448b449b44ab44bb44cb44db44eb44fb450b451b452b453b454b455b456b457b458b459b45ab45bb45cb45db45eb45fb460b461b462b463b464b465b466b467b468b469b46ab46bb46cb46db46eb46fb470b471b472b473b474b475b476b477b478b479b47ab47bb47cb47db47eb47fb480b481b482b483b484b485b486b487b488b489b48ab48bb48cb48db48eb48fb490b491b492b493b494b495b496b497b498b499b49ab49bb49cb49db49eb49fb4a0b4a1b4a2b4a3b4a4b4a5b4a6b4a7b4a8b4a9b4aab4abb4acb4adb4aeb4afb4b0b4b1b4b2b4b3b4b4b4b5b4b6b4b7b4b8b4b9b4bab4bbb4bcb4bdb4beb4bfb4c0b4c1b4c2b4c3b4c4b4c5b4c6b4c7b4c8b4c9b4cab4cbb4ccb4cdb4ceb4cfb4d0b4d1b4d2b4d3b4d4b4d5b4d6b4d7b4d8b4d9b4dab4dbb4dcb4ddb4deb4dfb4e0b4e1b4e2b4e3b4e4b4e5b4e6b4e7b4e8b4e9b4eab4ebb4ecb4edb4eeb4efb4f0b4f1b4f2b4f3b4f4b4f5b4f6b4f7b4f8b4f9b4fab4fbb4fcb4fdb4feb4ffb400b501b502b503b504b505b506b507b508b509b50ab50bb50cb50db50eb50fb510b511b512b513b514b515b516b517b518b519b51ab51bb51cb51db51eb51fb520b521b522b523b524b525b526b527b528b529b52ab52bb52cb52db52eb52fb530b531b532b533b534b535b536b537b538b539b53ab53bb53cb53db53eb53fb540b541b542b543b544b545b546b547b548b549b54ab54bb54cb54db54eb54fb550b551b552b553b554b555b556b557b558b559b55ab55bb55cb55db55eb55fb560b561b562b563b564b565b566b567b568b569b56ab56bb56cb56db56eb56fb570b571b572b573b574b575b576b577b578b579b57ab57bb57cb57db57eb57fb580b581b582b583b584b585b586b587b588b589b58ab58bb58cb58db58eb58fb590b591b592b593b594b595b596b597b598b599b59ab59bb59cb59db59eb59fb5a0b5a1b5a2b5a3b5a4b5a5b5a6b5a7b5a8b5a9b5aab5abb5acb5adb5aeb5afb5b0b5b1b5b2b5b3b5b4b5b5b5b6b5b7b5b8b5b9b5bab5bbb5bcb5bdb5beb5bfb5c0b5c1b5c2b5c3b5c4b5c5b5c6b5c7b5c8b5c9b5cab5cbb5ccb5cdb5ceb5cfb5d0b5d1b5d2b5d3b5d4b5d5b5d6b5d7b5d8b5d9b5dab5dbb5dcb5ddb5deb5dfb5e0b5e1b5e2b5e3b5e4b5e5b5e6b5e7b5e8b5e9b5eab5ebb5ecb5edb5eeb5efb5f0b5f1b5f2b5f3b5f4b5f5b5f6b5f7b5f8b5f9b5fab5fbb5fcb5fdb5feb5ffb500b601b602b603b604b605b606b607b608b609b60ab60bb60cb60db60eb60fb610b611b612b613b614b615b616b617b618b619b61ab61bb61cb61db61eb61fb620b621b622b623b624b625b626b627b628b629b62ab62bb62cb62db62eb62fb630b631b632b633b634b635b636b637b638b639b63ab63bb63cb63db63eb63fb640b641b642b643b644b645b646b647b648b649b64ab64bb64cb64db64eb64fb650b651b652b653b654b655b656b657b658b659b65ab65bb65cb65db65eb65fb660b661b662b663b664b665b666b667b668b669b66ab66bb66cb66db66eb66fb670b671b672b673b674b675b676b677b678b679b67ab67bb67cb67db67eb67fb680b681b682b683b684b685b686b687b688b689b68ab68bb68cb68db68eb68fb690b691b692b693b694b695b696b697b698b699b69ab69bb69cb69db69eb69fb6a0b6a1b6a2b6a3b6a4b6a5b6a6b6a7b6a8b6a9b6aab6abb6acb6adb6aeb6afb6b0b6b1b6b2b6b3b6b4b6b5b6b6b6b7b6b8b6b9b6bab6bbb6bcb6bdb6beb6bfb6c0b6c1b6c2b6c3b6c4b6c5b6c6b6c7b6c8b6c9b6cab6cbb6ccb6cdb6ceb6cfb6d0b6d1b6d2b6d3b6d4b6d5b6d6b6d7b6d8b6d9b6dab6dbb6dcb6ddb6deb6dfb6e0b6e1b6e2b6e3b6e4b6e5b6e6b6e7b6e8b6e9b6eab6ebb6ecb6edb6eeb6efb6f0b6f1b6f2b6f3b6f4b6f5b6f6b6f7b6f8b6f9b6fab6fbb6fcb6fdb6feb6ffb600b701b702b703b704b705b706b707b708b709b70ab70bb70cb70db70eb70fb710b711b712b713b714b715b716b717b718b719b71ab71bb71cb71db71eb71fb720b721b722b723b724b725b726b727b728b729b72ab72bb72cb72db72eb72fb730b731b732b733b734b735b736b737b738b739b73ab73bb73cb73db73eb73fb740b741b742b743b744b745b746b747b748b749b74ab74bb74cb74db74eb74fb750b751b752b753b754b755b756b757b758b759b75ab75bb75cb75db75eb75fb760b761b762b763b764b765b766b767b768b769b76ab76bb76cb76db76eb76fb770b771b772b773b774b775b776b777b778b779b77ab77bb77cb77db77eb77fb780b781b782b783b784b785b786b787b788b789b78ab78bb78cb78db78eb78fb790b791b792b793b794b795b796b797b798b799b79ab79bb79cb79db79eb79fb7a0b7a1b7a2b7a3b7a4b7a5b7a6b7a7b7a8b7a9b7aab7abb7acb7adb7aeb7afb7b0b7b1b7b2b7b3b7b4b7b5b7b6b7b7b7b8b7b9b7bab7bbb7bcb7bdb7beb7bfb7c0b7c1b7c2b7c3b7c4b7c5b7c6b7c7b7c8b7c9b7cab7cbb7ccb7cdb7ceb7cfb7d0b7d1b7d2b7d3b7d4b7d5b7d6b7d7b7d8b7d9b7dab7dbb7dcb7ddb7deb7dfb7e0b7e1b7e2b7e3b7e4b7e5b7e6b7e7b7e8b7e9b7eab7ebb7ecb7edb7eeb7efb7f0b7f1b7f2b7f3b7f4b7f5b7f6b7f7b7f8b7f9b7fab7fbb7fcb7fdb7feb7ffb700b801b802b803b804b805b806b807b808b809b80ab80bb80cb80db80eb80fb810b811b812b813b814b815b816b817b818b819b81ab81bb81cb81db81eb81fb820b821b822b823b824b825b826b827b828b829b82ab82bb82cb82db82eb82fb830b831b832b833b834b835b836b837b838b839b83ab83bb83cb83db83eb83fb840b841b842b843b844b845b846b847b848b849b84ab84bb84cb84db84eb84fb850b851b852b853b854b855b856b857b858b859b85ab85bb85cb85db85eb85fb860b861b862b863b864b865b866b867b868b869b86ab86bb86cb86db86eb86fb870b871b872b873b874b875b876b877b878b879b87ab87bb87cb87db87eb87fb880b881b882b883b884b885b886b887b888b889b88ab88bb88cb88db88eb88fb890b891b892b893b894b895b896b897b898b899b89ab89bb89cb89db89eb89fb8a0b8a1b8a2b8a3b8a4b8a5b8a6b8a7b8a8b8a9b8aab8abb8acb8adb8aeb8afb8b0b8b1b8b2b8b3b8b4b8b5b8b6b8b7b8b8b8b9b8bab8bbb8bcb8bdb8beb8bfb8c0b8c1b8c2b8c3b8c4b8c5b8c6b8c7b8c8b8c9b8cab8cbb8ccb8cdb8ceb8cfb8d0b8d1b8d2b8d3b8d4b8d5b8d6b8d7b8d8b8d9b8dab8dbb8dcb8ddb8deb8dfb8e0b8e1b8e2b8e3b8e4b8e5b8e6b8e7b8e8b8e9b8eab8ebb8ecb8edb8eeb8efb8f0b8f1b8f2b8f3b8f4b8f5b8f6b8f7b8f8b8f9b8fab8fbb8fcb8fdb8feb8ffb800b901b902b903b904b905b906b907b908b909b90ab90bb90cb90db90eb90fb910b911b912b913b914b915b916b917b918b919b91ab91bb91cb91db91eb91fb920b921b922b923b924b925b926b927b928b929b92ab92bb92cb92db92eb92fb930b931b932b933b934b935b936b937b938b939b93ab93bb93cb93db93eb93fb940b941b942b943b944b945b946b947b948b949b94ab94bb94cb94db94eb94fb950b951b952b953b954b955b956b957b958b959b95ab95bb95cb95db95eb95fb960b961b962b963b964b965b966b967b968b969b96ab96bb96cb96db96eb96fb970b971b972b973b974b975b976b977b978b979b97ab97bb97cb97db97eb97fb980b981b982b983b984b985b986b987b988b989b98ab98bb98cb98db98eb98fb990b991b992b993b994b995b996b997b998b999b99ab99bb99cb99db99eb99fb9a0b9a1b9a2b9a3b9a4b9a5b9a6b9a7b9a8b9a9b9aab9abb9acb9adb9aeb9afb9b0b9b1b9b2b9b3b9b4b9b5b9b6b9b7b9b8b9b9b9bab9bbb9bcb9bdb9beb9bfb9c0b9c1b9c2b9c3b9c4b9c5b9c6b9c7b9c8b9c9b9cab9cbb9ccb9cdb9ceb9cfb9d0b9d1b9d2b9d3b9d4b9d5b9d6b9d7b9d8b9d9b9dab9dbb9dcb9ddb9deb9dfb9e0b9e1b9e2b9e3b9e4b9e5b9e6b9e7b9e8b9e9b9eab9ebb9ecb9edb9eeb9efb9f0b9f1b9f2b9f3b9f4b9f5b9f6b9f7b9f8b9f9b9fab9fbb9fcb9fdb9feb9ffb900ba01ba02ba03ba04ba05ba06ba07ba08ba09ba0aba0bba0cba0dba0eba0fba10ba11ba12ba13ba14ba15ba16ba17ba18ba19ba1aba1bba1cba1dba1eba1fba20ba21ba22ba23ba24ba25ba26ba27ba28ba29ba2aba2bba2cba2dba2eba2fba30ba31ba32ba33ba34ba35ba36ba37ba38ba39ba3aba3bba3cba3dba3eba3fba40ba41ba42ba43ba44ba45ba46ba47ba48ba49ba4aba4bba4cba4dba4eba4fba50ba51ba52ba53ba54ba55ba56ba57ba58ba59ba5aba5bba5cba5dba5eba5fba60ba61ba62ba63ba64ba65ba66ba67ba68ba69ba6aba6bba6cba6dba6eba6fba70ba71ba72ba73ba74ba75ba76ba77ba78ba79ba7aba7bba7cba7dba7eba7fba80ba81ba82ba83ba84ba85ba86ba87ba88ba89ba8aba8bba8cba8dba8eba8fba90ba91ba92ba93ba94ba95ba96ba97ba98ba99ba9aba9bba9cba9dba9eba9fbaa0baa1baa2baa3baa4baa5baa6baa7baa8baa9baaabaabbaacbaadbaaebaafbab0bab1bab2bab3bab4bab5bab6bab7bab8bab9babababbbabcbabdbabebabfbac0bac1bac2bac3bac4bac5bac6bac7bac8bac9bacabacbbaccbacdbacebacfbad0bad1bad2bad3bad4bad5bad6bad7bad8bad9badabadbbadcbaddbadebadfbae0bae1bae2bae3bae4bae5bae6bae7bae8bae9baeabaebbaecbaedbaeebaefbaf0baf1baf2baf3baf4baf5baf6baf7baf8baf9bafabafbbafcbafdbafebaffba00bb01bb02bb03bb04bb05bb06bb07bb08bb09bb0abb0bbb0cbb0dbb0ebb0fbb10bb11bb12bb13bb14bb15bb16bb17bb18bb19bb1abb1bbb1cbb1dbb1ebb1fbb20bb21bb22bb23bb24bb25bb26bb27bb28bb29bb2abb2bbb2cbb2dbb2ebb2fbb30bb31bb32bb33bb34bb35bb36bb37bb38bb39bb3abb3bbb3cbb3dbb3ebb3fbb40bb41bb42bb43bb44bb45bb46bb47bb48bb49bb4abb4bbb4cbb4dbb4ebb4fbb50bb51bb52bb53bb54bb55bb56bb57bb58bb59bb5abb5bbb5cbb5dbb5ebb5fbb60bb61bb62bb63bb64bb65bb66bb67bb68bb69bb6abb6bbb6cbb6dbb6ebb6fbb70bb71bb72bb73bb74bb75bb76bb77bb78bb79bb7abb7bbb7cbb7dbb7ebb7fbb80bb81bb82bb83bb84bb85bb86bb87bb88bb89bb8abb8bbb8cbb8dbb8ebb8fbb90bb91bb92bb93bb94bb95bb96bb97bb98bb99bb9abb9bbb9cbb9dbb9ebb9fbba0bba1bba2bba3bba4bba5bba6bba7bba8bba9bbaabbabbbacbbadbbaebbafbbb0bbb1bbb2bbb3bbb4bbb5bbb6bbb7bbb8bbb9bbbabbbbbbbcbbbdbbbebbbfbbc0bbc1bbc2bbc3bbc4bbc5bbc6bbc7bbc8bbc9bbcabbcbbbccbbcdbbcebbcfbbd0bbd1bbd2bbd3bbd4bbd5bbd6bbd7bbd8bbd9bbdabbdbbbdcbbddbbdebbdfbbe0bbe1bbe2bbe3bbe4bbe5bbe6bbe7bbe8bbe9bbeabbebbbecbbedbbeebbefbbf0bbf1bbf2bbf3bbf4bbf5bbf6bbf7bbf8bbf9bbfabbfbbbfcbbfdbbfebbffbb00bc01bc02bc03bc04bc05bc06bc07bc08bc09bc0abc0bbc0cbc0dbc0ebc0fbc10bc11bc12bc13bc14bc15bc16bc17bc18bc19bc1abc1bbc1cbc1dbc1ebc1fbc20bc21bc22bc23bc24bc25bc26bc27bc28bc29bc2abc2bbc2cbc2dbc2ebc2fbc30bc31bc32bc33bc34bc35bc36bc37bc38bc39bc3abc3bbc3cbc3dbc3ebc3fbc40bc41bc42bc43bc44bc45bc46bc47bc48bc49bc4abc4bbc4cbc4dbc4ebc4fbc50bc51bc52bc53bc54bc55bc56bc57bc58bc59bc5abc5bbc5cbc5dbc5ebc5fbc60bc61bc62bc63bc64bc65bc66bc67bc68bc69bc6abc6bbc6cbc6dbc6ebc6fbc70bc71bc72bc73bc74bc75bc76bc77bc78bc79bc7abc7bbc7cbc7dbc7ebc7fbc80bc81bc82bc83bc84bc85bc86bc87bc88bc89bc8abc8bbc8cbc8dbc8ebc8fbc90bc91bc92bc93bc94bc95bc96bc97bc98bc99bc9abc9bbc9cbc9dbc9ebc9fbca0bca1bca2bca3bca4bca5bca6bca7bca8bca9bcaabcabbcacbcadbcaebcafbcb0bcb1bcb2bcb3bcb4bcb5bcb6bcb7bcb8bcb9bcbabcbbbcbcbcbdbcbebcbfbcc0bcc1bcc2bcc3bcc4bcc5bcc6bcc7bcc8bcc9bccabccbbcccbccdbccebccfbcd0bcd1bcd2bcd3bcd4bcd5bcd6bcd7bcd8bcd9bcdabcdbbcdcbcddbcdebcdfbce0bce1bce2bce3bce4bce5bce6bce7bce8bce9bceabcebbcecbcedbceebcefbcf0bcf1bcf2bcf3bcf4bcf5bcf6bcf7bcf8bcf9bcfabcfbbcfcbcfdbcfebcffbc00bd01bd02bd03bd04bd05bd06bd07bd08bd09bd0abd0bbd0cbd0dbd0ebd0fbd10bd11bd12bd13bd14bd15bd16bd17bd18bd19bd1abd1bbd1cbd1dbd1ebd1fbd20bd21bd22bd23bd24bd25bd26bd27bd28bd29bd2abd2bbd2cbd2dbd2ebd2fbd30bd31bd32bd33bd34bd35bd36bd37bd38bd39bd3abd3bbd3cbd3dbd3ebd3fbd40bd41bd42bd43bd44bd45bd46bd47bd48bd49bd4abd4bbd4cbd4dbd4ebd4fbd50bd51bd52bd53bd54bd55bd56bd57bd58bd59bd5abd5bbd5cbd5dbd5ebd5fbd60bd61bd62bd63bd64bd65bd66bd67bd68bd69bd6abd6bbd6cbd6dbd6ebd6fbd70bd71bd72bd73bd74bd75bd76bd77bd78bd79bd7abd7bbd7cbd7dbd7ebd7fbd80bd81bd82bd83bd84bd85bd86bd87bd88bd89bd8abd8bbd8cbd8dbd8ebd8fbd90bd91bd92bd93bd94bd95bd96bd97bd98bd99bd9abd9bbd9cbd9dbd9ebd9fbda0bda1bda2bda3bda4bda5bda6bda7bda8bda9bdaabdabbdacbdadbdaebdafbdb0bdb1bdb2bdb3bdb4bdb5bdb6bdb7bdb8bdb9bdbabdbbbdbcbdbdbdbebdbfbdc0bdc1bdc2bdc3bdc4bdc5bdc6bdc7bdc8bdc9bdcabdcbbdccbdcdbdcebdcfbdd0bdd1bdd2bdd3bdd4bdd5bdd6bdd7bdd8bdd9bddabddbbddcbdddbddebddfbde0bde1bde2bde3bde4bde5bde6bde7bde8bde9bdeabdebbdecbdedbdeebdefbdf0bdf1bdf2bdf3bdf4bdf5bdf6bdf7bdf8bdf9bdfabdfbbdfcbdfdbdfebdffbd00be01be02be03be04be05be06be07be08be09be0abe0bbe0cbe0dbe0ebe0fbe10be11be12be13be14be15be16be17be18be19be1abe1bbe1cbe1dbe1ebe1fbe20be21be22be23be24be25be26be27be28be29be2abe2bbe2cbe2dbe2ebe2fbe30be31be32be33be34be35be36be37be38be39be3abe3bbe3cbe3dbe3ebe3fbe40be41be42be43be44be45be46be47be48be49be4abe4bbe4cbe4dbe4ebe4fbe50be51be52be53be54be55be56be57be58be59be5abe5bbe5cbe5dbe5ebe5fbe60be61be62be63be64be65be66be67be68be69be6abe6bbe6cbe6dbe6ebe6fbe70be71be72be73be74be75be76be77be78be79be7abe7bbe7cbe7dbe7ebe7fbe80be81be82be83be84be85be86be87be88be89be8abe8bbe8cbe8dbe8ebe8fbe90be91be92be93be94be95be96be97be98be99be9abe9bbe9cbe9dbe9ebe9fbea0bea1bea2bea3bea4bea5bea6bea7bea8bea9beaabeabbeacbeadbeaebeafbeb0beb1beb2beb3beb4beb5beb6beb7beb8beb9bebabebbbebcbebdbebebebfbec0bec1bec2bec3bec4bec5bec6bec7bec8bec9becabecbbeccbecdbecebecfbed0bed1bed2bed3bed4bed5bed6bed7bed8bed9bedabedbbedcbeddbedebedfbee0bee1bee2bee3bee4bee5bee6bee7bee8bee9beeabeebbeecbeedbeeebeefbef0bef1bef2bef3bef4bef5bef6bef7bef8bef9befabefbbefcbefdbefebeffbe00bf01bf02bf03bf04bf05bf06bf07bf08bf09bf0abf0bbf0cbf0dbf0ebf0fbf10bf11bf12bf13bf14bf15bf16bf17bf18bf19bf1abf1bbf1cbf1dbf1ebf1fbf20bf21bf22bf23bf24bf25bf26bf27bf28bf29bf2abf2bbf2cbf2dbf2ebf2fbf30bf31bf32bf33bf34bf35bf36bf37bf38bf39bf3abf3bbf3cbf3dbf3ebf3fbf40bf41bf42bf43bf44bf45bf46bf47bf48bf49bf4abf4bbf4cbf4dbf4ebf4fbf50bf51bf52bf53bf54bf55bf56bf57bf58bf59bf5abf5bbf5cbf5dbf5ebf5fbf60bf61bf62bf63bf64bf65bf66bf67bf68bf69bf6abf6bbf6cbf6dbf6ebf6fbf70bf71bf72bf73bf74bf75bf76bf77bf78bf79bf7abf7bbf7cbf7dbf7ebf7fbf80bf81bf82bf83bf84bf85bf86bf87bf88bf89bf8abf8bbf8cbf8dbf8ebf8fbf90bf91bf92bf93bf94bf95bf96bf97bf98bf99bf9abf9bbf9cbf9dbf9ebf9fbfa0bfa1bfa2bfa3bfa4bfa5bfa6bfa7bfa8bfa9bfaabfabbfacbfadbfaebfafbfb0bfb1bfb2bfb3bfb4bfb5bfb6bfb7bfb8bfb9bfbabfbbbfbcbfbdbfbebfbfbfc0bfc1bfc2bfc3bfc4bfc5bfc6bfc7bfc8bfc9bfcabfcbbfccbfcdbfcebfcfbfd0bfd1bfd2bfd3bfd4bfd5bfd6bfd7bfd8bfd9bfdabfdbbfdcbfddbfdebfdfbfe0bfe1bfe2bfe3bfe4bfe5bfe6bfe7bfe8bfe9bfeabfebbfecbfedbfeebfefbff0bff1bff2bff3bff4bff5bff6bff7bff8bff9bffabffbbffcbffdbffebfffbf00c001c002c003c004c005c006c007c008c009c00ac00bc00cc00dc00ec00fc010c011c012c013c014c015c016c017c018c019c01ac01bc01cc01dc01ec01fc020c021c022c023c024c025c026c027c028c029c02ac02bc02cc02dc02ec02fc030c031c032c033c034c035c036c037c038c039c03ac03bc03cc03dc03ec03fc040c041c042c043c044c045c046c047c048c049c04ac04bc04cc04dc04ec04fc050c051c052c053c054c055c056c057c058c059c05ac05bc05cc05dc05ec05fc060c061c062c063c064c065c066c067c068c069c06ac06bc06cc06dc06ec06fc070c071c072c073c074c075c076c077c078c079c07ac07bc07cc07dc07ec07fc080c081c082c083c084c085c086c087c088c089c08ac08bc08cc08dc08ec08fc090c091c092c093c094c095c096c097c098c099c09ac09bc09cc09dc09ec09fc0a0c0a1c0a2c0a3c0a4c0a5c0a6c0a7c0a8c0a9c0aac0abc0acc0adc0aec0afc0b0c0b1c0b2c0b3c0b4c0b5c0b6c0b7c0b8c0b9c0bac0bbc0bcc0bdc0bec0bfc0c0c0c1c0c2c0c3c0c4c0c5c0c6c0c7c0c8c0c9c0cac0cbc0ccc0cdc0cec0cfc0d0c0d1c0d2c0d3c0d4c0d5c0d6c0d7c0d8c0d9c0dac0dbc0dcc0ddc0dec0dfc0e0c0e1c0e2c0e3c0e4c0e5c0e6c0e7c0e8c0e9c0eac0ebc0ecc0edc0eec0efc0f0c0f1c0f2c0f3c0f4c0f5c0f6c0f7c0f8c0f9c0fac0fbc0fcc0fdc0fec0ffc000c101c102c103c104c105c106c107c108c109c10ac10bc10cc10dc10ec10fc110c111c112c113c114c115c116c117c118c119c11ac11bc11cc11dc11ec11fc120c121c122c123c124c125c126c127c128c129c12ac12bc12cc12dc12ec12fc130c131c132c133c134c135c136c137c138c139c13ac13bc13cc13dc13ec13fc140c141c142c143c144c145c146c147c148c149c14ac14bc14cc14dc14ec14fc150c151c152c153c154c155c156c157c158c159c15ac15bc15cc15dc15ec15fc160c161c162c163c164c165c166c167c168c169c16ac16bc16cc16dc16ec16fc170c171c172c173c174c175c176c177c178c179c17ac17bc17cc17dc17ec17fc180c181c182c183c184c185c186c187c188c189c18ac18bc18cc18dc18ec18fc190c191c192c193c194c195c196c197c198c199c19ac19bc19cc19dc19ec19fc1a0c1a1c1a2c1a3c1a4c1a5c1a6c1a7c1a8c1a9c1aac1abc1acc1adc1aec1afc1b0c1b1c1b2c1b3c1b4c1b5c1b6c1b7c1b8c1b9c1bac1bbc1bcc1bdc1bec1bfc1c0c1c1c1c2c1c3c1c4c1c5c1c6c1c7c1c8c1c9c1cac1cbc1ccc1cdc1cec1cfc1d0c1d1c1d2c1d3c1d4c1d5c1d6c1d7c1d8c1d9c1dac1dbc1dcc1ddc1dec1dfc1e0c1e1c1e2c1e3c1e4c1e5c1e6c1e7c1e8c1e9c1eac1ebc1ecc1edc1eec1efc1f0c1f1c1f2c1f3c1f4c1f5c1f6c1f7c1f8c1f9c1fac1fbc1fcc1fdc1fec1ffc100c201c202c203c204c205c206c207c208c209c20ac20bc20cc20dc20ec20fc210c211c212c213c214c215c216c217c218c219c21ac21bc21cc21dc21ec21fc220c221c222c223c224c225c226c227c228c229c22ac22bc22cc22dc22ec22fc230c231c232c233c234c235c236c237c238c239c23ac23bc23cc23dc23ec23fc240c241c242c243c244c245c246c247c248c249c24ac24bc24cc24dc24ec24fc250c251c252c253c254c255c256c257c258c259c25ac25bc25cc25dc25ec25fc260c261c262c263c264c265c266c267c268c269c26ac26bc26cc26dc26ec26fc270c271c272c273c274c275c276c277c278c279c27ac27bc27cc27dc27ec27fc280c281c282c283c284c285c286c287c288c289c28ac28bc28cc28dc28ec28fc290c291c292c293c294c295c296c297c298c299c29ac29bc29cc29dc29ec29fc2a0c2a1c2a2c2a3c2a4c2a5c2a6c2a7c2a8c2a9c2aac2abc2acc2adc2aec2afc2b0c2b1c2b2c2b3c2b4c2b5c2b6c2b7c2b8c2b9c2bac2bbc2bcc2bdc2bec2bfc2c0c2c1c2c2c2c3c2c4c2c5c2c6c2c7c2c8c2c9c2cac2cbc2ccc2cdc2cec2cfc2d0c2d1c2d2c2d3c2d4c2d5c2d6c2d7c2d8c2d9c2dac2dbc2dcc2ddc2dec2dfc2e0c2e1c2e2c2e3c2e4c2e5c2e6c2e7c2e8c2e9c2eac2ebc2ecc2edc2eec2efc2f0c2f1c2f2c2f3c2f4c2f5c2f6c2f7c2f8c2f9c2fac2fbc2fcc2fdc2fec2ffc200c301c302c303c304c305c306c307c308c309c30ac30bc30cc30dc30ec30fc310c311c312c313c314c315c316c317c318c319c31ac31bc31cc31dc31ec31fc320c321c322c323c324c325c326c327c328c329c32ac32bc32cc32dc32ec32fc330c331c332c333c334c335c336c337c338c339c33ac33bc33cc33dc33ec33fc340c341c342c343c344c345c346c347c348c349c34ac34bc34cc34dc34ec34fc350c351c352c353c354c355c356c357c358c359c35ac35bc35cc35dc35ec35fc360c361c362c363c364c365c366c367c368c369c36ac36bc36cc36dc36ec36fc370c371c372c373c374c375c376c377c378c379c37ac37bc37cc37dc37ec37fc380c381c382c383c384c385c386c387c388c389c38ac38bc38cc38dc38ec38fc390c391c392c393c394c395c396c397c398c399c39ac39bc39cc39dc39ec39fc3a0c3a1c3a2c3a3c3a4c3a5c3a6c3a7c3a8c3a9c3aac3abc3acc3adc3aec3afc3b0c3b1c3b2c3b3c3b4c3b5c3b6c3b7c3b8c3b9c3bac3bbc3bcc3bdc3bec3bfc3c0c3c1c3c2c3c3c3c4c3c5c3c6c3c7c3c8c3c9c3cac3cbc3ccc3cdc3cec3cfc3d0c3d1c3d2c3d3c3d4c3d5c3d6c3d7c3d8c3d9c3dac3dbc3dcc3ddc3dec3dfc3e0c3e1c3e2c3e3c3e4c3e5c3e6c3e7c3e8c3e9c3eac3ebc3ecc3edc3eec3efc3f0c3f1c3f2c3f3c3f4c3f5c3f6c3f7c3f8c3f9c3fac3fbc3fcc3fdc3fec3ffc300c401c402c403c404c405c406c407c408c409c40ac40bc40cc40dc40ec40fc410c411c412c413c414c415c416c417c418c419c41ac41bc41cc41dc41ec41fc420c421c422c423c424c425c426c427c428c429c42ac42bc42cc42dc42ec42fc430c431c432c433c434c435c436c437c438c439c43ac43bc43cc43dc43ec43fc440c441c442c443c444c445c446c447c448c449c44ac44bc44cc44dc44ec44fc450c451c452c453c454c455c456c457c458c459c45ac45bc45cc45dc45ec45fc460c461c462c463c464c465c466c467c468c469c46ac46bc46cc46dc46ec46fc470c471c472c473c474c475c476c477c478c479c47ac47bc47cc47dc47ec47fc480c481c482c483c484c485c486c487c488c489c48ac48bc48cc48dc48ec48fc490c491c492c493c494c495c496c497c498c499c49ac49bc49cc49dc49ec49fc4a0c4a1c4a2c4a3c4a4c4a5c4a6c4a7c4a8c4a9c4aac4abc4acc4adc4aec4afc4b0c4b1c4b2c4b3c4b4c4b5c4b6c4b7c4b8c4b9c4bac4bbc4bcc4bdc4bec4bfc4c0c4c1c4c2c4c3c4c4c4c5c4c6c4c7c4c8c4c9c4cac4cbc4ccc4cdc4cec4cfc4d0c4d1c4d2c4d3c4d4c4d5c4d6c4d7c4d8c4d9c4dac4dbc4dcc4ddc4dec4dfc4e0c4e1c4e2c4e3c4e4c4e5c4e6c4e7c4e8c4e9c4eac4ebc4ecc4edc4eec4efc4f0c4f1c4f2c4f3c4f4c4f5c4f6c4f7c4f8c4f9c4fac4fbc4fcc4fdc4fec4ffc400c501c502c503c504c505c506c507c508c509c50ac50bc50cc50dc50ec50fc510c511c512c513c514c515c516c517c518c519c51ac51bc51cc51dc51ec51fc520c521c522c523c524c525c526c527c528c529c52ac52bc52cc52dc52ec52fc530c531c532c533c534c535c536c537c538c539c53ac53bc53cc53dc53ec53fc540c541c542c543c544c545c546c547c548c549c54ac54bc54cc54dc54ec54fc550c551c552c553c554c555c556c557c558c559c55ac55bc55cc55dc55ec55fc560c561c562c563c564c565c566c567c568c569c56ac56bc56cc56dc56ec56fc570c571c572c573c574c575c576c577c578c579c57ac57bc57cc57dc57ec57fc580c581c582c583c584c585c586c587c588c589c58ac58bc58cc58dc58ec58fc590c591c592c593c594c595c596c597c598c599c59ac59bc59cc59dc59ec59fc5a0c5a1c5a2c5a3c5a4c5a5c5a6c5a7c5a8c5a9c5aac5abc5acc5adc5aec5afc5b0c5b1c5b2c5b3c5b4c5b5c5b6c5b7c5b8c5b9c5bac5bbc5bcc5bdc5bec5bfc5c0c5c1c5c2c5c3c5c4c5c5c5c6c5c7c5c8c5c9c5cac5cbc5ccc5cdc5cec5cfc5d0c5d1c5d2c5d3c5d4c5d5c5d6c5d7c5d8c5d9c5dac5dbc5dcc5ddc5dec5dfc5e0c5e1c5e2c5e3c5e4c5e5c5e6c5e7c5e8c5e9c5eac5ebc5ecc5edc5eec5efc5f0c5f1c5f2c5f3c5f4c5f5c5f6c5f7c5f8c5f9c5fac5fbc5fcc5fdc5fec5ffc500c601c602c603c604c605c606c607c608c609c60ac60bc60cc60dc60ec60fc610c611c612c613c614c615c616c617c618c619c61ac61bc61cc61dc61ec61fc620c621c622c623c624c625c626c627c628c629c62ac62bc62cc62dc62ec62fc630c631c632c633c634c635c636c637c638c639c63ac63bc63cc63dc63ec63fc640c641c642c643c644c645c646c647c648c649c64ac64bc64cc64dc64ec64fc650c651c652c653c654c655c656c657c658c659c65ac65bc65cc65dc65ec65fc660c661c662c663c664c665c666c667c668c669c66ac66bc66cc66dc66ec66fc670c671c672c673c674c675c676c677c678c679c67ac67bc67cc67dc67ec67fc680c681c682c683c684c685c686c687c688c689c68ac68bc68cc68dc68ec68fc690c691c692c693c694c695c696c697c698c699c69ac69bc69cc69dc69ec69fc6a0c6a1c6a2c6a3c6a4c6a5c6a6c6a7c6a8c6a9c6aac6abc6acc6adc6aec6afc6b0c6b1c6b2c6b3c6b4c6b5c6b6c6b7c6b8c6b9c6bac6bbc6bcc6bdc6bec6bfc6c0c6c1c6c2c6c3c6c4c6c5c6c6c6c7c6c8c6c9c6cac6cbc6ccc6cdc6cec6cfc6d0c6d1c6d2c6d3c6d4c6d5c6d6c6d7c6d8c6d9c6dac6dbc6dcc6ddc6dec6dfc6e0c6e1c6e2c6e3c6e4c6e5c6e6c6e7c6e8c6e9c6eac6ebc6ecc6edc6eec6efc6f0c6f1c6f2c6f3c6f4c6f5c6f6c6f7c6f8c6f9c6fac6fbc6fcc6fdc6fec6ffc600c701c702c703c704c705c706c707c708c709c70ac70bc70cc70dc70ec70fc710c711c712c713c714c715c716c717c718c719c71ac71bc71cc71dc71ec71fc720c721c722c723c724c725c726c727c728c729c72ac72bc72cc72dc72ec72fc730c731c732c733c734c735c736c737c738c739c73ac73bc73cc73dc73ec73fc740c741c742c743c744c745c746c747c748c749c74ac74bc74cc74dc74ec74fc750c751c752c753c754c755c756c757c758c759c75ac75bc75cc75dc75ec75fc760c761c762c763c764c765c766c767c768c769c76ac76bc76cc76dc76ec76fc770c771c772c773c774c775c776c777c778c779c77ac77bc77cc77dc77ec77fc780c781c782c783c784c785c786c787c788c789c78ac78bc78cc78dc78ec78fc790c791c792c793c794c795c796c797c798c799c79ac79bc79cc79dc79ec79fc7a0c7a1c7a2c7a3c7a4c7a5c7a6c7a7c7a8c7a9c7aac7abc7acc7adc7aec7afc7b0c7b1c7b2c7b3c7b4c7b5c7b6c7b7c7b8c7b9c7bac7bbc7bcc7bdc7bec7bfc7c0c7c1c7c2c7c3c7c4c7c5c7c6c7c7c7c8c7c9c7cac7cbc7ccc7cdc7cec7cfc7d0c7d1c7d2c7d3c7d4c7d5c7d6c7d7c7d8c7d9c7dac7dbc7dcc7ddc7dec7dfc7e0c7e1c7e2c7e3c7e4c7e5c7e6c7e7c7e8c7e9c7eac7ebc7ecc7edc7eec7efc7f0c7f1c7f2c7f3c7f4c7f5c7f6c7f7c7f8c7f9c7fac7fbc7fcc7fdc7fec7ffc700c801c802c803c804c805c806c807c808c809c80ac80bc80cc80dc80ec80fc810c811c812c813c814c815c816c817c818c819c81ac81bc81cc81dc81ec81fc820c821c822c823c824c825c826c827c828c829c82ac82bc82cc82dc82ec82fc830c831c832c833c834c835c836c837c838c839c83ac83bc83cc83dc83ec83fc840c841c842c843c844c845c846c847c848c849c84ac84bc84cc84dc84ec84fc850c851c852c853c854c855c856c857c858c859c85ac85bc85cc85dc85ec85fc860c861c862c863c864c865c866c867c868c869c86ac86bc86cc86dc86ec86fc870c871c872c873c874c875c876c877c878c879c87ac87bc87cc87dc87ec87fc880c881c882c883c884c885c886c887c888c889c88ac88bc88cc88dc88ec88fc890c891c892c893c894c895c896c897c898c899c89ac89bc89cc89dc89ec89fc8a0c8a1c8a2c8a3c8a4c8a5c8a6c8a7c8a8c8a9c8aac8abc8acc8adc8aec8afc8b0c8b1c8b2c8b3c8b4c8b5c8b6c8b7c8b8c8b9c8bac8bbc8bcc8bdc8bec8bfc8c0c8c1c8c2c8c3c8c4c8c5c8c6c8c7c8c8c8c9c8cac8cbc8ccc8cdc8cec8cfc8d0c8d1c8d2c8d3c8d4c8d5c8d6c8d7c8d8c8d9c8dac8dbc8dcc8ddc8dec8dfc8e0c8e1c8e2c8e3c8e4c8e5c8e6c8e7c8e8c8e9c8eac8ebc8ecc8edc8eec8efc8f0c8f1c8f2c8f3c8f4c8f5c8f6c8f7c8f8c8f9c8fac8fbc8fcc8fdc8fec8ffc800c901c902c903c904c905c906c907c908c909c90ac90bc90cc90dc90ec90fc910c911c912c913c914c915c916c917c918c919c91ac91bc91cc91dc91ec91fc920c921c922c923c924c925c926c927c928c929c92ac92bc92cc92dc92ec92fc930c931c932c933c934c935c936c937c938c939c93ac93bc93cc93dc93ec93fc940c941c942c943c944c945c946c947c948c949c94ac94bc94cc94dc94ec94fc950c951c952c953c954c955c956c957c958c959c95ac95bc95cc95dc95ec95fc960c961c962c963c964c965c966c967c968c969c96ac96bc96cc96dc96ec96fc970c971c972c973c974c975c976c977c978c979c97ac97bc97cc97dc97ec97fc980c981c982c983c984c985c986c987c988c989c98ac98bc98cc98dc98ec98fc990c991c992c993c994c995c996c997c998c999c99ac99bc99cc99dc99ec99fc9a0c9a1c9a2c9a3c9a4c9a5c9a6c9a7c9a8c9a9c9aac9abc9acc9adc9aec9afc9b0c9b1c9b2c9b3c9b4c9b5c9b6c9b7c9b8c9b9c9bac9bbc9bcc9bdc9bec9bfc9c0c9c1c9c2c9c3c9c4c9c5c9c6c9c7c9c8c9c9c9cac9cbc9ccc9cdc9cec9cfc9d0c9d1c9d2c9d3c9d4c9d5c9d6c9d7c9d8c9d9c9dac9dbc9dcc9ddc9dec9dfc9e0c9e1c9e2c9e3c9e4c9e5c9e6c9e7c9e8c9e9c9eac9ebc9ecc9edc9eec9efc9f0c9f1c9f2c9f3c9f4c9f5c9f6c9f7c9f8c9f9c9fac9fbc9fcc9fdc9fec9ffc900ca01ca02ca03ca04ca05ca06ca07ca08ca09ca0aca0bca0cca0dca0eca0fca10ca11ca12ca13ca14ca15ca16ca17ca18ca19ca1aca1bca1cca1dca1eca1fca20ca21ca22ca23ca24ca25ca26ca27ca28ca29ca2aca2bca2cca2dca2eca2fca30ca31ca32ca33ca34ca35ca36ca37ca38ca39ca3aca3bca3cca3dca3eca3fca40ca41ca42ca43ca44ca45ca46ca47ca48ca49ca4aca4bca4cca4dca4eca4fca50ca51ca52ca53ca54ca55ca56ca57ca58ca59ca5aca5bca5cca5dca5eca5fca60ca61ca62ca63ca64ca65ca66ca67ca68ca69ca6aca6bca6cca6dca6eca6fca70ca71ca72ca73ca74ca75ca76ca77ca78ca79ca7aca7bca7cca7dca7eca7fca80ca81ca82ca83ca84ca85ca86ca87ca88ca89ca8aca8bca8cca8dca8eca8fca90ca91ca92ca93ca94ca95ca96ca97ca98ca99ca9aca9bca9cca9dca9eca9fcaa0caa1caa2caa3caa4caa5caa6caa7caa8caa9caaacaabcaaccaadcaaecaafcab0cab1cab2cab3cab4cab5cab6cab7cab8cab9cabacabbcabccabdcabecabfcac0cac1cac2cac3cac4cac5cac6cac7cac8cac9cacacacbcacccacdcacecacfcad0cad1cad2cad3cad4cad5cad6cad7cad8cad9cadacadbcadccaddcadecadfcae0cae1cae2cae3cae4cae5cae6cae7cae8cae9caeacaebcaeccaedcaeecaefcaf0caf1caf2caf3caf4caf5caf6caf7caf8caf9cafacafbcafccafdcafecaffca00cb01cb02cb03cb04cb05cb06cb07cb08cb09cb0acb0bcb0ccb0dcb0ecb0fcb10cb11cb12cb13cb14cb15cb16cb17cb18cb19cb1acb1bcb1ccb1dcb1ecb1fcb20cb21cb22cb23cb24cb25cb26cb27cb28cb29cb2acb2bcb2ccb2dcb2ecb2fcb30cb31cb32cb33cb34cb35cb36cb37cb38cb39cb3acb3bcb3ccb3dcb3ecb3fcb40cb41cb42cb43cb44cb45cb46cb47cb48cb49cb4acb4bcb4ccb4dcb4ecb4fcb50cb51cb52cb53cb54cb55cb56cb57cb58cb59cb5acb5bcb5ccb5dcb5ecb5fcb60cb61cb62cb63cb64cb65cb66cb67cb68cb69cb6acb6bcb6ccb6dcb6ecb6fcb70cb71cb72cb73cb74cb75cb76cb77cb78cb79cb7acb7bcb7ccb7dcb7ecb7fcb80cb81cb82cb83cb84cb85cb86cb87cb88cb89cb8acb8bcb8ccb8dcb8ecb8fcb90cb91cb92cb93cb94cb95cb96cb97cb98cb99cb9acb9bcb9ccb9dcb9ecb9fcba0cba1cba2cba3cba4cba5cba6cba7cba8cba9cbaacbabcbaccbadcbaecbafcbb0cbb1cbb2cbb3cbb4cbb5cbb6cbb7cbb8cbb9cbbacbbbcbbccbbdcbbecbbfcbc0cbc1cbc2cbc3cbc4cbc5cbc6cbc7cbc8cbc9cbcacbcbcbcccbcdcbcecbcfcbd0cbd1cbd2cbd3cbd4cbd5cbd6cbd7cbd8cbd9cbdacbdbcbdccbddcbdecbdfcbe0cbe1cbe2cbe3cbe4cbe5cbe6cbe7cbe8cbe9cbeacbebcbeccbedcbeecbefcbf0cbf1cbf2cbf3cbf4cbf5cbf6cbf7cbf8cbf9cbfacbfbcbfccbfdcbfecbffcb00cc01cc02cc03cc04cc05cc06cc07cc08cc09cc0acc0bcc0ccc0dcc0ecc0fcc10cc11cc12cc13cc14cc15cc16cc17cc18cc19cc1acc1bcc1ccc1dcc1ecc1fcc20cc21cc22cc23cc24cc25cc26cc27cc28cc29cc2acc2bcc2ccc2dcc2ecc2fcc30cc31cc32cc33cc34cc35cc36cc37cc38cc39cc3acc3bcc3ccc3dcc3ecc3fcc40cc41cc42cc43cc44cc45cc46cc47cc48cc49cc4acc4bcc4ccc4dcc4ecc4fcc50cc51cc52cc53cc54cc55cc56cc57cc58cc59cc5acc5bcc5ccc5dcc5ecc5fcc60cc61cc62cc63cc64cc65cc66cc67cc68cc69cc6acc6bcc6ccc6dcc6ecc6fcc70cc71cc72cc73cc74cc75cc76cc77cc78cc79cc7acc7bcc7ccc7dcc7ecc7fcc80cc81cc82cc83cc84cc85cc86cc87cc88cc89cc8acc8bcc8ccc8dcc8ecc8fcc90cc91cc92cc93cc94cc95cc96cc97cc98cc99cc9acc9bcc9ccc9dcc9ecc9fcca0cca1cca2cca3cca4cca5cca6cca7cca8cca9ccaaccabccacccadccaeccafccb0ccb1ccb2ccb3ccb4ccb5ccb6ccb7ccb8ccb9ccbaccbbccbcccbdccbeccbfccc0ccc1ccc2ccc3ccc4ccc5ccc6ccc7ccc8ccc9cccacccbcccccccdcccecccfccd0ccd1ccd2ccd3ccd4ccd5ccd6ccd7ccd8ccd9ccdaccdbccdcccddccdeccdfcce0cce1cce2cce3cce4cce5cce6cce7cce8cce9cceaccebccecccedcceeccefccf0ccf1ccf2ccf3ccf4ccf5ccf6ccf7ccf8ccf9ccfaccfbccfcccfdccfeccffcc00cd01cd02cd03cd04cd05cd06cd07cd08cd09cd0acd0bcd0ccd0dcd0ecd0fcd10cd11cd12cd13cd14cd15cd16cd17cd18cd19cd1acd1bcd1ccd1dcd1ecd1fcd20cd21cd22cd23cd24cd25cd26cd27cd28cd29cd2acd2bcd2ccd2dcd2ecd2fcd30cd31cd32cd33cd34cd35cd36cd37cd38cd39cd3acd3bcd3ccd3dcd3ecd3fcd40cd41cd42cd43cd44cd45cd46cd47cd48cd49cd4acd4bcd4ccd4dcd4ecd4fcd50cd51cd52cd53cd54cd55cd56cd57cd58cd59cd5acd5bcd5ccd5dcd5ecd5fcd60cd61cd62cd63cd64cd65cd66cd67cd68cd69cd6acd6bcd6ccd6dcd6ecd6fcd70cd71cd72cd73cd74cd75cd76cd77cd78cd79cd7acd7bcd7ccd7dcd7ecd7fcd80cd81cd82cd83cd84cd85cd86cd87cd88cd89cd8acd8bcd8ccd8dcd8ecd8fcd90cd91cd92cd93cd94cd95cd96cd97cd98cd99cd9acd9bcd9ccd9dcd9ecd9fcda0cda1cda2cda3cda4cda5cda6cda7cda8cda9cdaacdabcdaccdadcdaecdafcdb0cdb1cdb2cdb3cdb4cdb5cdb6cdb7cdb8cdb9cdbacdbbcdbccdbdcdbecdbfcdc0cdc1cdc2cdc3cdc4cdc5cdc6cdc7cdc8cdc9cdcacdcbcdcccdcdcdcecdcfcdd0cdd1cdd2cdd3cdd4cdd5cdd6cdd7cdd8cdd9cddacddbcddccdddcddecddfcde0cde1cde2cde3cde4cde5cde6cde7cde8cde9cdeacdebcdeccdedcdeecdefcdf0cdf1cdf2cdf3cdf4cdf5cdf6cdf7cdf8cdf9cdfacdfbcdfccdfdcdfecdffcd00ce01ce02ce03ce04ce05ce06ce07ce08ce09ce0ace0bce0cce0dce0ece0fce10ce11ce12ce13ce14ce15ce16ce17ce18ce19ce1ace1bce1cce1dce1ece1fce20ce21ce22ce23ce24ce25ce26ce27ce28ce29ce2ace2bce2cce2dce2ece2fce30ce31ce32ce33ce34ce35ce36ce37ce38ce39ce3ace3bce3cce3dce3ece3fce40ce41ce42ce43ce44ce45ce46ce47ce48ce49ce4ace4bce4cce4dce4ece4fce50ce51ce52ce53ce54ce55ce56ce57ce58ce59ce5ace5bce5cce5dce5ece5fce60ce61ce62ce63ce64ce65ce66ce67ce68ce69ce6ace6bce6cce6dce6ece6fce70ce71ce72ce73ce74ce75ce76ce77ce78ce79ce7ace7bce7cce7dce7ece7fce80ce81ce82ce83ce84ce85ce86ce87ce88ce89ce8ace8bce8cce8dce8ece8fce90ce91ce92ce93ce94ce95ce96ce97ce98ce99ce9ace9bce9cce9dce9ece9fcea0cea1cea2cea3cea4cea5cea6cea7cea8cea9ceaaceabceacceadceaeceafceb0ceb1ceb2ceb3ceb4ceb5ceb6ceb7ceb8ceb9cebacebbcebccebdcebecebfcec0cec1cec2cec3cec4cec5cec6cec7cec8cec9cecacecbcecccecdcecececfced0ced1ced2ced3ced4ced5ced6ced7ced8ced9cedacedbcedcceddcedecedfcee0cee1cee2cee3cee4cee5cee6cee7cee8cee9ceeaceebceecceedceeeceefcef0cef1cef2cef3cef4cef5cef6cef7cef8cef9cefacefbcefccefdcefeceffce00cf01cf02cf03cf04cf05cf06cf07cf08cf09cf0acf0bcf0ccf0dcf0ecf0fcf10cf11cf12cf13cf14cf15cf16cf17cf18cf19cf1acf1bcf1ccf1dcf1ecf1fcf20cf21cf22cf23cf24cf25cf26cf27cf28cf29cf2acf2bcf2ccf2dcf2ecf2fcf30cf31cf32cf33cf34cf35cf36cf37cf38cf39cf3acf3bcf3ccf3dcf3ecf3fcf40cf41cf42cf43cf44cf45cf46cf47cf48cf49cf4acf4bcf4ccf4dcf4ecf4fcf50cf51cf52cf53cf54cf55cf56cf57cf58cf59cf5acf5bcf5ccf5dcf5ecf5fcf60cf61cf62cf63cf64cf65cf66cf67cf68cf69cf6acf6bcf6ccf6dcf6ecf6fcf70cf71cf72cf73cf74cf75cf76cf77cf78cf79cf7acf7bcf7ccf7dcf7ecf7fcf80cf81cf82cf83cf84cf85cf86cf87cf88cf89cf8acf8bcf8ccf8dcf8ecf8fcf90cf91cf92cf93cf94cf95cf96cf97cf98cf99cf9acf9bcf9ccf9dcf9ecf9fcfa0cfa1cfa2cfa3cfa4cfa5cfa6cfa7cfa8cfa9cfaacfabcfaccfadcfaecfafcfb0cfb1cfb2cfb3cfb4cfb5cfb6cfb7cfb8cfb9cfbacfbbcfbccfbdcfbecfbfcfc0cfc1cfc2cfc3cfc4cfc5cfc6cfc7cfc8cfc9cfcacfcbcfcccfcdcfcecfcfcfd0cfd1cfd2cfd3cfd4cfd5cfd6cfd7cfd8cfd9cfdacfdbcfdccfddcfdecfdfcfe0cfe1cfe2cfe3cfe4cfe5cfe6cfe7cfe8cfe9cfeacfebcfeccfedcfeecfefcff0cff1cff2cff3cff4cff5cff6cff7cff8cff9cffacffbcffccffdcffecfffcf00d001d002d003d004d005d006d007d008d009d00ad00bd00cd00dd00ed00fd010d011d012d013d014d015d016d017d018d019d01ad01bd01cd01dd01ed01fd020d021d022d023d024d025d026d027d028d029d02ad02bd02cd02dd02ed02fd030d031d032d033d034d035d036d037d038d039d03ad03bd03cd03dd03ed03fd040d041d042d043d044d045d046d047d048d049d04ad04bd04cd04dd04ed04fd050d051d052d053d054d055d056d057d058d059d05ad05bd05cd05dd05ed05fd060d061d062d063d064d065d066d067d068d069d06ad06bd06cd06dd06ed06fd070d071d072d073d074d075d076d077d078d079d07ad07bd07cd07dd07ed07fd080d081d082d083d084d085d086d087d088d089d08ad08bd08cd08dd08ed08fd090d091d092d093d094d095d096d097d098d099d09ad09bd09cd09dd09ed09fd0a0d0a1d0a2d0a3d0a4d0a5d0a6d0a7d0a8d0a9d0aad0abd0acd0add0aed0afd0b0d0b1d0b2d0b3d0b4d0b5d0b6d0b7d0b8d0b9d0bad0bbd0bcd0bdd0bed0bfd0c0d0c1d0c2d0c3d0c4d0c5d0c6d0c7d0c8d0c9d0cad0cbd0ccd0cdd0ced0cfd0d0d0d1d0d2d0d3d0d4d0d5d0d6d0d7d0d8d0d9d0dad0dbd0dcd0ddd0ded0dfd0e0d0e1d0e2d0e3d0e4d0e5d0e6d0e7d0e8d0e9d0ead0ebd0ecd0edd0eed0efd0f0d0f1d0f2d0f3d0f4d0f5d0f6d0f7d0f8d0f9d0fad0fbd0fcd0fdd0fed0ffd000d101d102d103d104d105d106d107d108d109d10ad10bd10cd10dd10ed10fd110d111d112d113d114d115d116d117d118d119d11ad11bd11cd11dd11ed11fd120d121d122d123d124d125d126d127d128d129d12ad12bd12cd12dd12ed12fd130d131d132d133d134d135d136d137d138d139d13ad13bd13cd13dd13ed13fd140d141d142d143d144d145d146d147d148d149d14ad14bd14cd14dd14ed14fd150d151d152d153d154d155d156d157d158d159d15ad15bd15cd15dd15ed15fd160d161d162d163d164d165d166d167d168d169d16ad16bd16cd16dd16ed16fd170d171d172d173d174d175d176d177d178d179d17ad17bd17cd17dd17ed17fd180d181d182d183d184d185d186d187d188d189d18ad18bd18cd18dd18ed18fd190d191d192d193d194d195d196d197d198d199d19ad19bd19cd19dd19ed19fd1a0d1a1d1a2d1a3d1a4d1a5d1a6d1a7d1a8d1a9d1aad1abd1acd1add1aed1afd1b0d1b1d1b2d1b3d1b4d1b5d1b6d1b7d1b8d1b9d1bad1bbd1bcd1bdd1bed1bfd1c0d1c1d1c2d1c3d1c4d1c5d1c6d1c7d1c8d1c9d1cad1cbd1ccd1cdd1ced1cfd1d0d1d1d1d2d1d3d1d4d1d5d1d6d1d7d1d8d1d9d1dad1dbd1dcd1ddd1ded1dfd1e0d1e1d1e2d1e3d1e4d1e5d1e6d1e7d1e8d1e9d1ead1ebd1ecd1edd1eed1efd1f0d1f1d1f2d1f3d1f4d1f5d1f6d1f7d1f8d1f9d1fad1fbd1fcd1fdd1fed1ffd100d201d202d203d204d205d206d207d208d209d20ad20bd20cd20dd20ed20fd210d211d212d213d214d215d216d217d218d219d21ad21bd21cd21dd21ed21fd220d221d222d223d224d225d226d227d228d229d22ad22bd22cd22dd22ed22fd230d231d232d233d234d235d236d237d238d239d23ad23bd23cd23dd23ed23fd240d241d242d243d244d245d246d247d248d249d24ad24bd24cd24dd24ed24fd250d251d252d253d254d255d256d257d258d259d25ad25bd25cd25dd25ed25fd260d261d262d263d264d265d266d267d268d269d26ad26bd26cd26dd26ed26fd270d271d272d273d274d275d276d277d278d279d27ad27bd27cd27dd27ed27fd280d281d282d283d284d285d286d287d288d289d28ad28bd28cd28dd28ed28fd290d291d292d293d294d295d296d297d298d299d29ad29bd29cd29dd29ed29fd2a0d2a1d2a2d2a3d2a4d2a5d2a6d2a7d2a8d2a9d2aad2abd2acd2add2aed2afd2b0d2b1d2b2d2b3d2b4d2b5d2b6d2b7d2b8d2b9d2bad2bbd2bcd2bdd2bed2bfd2c0d2c1d2c2d2c3d2c4d2c5d2c6d2c7d2c8d2c9d2cad2cbd2ccd2cdd2ced2cfd2d0d2d1d2d2d2d3d2d4d2d5d2d6d2d7d2d8d2d9d2dad2dbd2dcd2ddd2ded2dfd2e0d2e1d2e2d2e3d2e4d2e5d2e6d2e7d2e8d2e9d2ead2ebd2ecd2edd2eed2efd2f0d2f1d2f2d2f3d2f4d2f5d2f6d2f7d2f8d2f9d2fad2fbd2fcd2fdd2fed2ffd200d301d302d303d304d305d306d307d308d309d30ad30bd30cd30dd30ed30fd310d311d312d313d314d315d316d317d318d319d31ad31bd31cd31dd31ed31fd320d321d322d323d324d325d326d327d328d329d32ad32bd32cd32dd32ed32fd330d331d332d333d334d335d336d337d338d339d33ad33bd33cd33dd33ed33fd340d341d342d343d344d345d346d347d348d349d34ad34bd34cd34dd34ed34fd350d351d352d353d354d355d356d357d358d359d35ad35bd35cd35dd35ed35fd360d361d362d363d364d365d366d367d368d369d36ad36bd36cd36dd36ed36fd370d371d372d373d374d375d376d377d378d379d37ad37bd37cd37dd37ed37fd380d381d382d383d384d385d386d387d388d389d38ad38bd38cd38dd38ed38fd390d391d392d393d394d395d396d397d398d399d39ad39bd39cd39dd39ed39fd3a0d3a1d3a2d3a3d3a4d3a5d3a6d3a7d3a8d3a9d3aad3abd3acd3add3aed3afd3b0d3b1d3b2d3b3d3b4d3b5d3b6d3b7d3b8d3b9d3bad3bbd3bcd3bdd3bed3bfd3c0d3c1d3c2d3c3d3c4d3c5d3c6d3c7d3c8d3c9d3cad3cbd3ccd3cdd3ced3cfd3d0d3d1d3d2d3d3d3d4d3d5d3d6d3d7d3d8d3d9d3dad3dbd3dcd3ddd3ded3dfd3e0d3e1d3e2d3e3d3e4d3e5d3e6d3e7d3e8d3e9d3ead3ebd3ecd3edd3eed3efd3f0d3f1d3f2d3f3d3f4d3f5d3f6d3f7d3f8d3f9d3fad3fbd3fcd3fdd3fed3ffd300d401d402d403d404d405d406d407d408d409d40ad40bd40cd40dd40ed40fd410d411d412d413d414d415d416d417d418d419d41ad41bd41cd41dd41ed41fd420d421d422d423d424d425d426d427d428d429d42ad42bd42cd42dd42ed42fd430d431d432d433d434d435d436d437d438d439d43ad43bd43cd43dd43ed43fd440d441d442d443d444d445d446d447d448d449d44ad44bd44cd44dd44ed44fd450d451d452d453d454d455d456d457d458d459d45ad45bd45cd45dd45ed45fd460d461d462d463d464d465d466d467d468d469d46ad46bd46cd46dd46ed46fd470d471d472d473d474d475d476d477d478d479d47ad47bd47cd47dd47ed47fd480d481d482d483d484d485d486d487d488d489d48ad48bd48cd48dd48ed48fd490d491d492d493d494d495d496d497d498d499d49ad49bd49cd49dd49ed49fd4a0d4a1d4a2d4a3d4a4d4a5d4a6d4a7d4a8d4a9d4aad4abd4acd4add4aed4afd4b0d4b1d4b2d4b3d4b4d4b5d4b6d4b7d4b8d4b9d4bad4bbd4bcd4bdd4bed4bfd4c0d4c1d4c2d4c3d4c4d4c5d4c6d4c7d4c8d4c9d4cad4cbd4ccd4cdd4ced4cfd4d0d4d1d4d2d4d3d4d4d4d5d4d6d4d7d4d8d4d9d4dad4dbd4dcd4ddd4ded4dfd4e0d4e1d4e2d4e3d4e4d4e5d4e6d4e7d4e8d4e9d4ead4ebd4ecd4edd4eed4efd4f0d4f1d4f2d4f3d4f4d4f5d4f6d4f7d4f8d4f9d4fad4fbd4fcd4fdd4fed4ffd400d501d502d503d504d505d506d507d508d509d50ad50bd50cd50dd50ed50fd510d511d512d513d514d515d516d517d518d519d51ad51bd51cd51dd51ed51fd520d521d522d523d524d525d526d527d528d529d52ad52bd52cd52dd52ed52fd530d531d532d533d534d535d536d537d538d539d53ad53bd53cd53dd53ed53fd540d541d542d543d544d545d546d547d548d549d54ad54bd54cd54dd54ed54fd550d551d552d553d554d555d556d557d558d559d55ad55bd55cd55dd55ed55fd560d561d562d563d564d565d566d567d568d569d56ad56bd56cd56dd56ed56fd570d571d572d573d574d575d576d577d578d579d57ad57bd57cd57dd57ed57fd580d581d582d583d584d585d586d587d588d589d58ad58bd58cd58dd58ed58fd590d591d592d593d594d595d596d597d598d599d59ad59bd59cd59dd59ed59fd5a0d5a1d5a2d5a3d5a4d5a5d5a6d5a7d5a8d5a9d5aad5abd5acd5add5aed5afd5b0d5b1d5b2d5b3d5b4d5b5d5b6d5b7d5b8d5b9d5bad5bbd5bcd5bdd5bed5bfd5c0d5c1d5c2d5c3d5c4d5c5d5c6d5c7d5c8d5c9d5cad5cbd5ccd5cdd5ced5cfd5d0d5d1d5d2d5d3d5d4d5d5d5d6d5d7d5d8d5d9d5dad5dbd5dcd5ddd5ded5dfd5e0d5e1d5e2d5e3d5e4d5e5d5e6d5e7d5e8d5e9d5ead5ebd5ecd5edd5eed5efd5f0d5f1d5f2d5f3d5f4d5f5d5f6d5f7d5f8d5f9d5fad5fbd5fcd5fdd5fed5ffd500d601d602d603d604d605d606d607d608d609d60ad60bd60cd60dd60ed60fd610d611d612d613d614d615d616d617d618d619d61ad61bd61cd61dd61ed61fd620d621d622d623d624d625d626d627d628d629d62ad62bd62cd62dd62ed62fd630d631d632d633d634d635d636d637d638d639d63ad63bd63cd63dd63ed63fd640d641d642d643d644d645d646d647d648d649d64ad64bd64cd64dd64ed64fd650d651d652d653d654d655d656d657d658d659d65ad65bd65cd65dd65ed65fd660d661d662d663d664d665d666d667d668d669d66ad66bd66cd66dd66ed66fd670d671d672d673d674d675d676d677d678d679d67ad67bd67cd67dd67ed67fd680d681d682d683d684d685d686d687d688d689d68ad68bd68cd68dd68ed68fd690d691d692d693d694d695d696d697d698d699d69ad69bd69cd69dd69ed69fd6a0d6a1d6a2d6a3d6a4d6a5d6a6d6a7d6a8d6a9d6aad6abd6acd6add6aed6afd6b0d6b1d6b2d6b3d6b4d6b5d6b6d6b7d6b8d6b9d6bad6bbd6bcd6bdd6bed6bfd6c0d6c1d6c2d6c3d6c4d6c5d6c6d6c7d6c8d6c9d6cad6cbd6ccd6cdd6ced6cfd6d0d6d1d6d2d6d3d6d4d6d5d6d6d6d7d6d8d6d9d6dad6dbd6dcd6ddd6ded6dfd6e0d6e1d6e2d6e3d6e4d6e5d6e6d6e7d6e8d6e9d6ead6ebd6ecd6edd6eed6efd6f0d6f1d6f2d6f3d6f4d6f5d6f6d6f7d6f8d6f9d6fad6fbd6fcd6fdd6fed6ffd600d701d702d703d704d705d706d707d708d709d70ad70bd70cd70dd70ed70fd710d711d712d713d714d715d716d717d718d719d71ad71bd71cd71dd71ed71fd720d721d722d723d724d725d726d727d728d729d72ad72bd72cd72dd72ed72fd730d731d732d733d734d735d736d737d738d739d73ad73bd73cd73dd73ed73fd740d741d742d743d744d745d746d747d748d749d74ad74bd74cd74dd74ed74fd750d751d752d753d754d755d756d757d758d759d75ad75bd75cd75dd75ed75fd760d761d762d763d764d765d766d767d768d769d76ad76bd76cd76dd76ed76fd770d771d772d773d774d775d776d777d778d779d77ad77bd77cd77dd77ed77fd780d781d782d783d784d785d786d787d788d789d78ad78bd78cd78dd78ed78fd790d791d792d793d794d795d796d797d798d799d79ad79bd79cd79dd79ed79fd7a0d7a1d7a2d7a3d7a4d7a5d7a6d7a7d7a8d7a9d7aad7abd7acd7add7aed7afd7b0d7b1d7b2d7b3d7b4d7b5d7b6d7b7d7b8d7b9d7bad7bbd7bcd7bdd7bed7bfd7c0d7c1d7c2d7c3d7c4d7c5d7c6d7c7d7c8d7c9d7cad7cbd7ccd7cdd7ced7cfd7d0d7d1d7d2d7d3d7d4d7d5d7d6d7d7d7d8d7d9d7dad7dbd7dcd7ddd7ded7dfd7e0d7e1d7e2d7e3d7e4d7e5d7e6d7e7d7e8d7e9d7ead7ebd7ecd7edd7eed7efd7f0d7f1d7f2d7f3d7f4d7f5d7f6d7f7d7f8d7f9d7fad7fbd7fcd7fdd7fed7ffd700d801d802d803d804d805d806d807d808d809d80ad80bd80cd80dd80ed80fd810d811d812d813d814d815d816d817d818d819d81ad81bd81cd81dd81ed81fd820d821d822d823d824d825d826d827d828d829d82ad82bd82cd82dd82ed82fd830d831d832d833d834d835d836d837d838d839d83ad83bd83cd83dd83ed83fd840d841d842d843d844d845d846d847d848d849d84ad84bd84cd84dd84ed84fd850d851d852d853d854d855d856d857d858d859d85ad85bd85cd85dd85ed85fd860d861d862d863d864d865d866d867d868d869d86ad86bd86cd86dd86ed86fd870d871d872d873d874d875d876d877d878d879d87ad87bd87cd87dd87ed87fd880d881d882d883d884d885d886d887d888d889d88ad88bd88cd88dd88ed88fd890d891d892d893d894d895d896d897d898d899d89ad89bd89cd89dd89ed89fd8a0d8a1d8a2d8a3d8a4d8a5d8a6d8a7d8a8d8a9d8aad8abd8acd8add8aed8afd8b0d8b1d8b2d8b3d8b4d8b5d8b6d8b7d8b8d8b9d8bad8bbd8bcd8bdd8bed8bfd8c0d8c1d8c2d8c3d8c4d8c5d8c6d8c7d8c8d8c9d8cad8cbd8ccd8cdd8ced8cfd8d0d8d1d8d2d8d3d8d4d8d5d8d6d8d7d8d8d8d9d8dad8dbd8dcd8ddd8ded8dfd8e0d8e1d8e2d8e3d8e4d8e5d8e6d8e7d8e8d8e9d8ead8ebd8ecd8edd8eed8efd8f0d8f1d8f2d8f3d8f4d8f5d8f6d8f7d8f8d8f9d8fad8fbd8fcd8fdd8fed8ffd800d901d902d903d904d905d906d907d908d909d90ad90bd90cd90dd90ed90fd910d911d912d913d914d915d916d917d918d919d91ad91bd91cd91dd91ed91fd920d921d922d923d924d925d926d927d928d929d92ad92bd92cd92dd92ed92fd930d931d932d933d934d935d936d937d938d939d93ad93bd93cd93dd93ed93fd940d941d942d943d944d945d946d947d948d949d94ad94bd94cd94dd94ed94fd950d951d952d953d954d955d956d957d958d959d95ad95bd95cd95dd95ed95fd960d961d962d963d964d965d966d967d968d969d96ad96bd96cd96dd96ed96fd970d971d972d973d974d975d976d977d978d979d97ad97bd97cd97dd97ed97fd980d981d982d983d984d985d986d987d988d989d98ad98bd98cd98dd98ed98fd990d991d992d993d994d995d996d997d998d999d99ad99bd99cd99dd99ed99fd9a0d9a1d9a2d9a3d9a4d9a5d9a6d9a7d9a8d9a9d9aad9abd9acd9add9aed9afd9b0d9b1d9b2d9b3d9b4d9b5d9b6d9b7d9b8d9b9d9bad9bbd9bcd9bdd9bed9bfd9c0d9c1d9c2d9c3d9c4d9c5d9c6d9c7d9c8d9c9d9cad9cbd9ccd9cdd9ced9cfd9d0d9d1d9d2d9d3d9d4d9d5d9d6d9d7d9d8d9d9d9dad9dbd9dcd9ddd9ded9dfd9e0d9e1d9e2d9e3d9e4d9e5d9e6d9e7d9e8d9e9d9ead9ebd9ecd9edd9eed9efd9f0d9f1d9f2d9f3d9f4d9f5d9f6d9f7d9f8d9f9d9fad9fbd9fcd9fdd9fed9ffd900da01da02da03da04da05da06da07da08da09da0ada0bda0cda0dda0eda0fda10da11da12da13da14da15da16da17da18da19da1ada1bda1cda1dda1eda1fda20da21da22da23da24da25da26da27da28da29da2ada2bda2cda2dda2eda2fda30da31da32da33da34da35da36da37da38da39da3ada3bda3cda3dda3eda3fda40da41da42da43da44da45da46da47da48da49da4ada4bda4cda4dda4eda4fda50da51da52da53da54da55da56da57da58da59da5ada5bda5cda5dda5eda5fda60da61da62da63da64da65da66da67da68da69da6ada6bda6cda6dda6eda6fda70da71da72da73da74da75da76da77da78da79da7ada7bda7cda7dda7eda7fda80da81da82da83da84da85da86da87da88da89da8ada8bda8cda8dda8eda8fda90da91da92da93da94da95da96da97da98da99da9ada9bda9cda9dda9eda9fdaa0daa1daa2daa3daa4daa5daa6daa7daa8daa9daaadaabdaacdaaddaaedaafdab0dab1dab2dab3dab4dab5dab6dab7dab8dab9dabadabbdabcdabddabedabfdac0dac1dac2dac3dac4dac5dac6dac7dac8dac9dacadacbdaccdacddacedacfdad0dad1dad2dad3dad4dad5dad6dad7dad8dad9dadadadbdadcdadddadedadfdae0dae1dae2dae3dae4dae5dae6dae7dae8dae9daeadaebdaecdaeddaeedaefdaf0daf1daf2daf3daf4daf5daf6daf7daf8daf9dafadafbdafcdafddafedaffda00db01db02db03db04db05db06db07db08db09db0adb0bdb0cdb0ddb0edb0fdb10db11db12db13db14db15db16db17db18db19db1adb1bdb1cdb1ddb1edb1fdb20db21db22db23db24db25db26db27db28db29db2adb2bdb2cdb2ddb2edb2fdb30db31db32db33db34db35db36db37db38db39db3adb3bdb3cdb3ddb3edb3fdb40db41db42db43db44db45db46db47db48db49db4adb4bdb4cdb4ddb4edb4fdb50db51db52db53db54db55db56db57db58db59db5adb5bdb5cdb5ddb5edb5fdb60db61db62db63db64db65db66db67db68db69db6adb6bdb6cdb6ddb6edb6fdb70db71db72db73db74db75db76db77db78db79db7adb7bdb7cdb7ddb7edb7fdb80db81db82db83db84db85db86db87db88db89db8adb8bdb8cdb8ddb8edb8fdb90db91db92db93db94db95db96db97db98db99db9adb9bdb9cdb9ddb9edb9fdba0dba1dba2dba3dba4dba5dba6dba7dba8dba9dbaadbabdbacdbaddbaedbafdbb0dbb1dbb2dbb3dbb4dbb5dbb6dbb7dbb8dbb9dbbadbbbdbbcdbbddbbedbbfdbc0dbc1dbc2dbc3dbc4dbc5dbc6dbc7dbc8dbc9dbcadbcbdbccdbcddbcedbcfdbd0dbd1dbd2dbd3dbd4dbd5dbd6dbd7dbd8dbd9dbdadbdbdbdcdbdddbdedbdfdbe0dbe1dbe2dbe3dbe4dbe5dbe6dbe7dbe8dbe9dbeadbebdbecdbeddbeedbefdbf0dbf1dbf2dbf3dbf4dbf5dbf6dbf7dbf8dbf9dbfadbfbdbfcdbfddbfedbffdb00dc01dc02dc03dc04dc05dc06dc07dc08dc09dc0adc0bdc0cdc0ddc0edc0fdc10dc11dc12dc13dc14dc15dc16dc17dc18dc19dc1adc1bdc1cdc1ddc1edc1fdc20dc21dc22dc23dc24dc25dc26dc27dc28dc29dc2adc2bdc2cdc2ddc2edc2fdc30dc31dc32dc33dc34dc35dc36dc37dc38dc39dc3adc3bdc3cdc3ddc3edc3fdc40dc41dc42dc43dc44dc45dc46dc47dc48dc49dc4adc4bdc4cdc4ddc4edc4fdc50dc51dc52dc53dc54dc55dc56dc57dc58dc59dc5adc5bdc5cdc5ddc5edc5fdc60dc61dc62dc63dc64dc65dc66dc67dc68dc69dc6adc6bdc6cdc6ddc6edc6fdc70dc71dc72dc73dc74dc75dc76dc77dc78dc79dc7adc7bdc7cdc7ddc7edc7fdc80dc81dc82dc83dc84dc85dc86dc87dc88dc89dc8adc8bdc8cdc8ddc8edc8fdc90dc91dc92dc93dc94dc95dc96dc97dc98dc99dc9adc9bdc9cdc9ddc9edc9fdca0dca1dca2dca3dca4dca5dca6dca7dca8dca9dcaadcabdcacdcaddcaedcafdcb0dcb1dcb2dcb3dcb4dcb5dcb6dcb7dcb8dcb9dcbadcbbdcbcdcbddcbedcbfdcc0dcc1dcc2dcc3dcc4dcc5dcc6dcc7dcc8dcc9dccadccbdcccdccddccedccfdcd0dcd1dcd2dcd3dcd4dcd5dcd6dcd7dcd8dcd9dcdadcdbdcdcdcdddcdedcdfdce0dce1dce2dce3dce4dce5dce6dce7dce8dce9dceadcebdcecdceddceedcefdcf0dcf1dcf2dcf3dcf4dcf5dcf6dcf7dcf8dcf9dcfadcfbdcfcdcfddcfedcffdc00dd01dd02dd03dd04dd05dd06dd07dd08dd09dd0add0bdd0cdd0ddd0edd0fdd10dd11dd12dd13dd14dd15dd16dd17dd18dd19dd1add1bdd1cdd1ddd1edd1fdd20dd21dd22dd23dd24dd25dd26dd27dd28dd29dd2add2bdd2cdd2ddd2edd2fdd30dd31dd32dd33dd34dd35dd36dd37dd38dd39dd3add3bdd3cdd3ddd3edd3fdd40dd41dd42dd43dd44dd45dd46dd47dd48dd49dd4add4bdd4cdd4ddd4edd4fdd50dd51dd52dd53dd54dd55dd56dd57dd58dd59dd5add5bdd5cdd5ddd5edd5fdd60dd61dd62dd63dd64dd65dd66dd67dd68dd69dd6add6bdd6cdd6ddd6edd6fdd70dd71dd72dd73dd74dd75dd76dd77dd78dd79dd7add7bdd7cdd7ddd7edd7fdd80dd81dd82dd83dd84dd85dd86dd87dd88dd89dd8add8bdd8cdd8ddd8edd8fdd90dd91dd92dd93dd94dd95dd96dd97dd98dd99dd9add9bdd9cdd9ddd9edd9fdda0dda1dda2dda3dda4dda5dda6dda7dda8dda9ddaaddabddacddadddaeddafddb0ddb1ddb2ddb3ddb4ddb5ddb6ddb7ddb8ddb9ddbaddbbddbcddbdddbeddbfddc0ddc1ddc2ddc3ddc4ddc5ddc6ddc7ddc8ddc9ddcaddcbddccddcdddceddcfddd0ddd1ddd2ddd3ddd4ddd5ddd6ddd7ddd8ddd9dddadddbdddcdddddddedddfdde0dde1dde2dde3dde4dde5dde6dde7dde8dde9ddeaddebddecddedddeeddefddf0ddf1ddf2ddf3ddf4ddf5ddf6ddf7ddf8ddf9ddfaddfbddfcddfdddfeddffdd00de01de02de03de04de05de06de07de08de09de0ade0bde0cde0dde0ede0fde10de11de12de13de14de15de16de17de18de19de1ade1bde1cde1dde1ede1fde20de21de22de23de24de25de26de27de28de29de2ade2bde2cde2dde2ede2fde30de31de32de33de34de35de36de37de38de39de3ade3bde3cde3dde3ede3fde40de41de42de43de44de45de46de47de48de49de4ade4bde4cde4dde4ede4fde50de51de52de53de54de55de56de57de58de59de5ade5bde5cde5dde5ede5fde60de61de62de63de64de65de66de67de68de69de6ade6bde6cde6dde6ede6fde70de71de72de73de74de75de76de77de78de79de7ade7bde7cde7dde7ede7fde80de81de82de83de84de85de86de87de88de89de8ade8bde8cde8dde8ede8fde90de91de92de93de94de95de96de97de98de99de9ade9bde9cde9dde9ede9fdea0dea1dea2dea3dea4dea5dea6dea7dea8dea9deaadeabdeacdeaddeaedeafdeb0deb1deb2deb3deb4deb5deb6deb7deb8deb9debadebbdebcdebddebedebfdec0dec1dec2dec3dec4dec5dec6dec7dec8dec9decadecbdeccdecddecedecfded0ded1ded2ded3ded4ded5ded6ded7ded8ded9dedadedbdedcdedddedededfdee0dee1dee2dee3dee4dee5dee6dee7dee8dee9deeadeebdeecdeeddeeedeefdef0def1def2def3def4def5def6def7def8def9defadefbdefcdefddefedeffde00df01df02df03df04df05df06df07df08df09df0adf0bdf0cdf0ddf0edf0fdf10df11df12df13df14df15df16df17df18df19df1adf1bdf1cdf1ddf1edf1fdf20df21df22df23df24df25df26df27df28df29df2adf2bdf2cdf2ddf2edf2fdf30df31df32df33df34df35df36df37df38df39df3adf3bdf3cdf3ddf3edf3fdf40df41df42df43df44df45df46df47df48df49df4adf4bdf4cdf4ddf4edf4fdf50df51df52df53df54df55df56df57df58df59df5adf5bdf5cdf5ddf5edf5fdf60df61df62df63df64df65df66df67df68df69df6adf6bdf6cdf6ddf6edf6fdf70df71df72df73df74df75df76df77df78df79df7adf7bdf7cdf7ddf7edf7fdf80df81df82df83df84df85df86df87df88df89df8adf8bdf8cdf8ddf8edf8fdf90df91df92df93df94df95df96df97df98df99df9adf9bdf9cdf9ddf9edf9fdfa0dfa1dfa2dfa3dfa4dfa5dfa6dfa7dfa8dfa9dfaadfabdfacdfaddfaedfafdfb0dfb1dfb2dfb3dfb4dfb5dfb6dfb7dfb8dfb9dfbadfbbdfbcdfbddfbedfbfdfc0dfc1dfc2dfc3dfc4dfc5dfc6dfc7dfc8dfc9dfcadfcbdfccdfcddfcedfcfdfd0dfd1dfd2dfd3dfd4dfd5dfd6dfd7dfd8dfd9dfdadfdbdfdcdfdddfdedfdfdfe0dfe1dfe2dfe3dfe4dfe5dfe6dfe7dfe8dfe9dfeadfebdfecdfeddfeedfefdff0dff1dff2dff3dff4dff5dff6dff7dff8dff9dffadffbdffcdffddffedfffdf00e001e002e003e004e005e006e007e008e009e00ae00be00ce00de00ee00fe010e011e012e013e014e015e016e017e018e019e01ae01be01ce01de01ee01fe020e021e022e023e024e025e026e027e028e029e02ae02be02ce02de02ee02fe030e031e032e033e034e035e036e037e038e039e03ae03be03ce03de03ee03fe040e041e042e043e044e045e046e047e048e049e04ae04be04ce04de04ee04fe050e051e052e053e054e055e056e057e058e059e05ae05be05ce05de05ee05fe060e061e062e063e064e065e066e067e068e069e06ae06be06ce06de06ee06fe070e071e072e073e074e075e076e077e078e079e07ae07be07ce07de07ee07fe080e081e082e083e084e085e086e087e088e089e08ae08be08ce08de08ee08fe090e091e092e093e094e095e096e097e098e099e09ae09be09ce09de09ee09fe0a0e0a1e0a2e0a3e0a4e0a5e0a6e0a7e0a8e0a9e0aae0abe0ace0ade0aee0afe0b0e0b1e0b2e0b3e0b4e0b5e0b6e0b7e0b8e0b9e0bae0bbe0bce0bde0bee0bfe0c0e0c1e0c2e0c3e0c4e0c5e0c6e0c7e0c8e0c9e0cae0cbe0cce0cde0cee0cfe0d0e0d1e0d2e0d3e0d4e0d5e0d6e0d7e0d8e0d9e0dae0dbe0dce0dde0dee0dfe0e0e0e1e0e2e0e3e0e4e0e5e0e6e0e7e0e8e0e9e0eae0ebe0ece0ede0eee0efe0f0e0f1e0f2e0f3e0f4e0f5e0f6e0f7e0f8e0f9e0fae0fbe0fce0fde0fee0ffe000e101e102e103e104e105e106e107e108e109e10ae10be10ce10de10ee10fe110e111e112e113e114e115e116e117e118e119e11ae11be11ce11de11ee11fe120e121e122e123e124e125e126e127e128e129e12ae12be12ce12de12ee12fe130e131e132e133e134e135e136e137e138e139e13ae13be13ce13de13ee13fe140e141e142e143e144e145e146e147e148e149e14ae14be14ce14de14ee14fe150e151e152e153e154e155e156e157e158e159e15ae15be15ce15de15ee15fe160e161e162e163e164e165e166e167e168e169e16ae16be16ce16de16ee16fe170e171e172e173e174e175e176e177e178e179e17ae17be17ce17de17ee17fe180e181e182e183e184e185e186e187e188e189e18ae18be18ce18de18ee18fe190e191e192e193e194e195e196e197e198e199e19ae19be19ce19de19ee19fe1a0e1a1e1a2e1a3e1a4e1a5e1a6e1a7e1a8e1a9e1aae1abe1ace1ade1aee1afe1b0e1b1e1b2e1b3e1b4e1b5e1b6e1b7e1b8e1b9e1bae1bbe1bce1bde1bee1bfe1c0e1c1e1c2e1c3e1c4e1c5e1c6e1c7e1c8e1c9e1cae1cbe1cce1cde1cee1cfe1d0e1d1e1d2e1d3e1d4e1d5e1d6e1d7e1d8e1d9e1dae1dbe1dce1dde1dee1dfe1e0e1e1e1e2e1e3e1e4e1e5e1e6e1e7e1e8e1e9e1eae1ebe1ece1ede1eee1efe1f0e1f1e1f2e1f3e1f4e1f5e1f6e1f7e1f8e1f9e1fae1fbe1fce1fde1fee1ffe100e201e202e203e204e205e206e207e208e209e20ae20be20ce20de20ee20fe210e211e212e213e214e215e216e217e218e219e21ae21be21ce21de21ee21fe220e221e222e223e224e225e226e227e228e229e22ae22be22ce22de22ee22fe230e231e232e233e234e235e236e237e238e239e23ae23be23ce23de23ee23fe240e241e242e243e244e245e246e247e248e249e24ae24be24ce24de24ee24fe250e251e252e253e254e255e256e257e258e259e25ae25be25ce25de25ee25fe260e261e262e263e264e265e266e267e268e269e26ae26be26ce26de26ee26fe270e271e272e273e274e275e276e277e278e279e27ae27be27ce27de27ee27fe280e281e282e283e284e285e286e287e288e289e28ae28be28ce28de28ee28fe290e291e292e293e294e295e296e297e298e299e29ae29be29ce29de29ee29fe2a0e2a1e2a2e2a3e2a4e2a5e2a6e2a7e2a8e2a9e2aae2abe2ace2ade2aee2afe2b0e2b1e2b2e2b3e2b4e2b5e2b6e2b7e2b8e2b9e2bae2bbe2bce2bde2bee2bfe2c0e2c1e2c2e2c3e2c4e2c5e2c6e2c7e2c8e2c9e2cae2cbe2cce2cde2cee2cfe2d0e2d1e2d2e2d3e2d4e2d5e2d6e2d7e2d8e2d9e2dae2dbe2dce2dde2dee2dfe2e0e2e1e2e2e2e3e2e4e2e5e2e6e2e7e2e8e2e9e2eae2ebe2ece2ede2eee2efe2f0e2f1e2f2e2f3e2f4e2f5e2f6e2f7e2f8e2f9e2fae2fbe2fce2fde2fee2ffe200e301e302e303e304e305e306e307e308e309e30ae30be30ce30de30ee30fe310e311e312e313e314e315e316e317e318e319e31ae31be31ce31de31ee31fe320e321e322e323e324e325e326e327e328e329e32ae32be32ce32de32ee32fe330e331e332e333e334e335e336e337e338e339e33ae33be33ce33de33ee33fe340e341e342e343e344e345e346e347e348e349e34ae34be34ce34de34ee34fe350e351e352e353e354e355e356e357e358e359e35ae35be35ce35de35ee35fe360e361e362e363e364e365e366e367e368e369e36ae36be36ce36de36ee36fe370e371e372e373e374e375e376e377e378e379e37ae37be37ce37de37ee37fe380e381e382e383e384e385e386e387e388e389e38ae38be38ce38de38ee38fe390e391e392e393e394e395e396e397e398e399e39ae39be39ce39de39ee39fe3a0e3a1e3a2e3a3e3a4e3a5e3a6e3a7e3a8e3a9e3aae3abe3ace3ade3aee3afe3b0e3b1e3b2e3b3e3b4e3b5e3b6e3b7e3b8e3b9e3bae3bbe3bce3bde3bee3bfe3c0e3c1e3c2e3c3e3c4e3c5e3c6e3c7e3c8e3c9e3cae3cbe3cce3cde3cee3cfe3d0e3d1e3d2e3d3e3d4e3d5e3d6e3d7e3d8e3d9e3dae3dbe3dce3dde3dee3dfe3e0e3e1e3e2e3e3e3e4e3e5e3e6e3e7e3e8e3e9e3eae3ebe3ece3ede3eee3efe3f0e3f1e3f2e3f3e3f4e3f5e3f6e3f7e3f8e3f9e3fae3fbe3fce3fde3fee3ffe300e401e402e403e404e405e406e407e408e409e40ae40be40ce40de40ee40fe410e411e412e413e414e415e416e417e418e419e41ae41be41ce41de41ee41fe420e421e422e423e424e425e426e427e428e429e42ae42be42ce42de42ee42fe430e431e432e433e434e435e436e437e438e439e43ae43be43ce43de43ee43fe440e441e442e443e444e445e446e447e448e449e44ae44be44ce44de44ee44fe450e451e452e453e454e455e456e457e458e459e45ae45be45ce45de45ee45fe460e461e462e463e464e465e466e467e468e469e46ae46be46ce46de46ee46fe470e471e472e473e474e475e476e477e478e479e47ae47be47ce47de47ee47fe480e481e482e483e484e485e486e487e488e489e48ae48be48ce48de48ee48fe490e491e492e493e494e495e496e497e498e499e49ae49be49ce49de49ee49fe4a0e4a1e4a2e4a3e4a4e4a5e4a6e4a7e4a8e4a9e4aae4abe4ace4ade4aee4afe4b0e4b1e4b2e4b3e4b4e4b5e4b6e4b7e4b8e4b9e4bae4bbe4bce4bde4bee4bfe4c0e4c1e4c2e4c3e4c4e4c5e4c6e4c7e4c8e4c9e4cae4cbe4cce4cde4cee4cfe4d0e4d1e4d2e4d3e4d4e4d5e4d6e4d7e4d8e4d9e4dae4dbe4dce4dde4dee4dfe4e0e4e1e4e2e4e3e4e4e4e5e4e6e4e7e4e8e4e9e4eae4ebe4ece4ede4eee4efe4f0e4f1e4f2e4f3e4f4e4f5e4f6e4f7e4f8e4f9e4fae4fbe4fce4fde4fee4ffe400e501e502e503e504e505e506e507e508e509e50ae50be50ce50de50ee50fe510e511e512e513e514e515e516e517e518e519e51ae51be51ce51de51ee51fe520e521e522e523e524e525e526e527e528e529e52ae52be52ce52de52ee52fe530e531e532e533e534e535e536e537e538e539e53ae53be53ce53de53ee53fe540e541e542e543e544e545e546e547e548e549e54ae54be54ce54de54ee54fe550e551e552e553e554e555e556e557e558e559e55ae55be55ce55de55ee55fe560e561e562e563e564e565e566e567e568e569e56ae56be56ce56de56ee56fe570e571e572e573e574e575e576e577e578e579e57ae57be57ce57de57ee57fe580e581e582e583e584e585e586e587e588e589e58ae58be58ce58de58ee58fe590e591e592e593e594e595e596e597e598e599e59ae59be59ce59de59ee59fe5a0e5a1e5a2e5a3e5a4e5a5e5a6e5a7e5a8e5a9e5aae5abe5ace5ade5aee5afe5b0e5b1e5b2e5b3e5b4e5b5e5b6e5b7e5b8e5b9e5bae5bbe5bce5bde5bee5bfe5c0e5c1e5c2e5c3e5c4e5c5e5c6e5c7e5c8e5c9e5cae5cbe5cce5cde5cee5cfe5d0e5d1e5d2e5d3e5d4e5d5e5d6e5d7e5d8e5d9e5dae5dbe5dce5dde5dee5dfe5e0e5e1e5e2e5e3e5e4e5e5e5e6e5e7e5e8e5e9e5eae5ebe5ece5ede5eee5efe5f0e5f1e5f2e5f3e5f4e5f5e5f6e5f7e5f8e5f9e5fae5fbe5fce5fde5fee5ffe500e601e602e603e604e605e606e607e608e609e60ae60be60ce60de60ee60fe610e611e612e613e614e615e616e617e618e619e61ae61be61ce61de61ee61fe620e621e622e623e624e625e626e627e628e629e62ae62be62ce62de62ee62fe630e631e632e633e634e635e636e637e638e639e63ae63be63ce63de63ee63fe640e641e642e643e644e645e646e647e648e649e64ae64be64ce64de64ee64fe650e651e652e653e654e655e656e657e658e659e65ae65be65ce65de65ee65fe660e661e662e663e664e665e666e667e668e669e66ae66be66ce66de66ee66fe670e671e672e673e674e675e676e677e678e679e67ae67be67ce67de67ee67fe680e681e682e683e684e685e686e687e688e689e68ae68be68ce68de68ee68fe690e691e692e693e694e695e696e697e698e699e69ae69be69ce69de69ee69fe6a0e6a1e6a2e6a3e6a4e6a5e6a6e6a7e6a8e6a9e6aae6abe6ace6ade6aee6afe6b0e6b1e6b2e6b3e6b4e6b5e6b6e6b7e6b8e6b9e6bae6bbe6bce6bde6bee6bfe6c0e6c1e6c2e6c3e6c4e6c5e6c6e6c7e6c8e6c9e6cae6cbe6cce6cde6cee6cfe6d0e6d1e6d2e6d3e6d4e6d5e6d6e6d7e6d8e6d9e6dae6dbe6dce6dde6dee6dfe6e0e6e1e6e2e6e3e6e4e6e5e6e6e6e7e6e8e6e9e6eae6ebe6ece6ede6eee6efe6f0e6f1e6f2e6f3e6f4e6f5e6f6e6f7e6f8e6f9e6fae6fbe6fce6fde6fee6ffe600e701e702e703e704e705e706e707e708e709e70ae70be70ce70de70ee70fe710e711e712e713e714e715e716e717e718e719e71ae71be71ce71de71ee71fe720e721e722e723e724e725e726e727e728e729e72ae72be72ce72de72ee72fe730e731e732e733e734e735e736e737e738e739e73ae73be73ce73de73ee73fe740e741e742e743e744e745e746e747e748e749e74ae74be74ce74de74ee74fe750e751e752e753e754e755e756e757e758e759e75ae75be75ce75de75ee75fe760e761e762e763e764e765e766e767e768e769e76ae76be76ce76de76ee76fe770e771e772e773e774e775e776e777e778e779e77ae77be77ce77de77ee77fe780e781e782e783e784e785e786e787e788e789e78ae78be78ce78de78ee78fe790e791e792e793e794e795e796e797e798e799e79ae79be79ce79de79ee79fe7a0e7a1e7a2e7a3e7a4e7a5e7a6e7a7e7a8e7a9e7aae7abe7ace7ade7aee7afe7b0e7b1e7b2e7b3e7b4e7b5e7b6e7b7e7b8e7b9e7bae7bbe7bce7bde7bee7bfe7c0e7c1e7c2e7c3e7c4e7c5e7c6e7c7e7c8e7c9e7cae7cbe7cce7cde7cee7cfe7d0e7d1e7d2e7d3e7d4e7d5e7d6e7d7e7d8e7d9e7dae7dbe7dce7dde7dee7dfe7e0e7e1e7e2e7e3e7e4e7e5e7e6e7e7e7e8e7e9e7eae7ebe7ece7ede7eee7efe7f0e7f1e7f2e7f3e7f4e7f5e7f6e7f7e7f8e7f9e7fae7fbe7fce7fde7fee7ffe700e801e802e803e804e805e806e807e808e809e80ae80be80ce80de80ee80fe810e811e812e813e814e815e816e817e818e819e81ae81be81ce81de81ee81fe820e821e822e823e824e825e826e827e828e829e82ae82be82ce82de82ee82fe830e831e832e833e834e835e836e837e838e839e83ae83be83ce83de83ee83fe840e841e842e843e844e845e846e847e848e849e84ae84be84ce84de84ee84fe850e851e852e853e854e855e856e857e858e859e85ae85be85ce85de85ee85fe860e861e862e863e864e865e866e867e868e869e86ae86be86ce86de86ee86fe870e871e872e873e874e875e876e877e878e879e87ae87be87ce87de87ee87fe880e881e882e883e884e885e886e887e888e889e88ae88be88ce88de88ee88fe890e891e892e893e894e895e896e897e898e899e89ae89be89ce89de89ee89fe8a0e8a1e8a2e8a3e8a4e8a5e8a6e8a7e8a8e8a9e8aae8abe8ace8ade8aee8afe8b0e8b1e8b2e8b3e8b4e8b5e8b6e8b7e8b8e8b9e8bae8bbe8bce8bde8bee8bfe8c0e8c1e8c2e8c3e8c4e8c5e8c6e8c7e8c8e8c9e8cae8cbe8cce8cde8cee8cfe8d0e8d1e8d2e8d3e8d4e8d5e8d6e8d7e8d8e8d9e8dae8dbe8dce8dde8dee8dfe8e0e8e1e8e2e8e3e8e4e8e5e8e6e8e7e8e8e8e9e8eae8ebe8ece8ede8eee8efe8f0e8f1e8f2e8f3e8f4e8f5e8f6e8f7e8f8e8f9e8fae8fbe8fce8fde8fee8ffe800e901e902e903e904e905e906e907e908e909e90ae90be90ce90de90ee90fe910e911e912e913e914e915e916e917e918e919e91ae91be91ce91de91ee91fe920e921e922e923e924e925e926e927e928e929e92ae92be92ce92de92ee92fe930e931e932e933e934e935e936e937e938e939e93ae93be93ce93de93ee93fe940e941e942e943e944e945e946e947e948e949e94ae94be94ce94de94ee94fe950e951e952e953e954e955e956e957e958e959e95ae95be95ce95de95ee95fe960e961e962e963e964e965e966e967e968e969e96ae96be96ce96de96ee96fe970e971e972e973e974e975e976e977e978e979e97ae97be97ce97de97ee97fe980e981e982e983e984e985e986e987e988e989e98ae98be98ce98de98ee98fe990e991e992e993e994e995e996e997e998e999e99ae99be99ce99de99ee99fe9a0e9a1e9a2e9a3e9a4e9a5e9a6e9a7e9a8e9a9e9aae9abe9ace9ade9aee9afe9b0e9b1e9b2e9b3e9b4e9b5e9b6e9b7e9b8e9b9e9bae9bbe9bce9bde9bee9bfe9c0e9c1e9c2e9c3e9c4e9c5e9c6e9c7e9c8e9c9e9cae9cbe9cce9cde9cee9cfe9d0e9d1e9d2e9d3e9d4e9d5e9d6e9d7e9d8e9d9e9dae9dbe9dce9dde9dee9dfe9e0e9e1e9e2e9e3e9e4e9e5e9e6e9e7e9e8e9e9e9eae9ebe9ece9ede9eee9efe9f0e9f1e9f2e9f3e9f4e9f5e9f6e9f7e9f8e9f9e9fae9fbe9fce9fde9fee9ffe900ea01ea02ea03ea04ea05ea06ea07ea08ea09ea0aea0bea0cea0dea0eea0fea10ea11ea12ea13ea14ea15ea16ea17ea18ea19ea1aea1bea1cea1dea1eea1fea20ea21ea22ea23ea24ea25ea26ea27ea28ea29ea2aea2bea2cea2dea2eea2fea30ea31ea32ea33ea34ea35ea36ea37ea38ea39ea3aea3bea3cea3dea3eea3fea40ea41ea42ea43ea44ea45ea46ea47ea48ea49ea4aea4bea4cea4dea4eea4fea50ea51ea52ea53ea54ea55ea56ea57ea58ea59ea5aea5bea5cea5dea5eea5fea60ea61ea62ea63ea64ea65ea66ea67ea68ea69ea6aea6bea6cea6dea6eea6fea70ea71ea72ea73ea74ea75ea76ea77ea78ea79ea7aea7bea7cea7dea7eea7fea80ea81ea82ea83ea84ea85ea86ea87ea88ea89ea8aea8bea8cea8dea8eea8fea90ea91ea92ea93ea94ea95ea96ea97ea98ea99ea9aea9bea9cea9dea9eea9feaa0eaa1eaa2eaa3eaa4eaa5eaa6eaa7eaa8eaa9eaaaeaabeaaceaadeaaeeaafeab0eab1eab2eab3eab4eab5eab6eab7eab8eab9eabaeabbeabceabdeabeeabfeac0eac1eac2eac3eac4eac5eac6eac7eac8eac9eacaeacbeacceacdeaceeacfead0ead1ead2ead3ead4ead5ead6ead7ead8ead9eadaeadbeadceaddeadeeadfeae0eae1eae2eae3eae4eae5eae6eae7eae8eae9eaeaeaebeaeceaedeaeeeaefeaf0eaf1eaf2eaf3eaf4eaf5eaf6eaf7eaf8eaf9eafaeafbeafceafdeafeeaffea00eb01eb02eb03eb04eb05eb06eb07eb08eb09eb0aeb0beb0ceb0deb0eeb0feb10eb11eb12eb13eb14eb15eb16eb17eb18eb19eb1aeb1beb1ceb1deb1eeb1feb20eb21eb22eb23eb24eb25eb26eb27eb28eb29eb2aeb2beb2ceb2deb2eeb2feb30eb31eb32eb33eb34eb35eb36eb37eb38eb39eb3aeb3beb3ceb3deb3eeb3feb40eb41eb42eb43eb44eb45eb46eb47eb48eb49eb4aeb4beb4ceb4deb4eeb4feb50eb51eb52eb53eb54eb55eb56eb57eb58eb59eb5aeb5beb5ceb5deb5eeb5feb60eb61eb62eb63eb64eb65eb66eb67eb68eb69eb6aeb6beb6ceb6deb6eeb6feb70eb71eb72eb73eb74eb75eb76eb77eb78eb79eb7aeb7beb7ceb7deb7eeb7feb80eb81eb82eb83eb84eb85eb86eb87eb88eb89eb8aeb8beb8ceb8deb8eeb8feb90eb91eb92eb93eb94eb95eb96eb97eb98eb99eb9aeb9beb9ceb9deb9eeb9feba0eba1eba2eba3eba4eba5eba6eba7eba8eba9ebaaebabebacebadebaeebafebb0ebb1ebb2ebb3ebb4ebb5ebb6ebb7ebb8ebb9ebbaebbbebbcebbdebbeebbfebc0ebc1ebc2ebc3ebc4ebc5ebc6ebc7ebc8ebc9ebcaebcbebccebcdebceebcfebd0ebd1ebd2ebd3ebd4ebd5ebd6ebd7ebd8ebd9ebdaebdbebdcebddebdeebdfebe0ebe1ebe2ebe3ebe4ebe5ebe6ebe7ebe8ebe9ebeaebebebecebedebeeebefebf0ebf1ebf2ebf3ebf4ebf5ebf6ebf7ebf8ebf9ebfaebfbebfcebfdebfeebffeb00ec01ec02ec03ec04ec05ec06ec07ec08ec09ec0aec0bec0cec0dec0eec0fec10ec11ec12ec13ec14ec15ec16ec17ec18ec19ec1aec1bec1cec1dec1eec1fec20ec21ec22ec23ec24ec25ec26ec27ec28ec29ec2aec2bec2cec2dec2eec2fec30ec31ec32ec33ec34ec35ec36ec37ec38ec39ec3aec3bec3cec3dec3eec3fec40ec41ec42ec43ec44ec45ec46ec47ec48ec49ec4aec4bec4cec4dec4eec4fec50ec51ec52ec53ec54ec55ec56ec57ec58ec59ec5aec5bec5cec5dec5eec5fec60ec61ec62ec63ec64ec65ec66ec67ec68ec69ec6aec6bec6cec6dec6eec6fec70ec71ec72ec73ec74ec75ec76ec77ec78ec79ec7aec7bec7cec7dec7eec7fec80ec81ec82ec83ec84ec85ec86ec87ec88ec89ec8aec8bec8cec8dec8eec8fec90ec91ec92ec93ec94ec95ec96ec97ec98ec99ec9aec9bec9cec9dec9eec9feca0eca1eca2eca3eca4eca5eca6eca7eca8eca9ecaaecabecacecadecaeecafecb0ecb1ecb2ecb3ecb4ecb5ecb6ecb7ecb8ecb9ecbaecbbecbcecbdecbeecbfecc0ecc1ecc2ecc3ecc4ecc5ecc6ecc7ecc8ecc9eccaeccbeccceccdecceeccfecd0ecd1ecd2ecd3ecd4ecd5ecd6ecd7ecd8ecd9ecdaecdbecdcecddecdeecdfece0ece1ece2ece3ece4ece5ece6ece7ece8ece9eceaecebecececedeceeecefecf0ecf1ecf2ecf3ecf4ecf5ecf6ecf7ecf8ecf9ecfaecfbecfcecfdecfeecffec00ed01ed02ed03ed04ed05ed06ed07ed08ed09ed0aed0bed0ced0ded0eed0fed10ed11ed12ed13ed14ed15ed16ed17ed18ed19ed1aed1bed1ced1ded1eed1fed20ed21ed22ed23ed24ed25ed26ed27ed28ed29ed2aed2bed2ced2ded2eed2fed30ed31ed32ed33ed34ed35ed36ed37ed38ed39ed3aed3bed3ced3ded3eed3fed40ed41ed42ed43ed44ed45ed46ed47ed48ed49ed4aed4bed4ced4ded4eed4fed50ed51ed52ed53ed54ed55ed56ed57ed58ed59ed5aed5bed5ced5ded5eed5fed60ed61ed62ed63ed64ed65ed66ed67ed68ed69ed6aed6bed6ced6ded6eed6fed70ed71ed72ed73ed74ed75ed76ed77ed78ed79ed7aed7bed7ced7ded7eed7fed80ed81ed82ed83ed84ed85ed86ed87ed88ed89ed8aed8bed8ced8ded8eed8fed90ed91ed92ed93ed94ed95ed96ed97ed98ed99ed9aed9bed9ced9ded9eed9feda0eda1eda2eda3eda4eda5eda6eda7eda8eda9edaaedabedacedadedaeedafedb0edb1edb2edb3edb4edb5edb6edb7edb8edb9edbaedbbedbcedbdedbeedbfedc0edc1edc2edc3edc4edc5edc6edc7edc8edc9edcaedcbedccedcdedceedcfedd0edd1edd2edd3edd4edd5edd6edd7edd8edd9eddaeddbeddcedddeddeeddfede0ede1ede2ede3ede4ede5ede6ede7ede8ede9edeaedebedecedededeeedefedf0edf1edf2edf3edf4edf5edf6edf7edf8edf9edfaedfbedfcedfdedfeedffed00ee01ee02ee03ee04ee05ee06ee07ee08ee09ee0aee0bee0cee0dee0eee0fee10ee11ee12ee13ee14ee15ee16ee17ee18ee19ee1aee1bee1cee1dee1eee1fee20ee21ee22ee23ee24ee25ee26ee27ee28ee29ee2aee2bee2cee2dee2eee2fee30ee31ee32ee33ee34ee35ee36ee37ee38ee39ee3aee3bee3cee3dee3eee3fee40ee41ee42ee43ee44ee45ee46ee47ee48ee49ee4aee4bee4cee4dee4eee4fee50ee51ee52ee53ee54ee55ee56ee57ee58ee59ee5aee5bee5cee5dee5eee5fee60ee61ee62ee63ee64ee65ee66ee67ee68ee69ee6aee6bee6cee6dee6eee6fee70ee71ee72ee73ee74ee75ee76ee77ee78ee79ee7aee7bee7cee7dee7eee7fee80ee81ee82ee83ee84ee85ee86ee87ee88ee89ee8aee8bee8cee8dee8eee8fee90ee91ee92ee93ee94ee95ee96ee97ee98ee99ee9aee9bee9cee9dee9eee9feea0eea1eea2eea3eea4eea5eea6eea7eea8eea9eeaaeeabeeaceeadeeaeeeafeeb0eeb1eeb2eeb3eeb4eeb5eeb6eeb7eeb8eeb9eebaeebbeebceebdeebeeebfeec0eec1eec2eec3eec4eec5eec6eec7eec8eec9eecaeecbeecceecdeeceeecfeed0eed1eed2eed3eed4eed5eed6eed7eed8eed9eedaeedbeedceeddeedeeedfeee0eee1eee2eee3eee4eee5eee6eee7eee8eee9eeeaeeebeeeceeedeeeeeeefeef0eef1eef2eef3eef4eef5eef6eef7eef8eef9eefaeefbeefceefdeefeeeffee00ef01ef02ef03ef04ef05ef06ef07ef08ef09ef0aef0bef0cef0def0eef0fef10ef11ef12ef13ef14ef15ef16ef17ef18ef19ef1aef1bef1cef1def1eef1fef20ef21ef22ef23ef24ef25ef26ef27ef28ef29ef2aef2bef2cef2def2eef2fef30ef31ef32ef33ef34ef35ef36ef37ef38ef39ef3aef3bef3cef3def3eef3fef40ef41ef42ef43ef44ef45ef46ef47ef48ef49ef4aef4bef4cef4def4eef4fef50ef51ef52ef53ef54ef55ef56ef57ef58ef59ef5aef5bef5cef5def5eef5fef60ef61ef62ef63ef64ef65ef66ef67ef68ef69ef6aef6bef6cef6def6eef6fef70ef71ef72ef73ef74ef75ef76ef77ef78ef79ef7aef7bef7cef7def7eef7fef80ef81ef82ef83ef84ef85ef86ef87ef88ef89ef8aef8bef8cef8def8eef8fef90ef91ef92ef93ef94ef95ef96ef97ef98ef99ef9aef9bef9cef9def9eef9fefa0efa1efa2efa3efa4efa5efa6efa7efa8efa9efaaefabefacefadefaeefafefb0efb1efb2efb3efb4efb5efb6efb7efb8efb9efbaefbbefbcefbdefbeefbfefc0efc1efc2efc3efc4efc5efc6efc7efc8efc9efcaefcbefccefcdefceefcfefd0efd1efd2efd3efd4efd5efd6efd7efd8efd9efdaefdbefdcefddefdeefdfefe0efe1efe2efe3efe4efe5efe6efe7efe8efe9efeaefebefecefedefeeefefeff0eff1eff2eff3eff4eff5eff6eff7eff8eff9effaeffbeffceffdeffeefffef00f001f002f003f004f005f006f007f008f009f00af00bf00cf00df00ef00ff010f011f012f013f014f015f016f017f018f019f01af01bf01cf01df01ef01ff020f021f022f023f024f025f026f027f028f029f02af02bf02cf02df02ef02ff030f031f032f033f034f035f036f037f038f039f03af03bf03cf03df03ef03ff040f041f042f043f044f045f046f047f048f049f04af04bf04cf04df04ef04ff050f051f052f053f054f055f056f057f058f059f05af05bf05cf05df05ef05ff060f061f062f063f064f065f066f067f068f069f06af06bf06cf06df06ef06ff070f071f072f073f074f075f076f077f078f079f07af07bf07cf07df07ef07ff080f081f082f083f084f085f086f087f088f089f08af08bf08cf08df08ef08ff090f091f092f093f094f095f096f097f098f099f09af09bf09cf09df09ef09ff0a0f0a1f0a2f0a3f0a4f0a5f0a6f0a7f0a8f0a9f0aaf0abf0acf0adf0aef0aff0b0f0b1f0b2f0b3f0b4f0b5f0b6f0b7f0b8f0b9f0baf0bbf0bcf0bdf0bef0bff0c0f0c1f0c2f0c3f0c4f0c5f0c6f0c7f0c8f0c9f0caf0cbf0ccf0cdf0cef0cff0d0f0d1f0d2f0d3f0d4f0d5f0d6f0d7f0d8f0d9f0daf0dbf0dcf0ddf0def0dff0e0f0e1f0e2f0e3f0e4f0e5f0e6f0e7f0e8f0e9f0eaf0ebf0ecf0edf0eef0eff0f0f0f1f0f2f0f3f0f4f0f5f0f6f0f7f0f8f0f9f0faf0fbf0fcf0fdf0fef0fff000f101f102f103f104f105f106f107f108f109f10af10bf10cf10df10ef10ff110f111f112f113f114f115f116f117f118f119f11af11bf11cf11df11ef11ff120f121f122f123f124f125f126f127f128f129f12af12bf12cf12df12ef12ff130f131f132f133f134f135f136f137f138f139f13af13bf13cf13df13ef13ff140f141f142f143f144f145f146f147f148f149f14af14bf14cf14df14ef14ff150f151f152f153f154f155f156f157f158f159f15af15bf15cf15df15ef15ff160f161f162f163f164f165f166f167f168f169f16af16bf16cf16df16ef16ff170f171f172f173f174f175f176f177f178f179f17af17bf17cf17df17ef17ff180f181f182f183f184f185f186f187f188f189f18af18bf18cf18df18ef18ff190f191f192f193f194f195f196f197f198f199f19af19bf19cf19df19ef19ff1a0f1a1f1a2f1a3f1a4f1a5f1a6f1a7f1a8f1a9f1aaf1abf1acf1adf1aef1aff1b0f1b1f1b2f1b3f1b4f1b5f1b6f1b7f1b8f1b9f1baf1bbf1bcf1bdf1bef1bff1c0f1c1f1c2f1c3f1c4f1c5f1c6f1c7f1c8f1c9f1caf1cbf1ccf1cdf1cef1cff1d0f1d1f1d2f1d3f1d4f1d5f1d6f1d7f1d8f1d9f1daf1dbf1dcf1ddf1def1dff1e0f1e1f1e2f1e3f1e4f1e5f1e6f1e7f1e8f1e9f1eaf1ebf1ecf1edf1eef1eff1f0f1f1f1f2f1f3f1f4f1f5f1f6f1f7f1f8f1f9f1faf1fbf1fcf1fdf1fef1fff100f201f202f203f204f205f206f207f208f209f20af20bf20cf20df20ef20ff210f211f212f213f214f215f216f217f218f219f21af21bf21cf21df21ef21ff220f221f222f223f224f225f226f227f228f229f22af22bf22cf22df22ef22ff230f231f232f233f234f235f236f237f238f239f23af23bf23cf23df23ef23ff240f241f242f243f244f245f246f247f248f249f24af24bf24cf24df24ef24ff250f251f252f253f254f255f256f257f258f259f25af25bf25cf25df25ef25ff260f261f262f263f264f265f266f267f268f269f26af26bf26cf26df26ef26ff270f271f272f273f274f275f276f277f278f279f27af27bf27cf27df27ef27ff280f281f282f283f284f285f286f287f288f289f28af28bf28cf28df28ef28ff290f291f292f293f294f295f296f297f298f299f29af29bf29cf29df29ef29ff2a0f2a1f2a2f2a3f2a4f2a5f2a6f2a7f2a8f2a9f2aaf2abf2acf2adf2aef2aff2b0f2b1f2b2f2b3f2b4f2b5f2b6f2b7f2b8f2b9f2baf2bbf2bcf2bdf2bef2bff2c0f2c1f2c2f2c3f2c4f2c5f2c6f2c7f2c8f2c9f2caf2cbf2ccf2cdf2cef2cff2d0f2d1f2d2f2d3f2d4f2d5f2d6f2d7f2d8f2d9f2daf2dbf2dcf2ddf2def2dff2e0f2e1f2e2f2e3f2e4f2e5f2e6f2e7f2e8f2e9f2eaf2ebf2ecf2edf2eef2eff2f0f2f1f2f2f2f3f2f4f2f5f2f6f2f7f2f8f2f9f2faf2fbf2fcf2fdf2fef2fff200f301f302f303f304f305f306f307f308f309f30af30bf30cf30df30ef30ff310f311f312f313f314f315f316f317f318f319f31af31bf31cf31df31ef31ff320f321f322f323f324f325f326f327f328f329f32af32bf32cf32df32ef32ff330f331f332f333f334f335f336f337f338f339f33af33bf33cf33df33ef33ff340f341f342f343f344f345f346f347f348f349f34af34bf34cf34df34ef34ff350f351f352f353f354f355f356f357f358f359f35af35bf35cf35df35ef35ff360f361f362f363f364f365f366f367f368f369f36af36bf36cf36df36ef36ff370f371f372f373f374f375f376f377f378f379f37af37bf37cf37df37ef37ff380f381f382f383f384f385f386f387f388f389f38af38bf38cf38df38ef38ff390f391f392f393f394f395f396f397f398f399f39af39bf39cf39df39ef39ff3a0f3a1f3a2f3a3f3a4f3a5f3a6f3a7f3a8f3a9f3aaf3abf3acf3adf3aef3aff3b0f3b1f3b2f3b3f3b4f3b5f3b6f3b7f3b8f3b9f3baf3bbf3bcf3bdf3bef3bff3c0f3c1f3c2f3c3f3c4f3c5f3c6f3c7f3c8f3c9f3caf3cbf3ccf3cdf3cef3cff3d0f3d1f3d2f3d3f3d4f3d5f3d6f3d7f3d8f3d9f3daf3dbf3dcf3ddf3def3dff3e0f3e1f3e2f3e3f3e4f3e5f3e6f3e7f3e8f3e9f3eaf3ebf3ecf3edf3eef3eff3f0f3f1f3f2f3f3f3f4f3f5f3f6f3f7f3f8f3f9f3faf3fbf3fcf3fdf3fef3fff300f401f402f403f404f405f406f407f408f409f40af40bf40cf40df40ef40ff410f411f412f413f414f415f416f417f418f419f41af41bf41cf41df41ef41ff420f421f422f423f424f425f426f427f428f429f42af42bf42cf42df42ef42ff430f431f432f433f434f435f436f437f438f439f43af43bf43cf43df43ef43ff440f441f442f443f444f445f446f447f448f449f44af44bf44cf44df44ef44ff450f451f452f453f454f455f456f457f458f459f45af45bf45cf45df45ef45ff460f461f462f463f464f465f466f467f468f469f46af46bf46cf46df46ef46ff470f471f472f473f474f475f476f477f478f479f47af47bf47cf47df47ef47ff480f481f482f483f484f485f486f487f488f489f48af48bf48cf48df48ef48ff490f491f492f493f494f495f496f497f498f499f49af49bf49cf49df49ef49ff4a0f4a1f4a2f4a3f4a4f4a5f4a6f4a7f4a8f4a9f4aaf4abf4acf4adf4aef4aff4b0f4b1f4b2f4b3f4b4f4b5f4b6f4b7f4b8f4b9f4baf4bbf4bcf4bdf4bef4bff4c0f4c1f4c2f4c3f4c4f4c5f4c6f4c7f4c8f4c9f4caf4cbf4ccf4cdf4cef4cff4d0f4d1f4d2f4d3f4d4f4d5f4d6f4d7f4d8f4d9f4daf4dbf4dcf4ddf4def4dff4e0f4e1f4e2f4e3f4e4f4e5f4e6f4e7f4e8f4e9f4eaf4ebf4ecf4edf4eef4eff4f0f4f1f4f2f4f3f4f4f4f5f4f6f4f7f4f8f4f9f4faf4fbf4fcf4fdf4fef4fff400f501f502f503f504f505f506f507f508f509f50af50bf50cf50df50ef50ff510f511f512f513f514f515f516f517f518f519f51af51bf51cf51df51ef51ff520f521f522f523f524f525f526f527f528f529f52af52bf52cf52df52ef52ff530f531f532f533f534f535f536f537f538f539f53af53bf53cf53df53ef53ff540f541f542f543f544f545f546f547f548f549f54af54bf54cf54df54ef54ff550f551f552f553f554f555f556f557f558f559f55af55bf55cf55df55ef55ff560f561f562f563f564f565f566f567f568f569f56af56bf56cf56df56ef56ff570f571f572f573f574f575f576f577f578f579f57af57bf57cf57df57ef57ff580f581f582f583f584f585f586f587f588f589f58af58bf58cf58df58ef58ff590f591f592f593f594f595f596f597f598f599f59af59bf59cf59df59ef59ff5a0f5a1f5a2f5a3f5a4f5a5f5a6f5a7f5a8f5a9f5aaf5abf5acf5adf5aef5aff5b0f5b1f5b2f5b3f5b4f5b5f5b6f5b7f5b8f5b9f5baf5bbf5bcf5bdf5bef5bff5c0f5c1f5c2f5c3f5c4f5c5f5c6f5c7f5c8f5c9f5caf5cbf5ccf5cdf5cef5cff5d0f5d1f5d2f5d3f5d4f5d5f5d6f5d7f5d8f5d9f5daf5dbf5dcf5ddf5def5dff5e0f5e1f5e2f5e3f5e4f5e5f5e6f5e7f5e8f5e9f5eaf5ebf5ecf5edf5eef5eff5f0f5f1f5f2f5f3f5f4f5f5f5f6f5f7f5f8f5f9f5faf5fbf5fcf5fdf5fef5fff500f601f602f603f604f605f606f607f608f609f60af60bf60cf60df60ef60ff610f611f612f613f614f615f616f617f618f619f61af61bf61cf61df61ef61ff620f621f622f623f624f625f626f627f628f629f62af62bf62cf62df62ef62ff630f631f632f633f634f635f636f637f638f639f63af63bf63cf63df63ef63ff640f641f642f643f644f645f646f647f648f649f64af64bf64cf64df64ef64ff650f651f652f653f654f655f656f657f658f659f65af65bf65cf65df65ef65ff660f661f662f663f664f665f666f667f668f669f66af66bf66cf66df66ef66ff670f671f672f673f674f675f676f677f678f679f67af67bf67cf67df67ef67ff680f681f682f683f684f685f686f687f688f689f68af68bf68cf68df68ef68ff690f691f692f693f694f695f696f697f698f699f69af69bf69cf69df69ef69ff6a0f6a1f6a2f6a3f6a4f6a5f6a6f6a7f6a8f6a9f6aaf6abf6acf6adf6aef6aff6b0f6b1f6b2f6b3f6b4f6b5f6b6f6b7f6b8f6b9f6baf6bbf6bcf6bdf6bef6bff6c0f6c1f6c2f6c3f6c4f6c5f6c6f6c7f6c8f6c9f6caf6cbf6ccf6cdf6cef6cff6d0f6d1f6d2f6d3f6d4f6d5f6d6f6d7f6d8f6d9f6daf6dbf6dcf6ddf6def6dff6e0f6e1f6e2f6e3f6e4f6e5f6e6f6e7f6e8f6e9f6eaf6ebf6ecf6edf6eef6eff6f0f6f1f6f2f6f3f6f4f6f5f6f6f6f7f6f8f6f9f6faf6fbf6fcf6fdf6fef6fff600f701f702f703f704f705f706f707f708f709f70af70bf70cf70df70ef70ff710f711f712f713f714f715f716f717f718f719f71af71bf71cf71df71ef71ff720f721f722f723f724f725f726f727f728f729f72af72bf72cf72df72ef72ff730f731f732f733f734f735f736f737f738f739f73af73bf73cf73df73ef73ff740f741f742f743f744f745f746f747f748f749f74af74bf74cf74df74ef74ff750f751f752f753f754f755f756f757f758f759f75af75bf75cf75df75ef75ff760f761f762f763f764f765f766f767f768f769f76af76bf76cf76df76ef76ff770f771f772f773f774f775f776f777f778f779f77af77bf77cf77df77ef77ff780f781f782f783f784f785f786f787f788f789f78af78bf78cf78df78ef78ff790f791f792f793f794f795f796f797f798f799f79af79bf79cf79df79ef79ff7a0f7a1f7a2f7a3f7a4f7a5f7a6f7a7f7a8f7a9f7aaf7abf7acf7adf7aef7aff7b0f7b1f7b2f7b3f7b4f7b5f7b6f7b7f7b8f7b9f7baf7bbf7bcf7bdf7bef7bff7c0f7c1f7c2f7c3f7c4f7c5f7c6f7c7f7c8f7c9f7caf7cbf7ccf7cdf7cef7cff7d0f7d1f7d2f7d3f7d4f7d5f7d6f7d7f7d8f7d9f7daf7dbf7dcf7ddf7def7dff7e0f7e1f7e2f7e3f7e4f7e5f7e6f7e7f7e8f7e9f7eaf7ebf7ecf7edf7eef7eff7f0f7f1f7f2f7f3f7f4f7f5f7f6f7f7f7f8f7f9f7faf7fbf7fcf7fdf7fef7fff700f801f802f803f804f805f806f807f808f809f80af80bf80cf80df80ef80ff810f811f812f813f814f815f816f817f818f819f81af81bf81cf81df81ef81ff820f821f822f823f824f825f826f827f828f829f82af82bf82cf82df82ef82ff830f831f832f833f834f835f836f837f838f839f83af83bf83cf83df83ef83ff840f841f842f843f844f845f846f847f848f849f84af84bf84cf84df84ef84ff850f851f852f853f854f855f856f857f858f859f85af85bf85cf85df85ef85ff860f861f862f863f864f865f866f867f868f869f86af86bf86cf86df86ef86ff870f871f872f873f874f875f876f877f878f879f87af87bf87cf87df87ef87ff880f881f882f883f884f885f886f887f888f889f88af88bf88cf88df88ef88ff890f891f892f893f894f895f896f897f898f899f89af89bf89cf89df89ef89ff8a0f8a1f8a2f8a3f8a4f8a5f8a6f8a7f8a8f8a9f8aaf8abf8acf8adf8aef8aff8b0f8b1f8b2f8b3f8b4f8b5f8b6f8b7f8b8f8b9f8baf8bbf8bcf8bdf8bef8bff8c0f8c1f8c2f8c3f8c4f8c5f8c6f8c7f8c8f8c9f8caf8cbf8ccf8cdf8cef8cff8d0f8d1f8d2f8d3f8d4f8d5f8d6f8d7f8d8f8d9f8daf8dbf8dcf8ddf8def8dff8e0f8e1f8e2f8e3f8e4f8e5f8e6f8e7f8e8f8e9f8eaf8ebf8ecf8edf8eef8eff8f0f8f1f8f2f8f3f8f4f8f5f8f6f8f7f8f8f8f9f8faf8fbf8fcf8fdf8fef8fff800f901f902f903f904f905f906f907f908f909f90af90bf90cf90df90ef90ff910f911f912f913f914f915f916f917f918f919f91af91bf91cf91df91ef91ff920f921f922f923f924f925f926f927f928f929f92af92bf92cf92df92ef92ff930f931f932f933f934f935f936f937f938f939f93af93bf93cf93df93ef93ff940f941f942f943f944f945f946f947f948f949f94af94bf94cf94df94ef94ff950f951f952f953f954f955f956f957f958f959f95af95bf95cf95df95ef95ff960f961f962f963f964f965f966f967f968f969f96af96bf96cf96df96ef96ff970f971f972f973f974f975f976f977f978f979f97af97bf97cf97df97ef97ff980f981f982f983f984f985f986f987f988f989f98af98bf98cf98df98ef98ff990f991f992f993f994f995f996f997f998f999f99af99bf99cf99df99ef99ff9a0f9a1f9a2f9a3f9a4f9a5f9a6f9a7f9a8f9a9f9aaf9abf9acf9adf9aef9aff9b0f9b1f9b2f9b3f9b4f9b5f9b6f9b7f9b8f9b9f9baf9bbf9bcf9bdf9bef9bff9c0f9c1f9c2f9c3f9c4f9c5f9c6f9c7f9c8f9c9f9caf9cbf9ccf9cdf9cef9cff9d0f9d1f9d2f9d3f9d4f9d5f9d6f9d7f9d8f9d9f9daf9dbf9dcf9ddf9def9dff9e0f9e1f9e2f9e3f9e4f9e5f9e6f9e7f9e8f9e9f9eaf9ebf9ecf9edf9eef9eff9f0f9f1f9f2f9f3f9f4f9f5f9f6f9f7f9f8f9f9f9faf9fbf9fcf9fdf9fef9fff900fa01fa02fa03fa04fa05fa06fa07fa08fa09fa0afa0bfa0cfa0dfa0efa0ffa10fa11fa12fa13fa14fa15fa16fa17fa18fa19fa1afa1bfa1cfa1dfa1efa1ffa20fa21fa22fa23fa24fa25fa26fa27fa28fa29fa2afa2bfa2cfa2dfa2efa2ffa30fa31fa32fa33fa34fa35fa36fa37fa38fa39fa3afa3bfa3cfa3dfa3efa3ffa40fa41fa42fa43fa44fa45fa46fa47fa48fa49fa4afa4bfa4cfa4dfa4efa4ffa50fa51fa52fa53fa54fa55fa56fa57fa58fa59fa5afa5bfa5cfa5dfa5efa5ffa60fa61fa62fa63fa64fa65fa66fa67fa68fa69fa6afa6bfa6cfa6dfa6efa6ffa70fa71fa72fa73fa74fa75fa76fa77fa78fa79fa7afa7bfa7cfa7dfa7efa7ffa80fa81fa82fa83fa84fa85fa86fa87fa88fa89fa8afa8bfa8cfa8dfa8efa8ffa90fa91fa92fa93fa94fa95fa96fa97fa98fa99fa9afa9bfa9cfa9dfa9efa9ffaa0faa1faa2faa3faa4faa5faa6faa7faa8faa9faaafaabfaacfaadfaaefaaffab0fab1fab2fab3fab4fab5fab6fab7fab8fab9fabafabbfabcfabdfabefabffac0fac1fac2fac3fac4fac5fac6fac7fac8fac9facafacbfaccfacdfacefacffad0fad1fad2fad3fad4fad5fad6fad7fad8fad9fadafadbfadcfaddfadefadffae0fae1fae2fae3fae4fae5fae6fae7fae8fae9faeafaebfaecfaedfaeefaeffaf0faf1faf2faf3faf4faf5faf6faf7faf8faf9fafafafbfafcfafdfafefafffa00fb01fb02fb03fb04fb05fb06fb07fb08fb09fb0afb0bfb0cfb0dfb0efb0ffb10fb11fb12fb13fb14fb15fb16fb17fb18fb19fb1afb1bfb1cfb1dfb1efb1ffb20fb21fb22fb23fb24fb25fb26fb27fb28fb29fb2afb2bfb2cfb2dfb2efb2ffb30fb31fb32fb33fb34fb35fb36fb37fb38fb39fb3afb3bfb3cfb3dfb3efb3ffb40fb41fb42fb43fb44fb45fb46fb47fb48fb49fb4afb4bfb4cfb4dfb4efb4ffb50fb51fb52fb53fb54fb55fb56fb57fb58fb59fb5afb5bfb5cfb5dfb5efb5ffb60fb61fb62fb63fb64fb65fb66fb67fb68fb69fb6afb6bfb6cfb6dfb6efb6ffb70fb71fb72fb73fb74fb75fb76fb77fb78fb79fb7afb7bfb7cfb7dfb7efb7ffb80fb81fb82fb83fb84fb85fb86fb87fb88fb89fb8afb8bfb8cfb8dfb8efb8ffb90fb91fb92fb93fb94fb95fb96fb97fb98fb99fb9afb9bfb9cfb9dfb9efb9ffba0fba1fba2fba3fba4fba5fba6fba7fba8fba9fbaafbabfbacfbadfbaefbaffbb0fbb1fbb2fbb3fbb4fbb5fbb6fbb7fbb8fbb9fbbafbbbfbbcfbbdfbbefbbffbc0fbc1fbc2fbc3fbc4fbc5fbc6fbc7fbc8fbc9fbcafbcbfbccfbcdfbcefbcffbd0fbd1fbd2fbd3fbd4fbd5fbd6fbd7fbd8fbd9fbdafbdbfbdcfbddfbdefbdffbe0fbe1fbe2fbe3fbe4fbe5fbe6fbe7fbe8fbe9fbeafbebfbecfbedfbeefbeffbf0fbf1fbf2fbf3fbf4fbf5fbf6fbf7fbf8fbf9fbfafbfbfbfcfbfdfbfefbfffb00fc01fc02fc03fc04fc05fc06fc07fc08fc09fc0afc0bfc0cfc0dfc0efc0ffc10fc11fc12fc13fc14fc15fc16fc17fc18fc19fc1afc1bfc1cfc1dfc1efc1ffc20fc21fc22fc23fc24fc25fc26fc27fc28fc29fc2afc2bfc2cfc2dfc2efc2ffc30fc31fc32fc33fc34fc35fc36fc37fc38fc39fc3afc3bfc3cfc3dfc3efc3ffc40fc41fc42fc43fc44fc45fc46fc47fc48fc49fc4afc4bfc4cfc4dfc4efc4ffc50fc51fc52fc53fc54fc55fc56fc57fc58fc59fc5afc5bfc5cfc5dfc5efc5ffc60fc61fc62fc63fc64fc65fc66fc67fc68fc69fc6afc6bfc6cfc6dfc6efc6ffc70fc71fc72fc73fc74fc75fc76fc77fc78fc79fc7afc7bfc7cfc7dfc7efc7ffc80fc81fc82fc83fc84fc85fc86fc87fc88fc89fc8afc8bfc8cfc8dfc8efc8ffc90fc91fc92fc93fc94fc95fc96fc97fc98fc99fc9afc9bfc9cfc9dfc9efc9ffca0fca1fca2fca3fca4fca5fca6fca7fca8fca9fcaafcabfcacfcadfcaefcaffcb0fcb1fcb2fcb3fcb4fcb5fcb6fcb7fcb8fcb9fcbafcbbfcbcfcbdfcbefcbffcc0fcc1fcc2fcc3fcc4fcc5fcc6fcc7fcc8fcc9fccafccbfcccfccdfccefccffcd0fcd1fcd2fcd3fcd4fcd5fcd6fcd7fcd8fcd9fcdafcdbfcdcfcddfcdefcdffce0fce1fce2fce3fce4fce5fce6fce7fce8fce9fceafcebfcecfcedfceefceffcf0fcf1fcf2fcf3fcf4fcf5fcf6fcf7fcf8fcf9fcfafcfbfcfcfcfdfcfefcfffc00fd01fd02fd03fd04fd05fd06fd07fd08fd09fd0afd0bfd0cfd0dfd0efd0ffd10fd11fd12fd13fd14fd15fd16fd17fd18fd19fd1afd1bfd1cfd1dfd1efd1ffd20fd21fd22fd23fd24fd25fd26fd27fd28fd29fd2afd2bfd2cfd2dfd2efd2ffd30fd31fd32fd33fd34fd35fd36fd37fd38fd39fd3afd3bfd3cfd3dfd3efd3ffd40fd41fd42fd43fd44fd45fd46fd47fd48fd49fd4afd4bfd4cfd4dfd4efd4ffd50fd51fd52fd53fd54fd55fd56fd57fd58fd59fd5afd5bfd5cfd5dfd5efd5ffd60fd61fd62fd63fd64fd65fd66fd67fd68fd69fd6afd6bfd6cfd6dfd6efd6ffd70fd71fd72fd73fd74fd75fd76fd77fd78fd79fd7afd7bfd7cfd7dfd7efd7ffd80fd81fd82fd83fd84fd85fd86fd87fd88fd89fd8afd8bfd8cfd8dfd8efd8ffd90fd91fd92fd93fd94fd95fd96fd97fd98fd99fd9afd9bfd9cfd9dfd9efd9ffda0fda1fda2fda3fda4fda5fda6fda7fda8fda9fdaafdabfdacfdadfdaefdaffdb0fdb1fdb2fdb3fdb4fdb5fdb6fdb7fdb8fdb9fdbafdbbfdbcfdbdfdbefdbffdc0fdc1fdc2fdc3fdc4fdc5fdc6fdc7fdc8fdc9fdcafdcbfdccfdcdfdcefdcffdd0fdd1fdd2fdd3fdd4fdd5fdd6fdd7fdd8fdd9fddafddbfddcfdddfddefddffde0fde1fde2fde3fde4fde5fde6fde7fde8fde9fdeafdebfdecfdedfdeefdeffdf0fdf1fdf2fdf3fdf4fdf5fdf6fdf7fdf8fdf9fdfafdfbfdfcfdfdfdfefdfffd00fe01fe02fe03fe04fe05fe06fe07fe08fe09fe0afe0bfe0cfe0dfe0efe0ffe10fe11fe12fe13fe14fe15fe16fe17fe18fe19fe1afe1bfe1cfe1dfe1efe1ffe20fe21fe22fe23fe24fe25fe26fe27fe28fe29fe2afe2bfe2cfe2dfe2efe2ffe30fe31fe32fe33fe34fe35fe36fe37fe38fe39fe3afe3bfe3cfe3dfe3efe3ffe40fe41fe42fe43fe44fe45fe46fe47fe48fe49fe4afe4bfe4cfe4dfe4efe4ffe50fe51fe52fe53fe54fe55fe56fe57fe58fe59fe5afe5bfe5cfe5dfe5efe5ffe60fe61fe62fe63fe64fe65fe66fe67fe68fe69fe6afe6bfe6cfe6dfe6efe6ffe70fe71fe72fe73fe74fe75fe76fe77fe78fe79fe7afe7bfe7cfe7dfe7efe7ffe80fe81fe82fe83fe84fe85fe86fe87fe88fe89fe8afe8bfe8cfe8dfe8efe8ffe90fe91fe92fe93fe94fe95fe96fe97fe98fe99fe9afe9bfe9cfe9dfe9efe9ffea0fea1fea2fea3fea4fea5fea6fea7fea8fea9feaafeabfeacfeadfeaefeaffeb0feb1feb2feb3feb4feb5feb6feb7feb8feb9febafebbfebcfebdfebefebffec0fec1fec2fec3fec4fec5fec6fec7fec8fec9fecafecbfeccfecdfecefecffed0fed1fed2fed3fed4fed5fed6fed7fed8fed9fedafedbfedcfeddfedefedffee0fee1fee2fee3fee4fee5fee6fee7fee8fee9feeafeebfeecfeedfeeefeeffef0fef1fef2fef3fef4fef5fef6fef7fef8fef9fefafefbfefcfefdfefefefffe00ff01ff02ff03ff04ff05ff06ff07ff08ff09ff0aff0bff0cff0dff0eff0fff10ff11ff12ff13ff14ff15ff16ff17ff18ff19ff1aff1bff1cff1dff1eff1fff20ff21ff22ff23ff24ff25ff26ff27ff28ff29ff2aff2bff2cff2dff2eff2fff30ff31ff32ff33ff34ff35ff36ff37ff38ff39ff3aff3bff3cff3dff3eff3fff40ff21ff22ff23ff24ff25ff26ff27ff28ff29ff2aff2bff2cff2dff2eff2fff30ff31ff32ff33ff34ff35ff36ff37ff38ff39ff3aff5bff5cff5dff5eff5fff60ff61ff62ff63ff64ff65ff66ff67ff68ff69ff6aff6bff6cff6dff6eff6fff70ff71ff72ff73ff74ff75ff76ff77ff78ff79ff7aff7bff7cff7dff7eff7fff80ff81ff82ff83ff84ff85ff86ff87ff88ff89ff8aff8bff8cff8dff8eff8fff90ff91ff92ff93ff94ff95ff96ff97ff98ff99ff9aff9bff9cff9dff9eff9fffa0ffa1ffa2ffa3ffa4ffa5ffa6ffa7ffa8ffa9ffaaffabffacffadffaeffafffb0ffb1ffb2ffb3ffb4ffb5ffb6ffb7ffb8ffb9ffbaffbbffbcffbdffbeffbfffc0ffc1ffc2ffc3ffc4ffc5ffc6ffc7ffc8ffc9ffcaffcbffccffcdffceffcfffd0ffd1ffd2ffd3ffd4ffd5ffd6ffd7ffd8ffd9ffdaffdbffdcffddffdeffdfffe0ffe1ffe2ffe3ffe4ffe5ffe6ffe7ffe8ffe9ffeaffebffecffedffeeffeffff0fff1fff2fff3fff4fff5fff6fff7fff8fff9fffafffbfffcfffdfffeffffff", 0x20000, 0x87400}, {&(0x7f000003ca00)="46494c4530000300000000000000000001000100380001009801000000040000000000000000000004000000000000000800000000000000100000006000000000001800000000004800000018000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000300000006800000000001800000002004a000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006c000000000000006c0000000000000600000000000000040324004d00460054000000000000008000000048000000010040000000010000000000000000004a000000000000004000000000000000002c01000000000000180100000000000018010000000000114b100000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000000004000000000000100000000000000010000000000000001101080000000000ffffffff00"/416, 0x1a0, 0xffc00}, {&(0x7f000003cc00)='\x00\x00\x00\x00\x00\x00\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}, {&(0x7f000003cd00)="000000000000000000000000000000000000000000000000000000000000080046494c4530000300000000000000000001000100380001005801000000040000000000000000000003000000010000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601001000000000000000100000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000030000000000000040000000000000000010000000000000001000000000000000100000000000002104ff0300000000ffffffff00"/384, 0x180, 0xfffe0}, {&(0x7f000003cf00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1001e0}, {&(0x7f000003d000)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000002000100380001005801000000040000000000000000000003000000020000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000004000000000000000400000000000600000000000000080324004c006f006700460069006c006500000000000000800000004800000001004000000001000000000000000000ff0000000000000040000000000000000000040000000000000004000000000000000400000000002200010304000000ffffffff00"/384, 0x180, 0x1003e0}, {&(0x7f000003d200)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1005e0}, {&(0x7f000003d300)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000300010038000100e001000000040000000000000000000006000000030000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000200", 0x220, 0x1007e0}, {&(0x7f000003d600)="0000000000000000000000000000000000000000000000000000000000000200ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff73797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c000000000000", 0x40440, 0x100be0}, {&(0x7f000007db00)="eb52904e5446532020202000020200000000000000f8000000000000000000000000000080008000ff0f0000000000001000000000000000ff0300000000000001000000040000003daaf55af9830909000000000e1fbe717cac22c0740b56b40ebb0700cd105eebf032e4cd16cd19ebfe54686973206973206e6f74206120626f6f7461626c65206469736b2e20506c6561736520696e73657274206120626f6f7461626c6520666c6f70707920616e640d0a707265737320616e79206b657920746f2074727920616761696e202e2e2e200d0a00"/224, 0xe0, 0x1ffe00}, {&(0x7f000007dc00)="00000000000000000000000000000000000000000000000000000000000055aa", 0x20, 0x1fffe0}], 0x0, &(0x7f000007dd00)) 16:42:07 executing program 0: ioctl$F2FS_IOC_MOVE_RANGE(0xffffffffffffffff, 0xc020f509, &(0x7f0000000080)={0xffffffffffffffff, 0x80, 0x3f, 0x40}) r1 = syz_genetlink_get_family_id$ipvs(&(0x7f0000000100), 0xffffffffffffffff) sendmsg$IPVS_CMD_NEW_DAEMON(r0, &(0x7f0000000300)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x40}, 0xc, &(0x7f0000000440)={&(0x7f0000000480)={0xc0, r1, 0x800, 0x70bd2c, 0x25dfdbfd, {}, [@IPVS_CMD_ATTR_DEST={0x1c, 0x2, 0x0, 0x1, [@IPVS_DEST_ATTR_L_THRESH={0x8, 0x6, 0x800}, @IPVS_DEST_ATTR_WEIGHT={0x8, 0x4, 0x80}, @IPVS_DEST_ATTR_ADDR_FAMILY={0x6, 0xb, 0x2}]}, @IPVS_CMD_ATTR_DEST={0x24, 0x2, 0x0, 0x1, [@IPVS_DEST_ATTR_WEIGHT={0x8, 0x4, 0x3}, @IPVS_DEST_ATTR_TUN_TYPE={0x5, 0xd, 0x1}, @IPVS_DEST_ATTR_PORT={0x6, 0x2, 0x4e23}, @IPVS_DEST_ATTR_TUN_FLAGS={0x6, 0xf, 0x4}]}, @IPVS_CMD_ATTR_DEST={0x2c, 0x2, 0x0, 0x1, [@IPVS_DEST_ATTR_TUN_PORT={0x6, 0xe, 0x4e22}, @IPVS_DEST_ATTR_L_THRESH={0x8, 0x6, 0xf240}, @IPVS_DEST_ATTR_PORT={0x6, 0x2, 0x4e22}, @IPVS_DEST_ATTR_TUN_FLAGS={0x6, 0xf, 0x8}, @IPVS_DEST_ATTR_FWD_METHOD={0x8, 0x3, 0x4}]}, @IPVS_CMD_ATTR_DAEMON={0xc, 0x3, 0x0, 0x1, [@IPVS_DAEMON_ATTR_MCAST_PORT={0x6, 0x7, 0x4e24}]}, @IPVS_CMD_ATTR_DAEMON={0x28, 0x3, 0x0, 0x1, [@IPVS_DAEMON_ATTR_SYNC_MAXLEN={0x6, 0x4, 0x5}, @IPVS_DAEMON_ATTR_STATE={0x8, 0x1, 0x1}, @IPVS_DAEMON_ATTR_MCAST_IFN={0x14, 0x2, 'veth0_to_batadv\x00'}]}, @IPVS_CMD_ATTR_DEST={0xc, 0x2, 0x0, 0x1, [@IPVS_DEST_ATTR_TUN_FLAGS={0x6, 0xf, 0x94}]}]}, 0xc0}, 0x1, 0x0, 0x0, 0x20000000}, 0x2004c011) ioctl$F2FS_IOC_RELEASE_COMPRESS_BLOCKS(r0, 0x8008f512, &(0x7f00000001c0)) syz_mount_image$iso9660(&(0x7f0000000000), &(0x7f0000000040)='./file0\x00', 0x0, 0x3, &(0x7f0000001500)=[{&(0x7f0000010000)="01434430303101004c494e55582020202020202020202020202020202020202020202020202020204344524f4d2020202020202020202020202020002020202020202020202020200000000000000000bf000000000000bf000000000000000000000000000000000000000000000000000000000000000001000001010000010008080018000000000000181400000000000000000000160000000022001c", 0x9f, 0x8000}, {&(0x7f0000000140)="0243443030310100004c0049004e0055005800200020002000200020002000200020002000200020004300440052004f004d002000200020002000200020002000200020002000200000000000000000bf000000000000bf252f", 0x5a, 0x8800}, {&(0x7f0000000680)="88001c0000000000c7d1ec9b000000040800780914092a1af9b795000100000101698c8755dfb6d52274036a22976f0053500701be5824026d413f2d5309854d285cff8a1f4c164da70f4f7343e536119ffc134b1289b3289e25125d95a1a93065ff724d49e57a5cb9625685477d6143b857cc272abb12ec58957331be20611001f180cc2af1dc0696", 0x89, 0xe000}], 0x0, &(0x7f0000000200)=ANY=[@ANYBLOB="6e6f6a6f6c6b6574ac00"]) ioctl$VHOST_SET_MEM_TABLE(r0, 0x4008af03, &(0x7f0000000400)={0x1, 0x0, [{0xf000, 0xa4, &(0x7f0000000340)=""/164}]}) 16:42:07 executing program 5: prlimit64(0x0, 0x3, &(0x7f0000000100)={0x9}, 0x0) r0 = getpid() sched_setattr(r0, &(0x7f0000000040)={0x38, 0x2, 0x0, 0x0, 0x7, 0x0, 0x0, 0x6}, 0x0) r1 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') ioctl$TIOCGPGRP(r1, 0x540f, &(0x7f0000000500)=0x0) sched_setattr(r2, &(0x7f0000001f40)={0x38, 0x6, 0x51, 0x3, 0x8, 0x0, 0x0, 0x80, 0x6, 0xfffffffb}, 0x0) socket$inet6(0xa, 0x1, 0x1) r3 = socket$inet(0x2, 0x4, 0x5) recvmmsg(r3, &(0x7f0000003ac0)=[{{0x0, 0x0, 0x0}}, {{0x0, 0x0, &(0x7f0000000940)=[{&(0x7f0000000340)=""/106, 0x4}, {&(0x7f00000003c0)=""/147, 0x93}, {0x0}, {&(0x7f0000000580)=""/178, 0xb2}, {&(0x7f0000000640)=""/185, 0xb9}, {&(0x7f0000003c80)=""/4096, 0x1000}, {&(0x7f0000000180)=""/140, 0x8c}, {&(0x7f00000007c0)=""/164, 0xa4}, {&(0x7f0000002ac0)=""/4096, 0x1000}, {0x0, 0x35}], 0xa, &(0x7f0000000480)=""/114, 0x72}, 0x10000}], 0xb6, 0x1, &(0x7f0000003c40)={0x77359400}) pipe(&(0x7f0000000140)={0xffffffffffffffff, 0xffffffffffffffff}) fcntl$setpipe(r5, 0x407, 0x0) write(r5, &(0x7f0000000340), 0x41395527) sched_setattr(r0, &(0x7f00000000c0)={0x38, 0x3, 0x90, 0xfffffffe, 0x66, 0x8, 0x1, 0x7ff, 0x10001, 0x5}, 0x0) vmsplice(r4, &(0x7f0000000000)=[{&(0x7f0000000500), 0x3528a9c0}], 0x1, 0x0) sched_setattr(0x0, &(0x7f0000000080)={0x38, 0x2, 0x5, 0x0, 0x100}, 0x0) setrlimit(0xa, 0x0) syz_open_dev$tty20(0xc, 0x4, 0x1) socket$nl_xfrm(0x10, 0x3, 0x6) r6 = accept4$netrom(r5, &(0x7f00000002c0)={{0x3, @rose}, [@bcast, @remote, @bcast, @default, @rose, @remote, @null, @null]}, &(0x7f0000000240)=0x48, 0x0) sendfile(0xffffffffffffffff, r6, 0x0, 0x6) 16:42:07 executing program 3: perf_event_open(&(0x7f0000000700)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50d, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xff7fffffffffffff, 0xffffffffffffffff, 0x0) r0 = syz_open_dev$loop(&(0x7f00000001c0), 0x0, 0x107382) r1 = syz_open_dev$vcsa(&(0x7f0000000040), 0x7, 0x24840) r2 = memfd_create(0x0, 0x0) r3 = getpgid(0x0) perf_event_open(&(0x7f0000000440)={0x2, 0x80, 0x4, 0x0, 0x20, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={&(0x7f00000000c0)}, 0x0, 0xff, 0x4, 0x0, 0x0, 0x0, 0x1b3, 0x0, 0xfffffff8, 0x0, 0x2}, r3, 0xd, 0xffffffffffffffff, 0x0) r4 = socket$nl_generic(0x10, 0x3, 0x10) r5 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000a00), 0xffffffffffffffff) r6 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r6, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_SET_COALESCE(r4, &(0x7f0000000200)={0x0, 0xffffffffffffff8c, &(0x7f0000000b00)={&(0x7f0000000040)={0x28, r5, 0x1, 0x0, 0x0, {{0x63}, {@val={0x8, 0x3, r7}, @void}}}, 0x28}}, 0x0) sendmsg$NL80211_CMD_SET_WOWLAN(r1, &(0x7f0000000140)={&(0x7f0000000080)={0x10, 0x0, 0x0, 0x10000}, 0xc, &(0x7f0000000100)={&(0x7f0000000780)={0x9b00, r5, 0x0, 0x70bd27, 0x25dfdbfc, {{}, {@val={0x8, 0x1, 0x36}, @void, @val={0xc, 0x99, {0x7, 0x31}}}}, [@NL80211_ATTR_WOWLAN_TRIGGERS={0x468c, 0x75, 0x0, 0x1, [@NL80211_WOWLAN_TRIG_RFKILL_RELEASE={0x4}, @NL80211_WOWLAN_TRIG_PKT_PATTERN={0x12b0, 0x4, 0x0, 0x1, [{0x10ac, 0x0, 0x0, 0x1, [@NL80211_PKTPAT_OFFSET={0x8}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x4}, @NL80211_PKTPAT_MASK={0x8c, 0x1, "56e039f8bc56ba71d045904016caa4b2724bb762eeda307158685c6a62dceedfdd71f6c6148fc39f6298ac696d5a6d8ab0a8f9585df3968eb9159355bf65ab21d936cd2a4ad5844b4cf1b7ebfe8d247e32a8e90bb6903b4e7d77f218e78f7ea339a6ba19e45b10a7f7c6017e748e75ef8f87499a89deafd3da5465601fc81ee8b16554f4603423d9"}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x9}, @NL80211_PKTPAT_MASK={0x1004, 0x1, "d6c6f166df2eca2648cd9965317f991dc4cc181f4260b5cbfd9f6d54083802f90581cadb1f3b13dff92139e351b9f506d8278eeeb347a3cc9ebc3fe4d6134c9c0dc357900393a5d39cae25b9fe3845bceeee813a10408596dcaaebc40e44c2d1a390be2a9665c4e353766f0ff32995e39cd55b20b06d2f5d5f27b12de8e5f853c670d6a01a3b6c30d88c08f9179caa1990248057c142141ebabfad93822e18acf2a62881bcac3290be7129e53a8c52a6b3e1a5e94df9efc6b6354aea7822db0302313ba14e376e08cb802632e18b903872424484a3604ed1e15ffefd1a1a9af6cf520c30694e4b3308360127ef474a85b9cefec07054703422d5fb8b6df701faca7b1e2379c7b0adfc3d774abf63e05a57c8651a554de96c829f44d6dc16cfc27093a1806000126bf0b0969d7112b0016ec492722fe0744cba332cf886b21571799e1489ca893c42df5341ea633875070df8fdc5818ed1753198d8cd188d5edaac412f1a0b8c27e3ce8f7c4e7987d0fc29317137c35a548489e2368569b0534fbb8259276ef69f00de5ac8c0d254f4c15cfc195b9c4ec255124d22a4696ce4d1760ccf1cfec45eb94244f2c48daf40a749d7434956d1bfa6b597eaef577744237401db92a705d4ad4f0c1583e334799574d377cce2640212bb3dcbdd95d066c1a9caaba0ee063c3cb0bed0f5c32ea95e9632ebb899d7a9b8beb8defa804d3be01472e492162fba1c55fb0bc8b5b7cd8645176dd60f7855d52c2fe5615576f31ca9d43f58333cdc6710bb46feefc071e06a6759a2ffd58f875b7f38df37fbf060d54819f8d34ea893356b9880ede7e7384a06e8d5c1310769c8106b53a8c6ab4bcdff5edcf34cb41943cafe0a4cb1ab22a6c561727bc05724833ce485867c81d67ef40d9072d73a4ea6c3c6883f5fb62b774a710c6e11c33dbd1e3f9ed31ef10185b48c1dee42215e04380621ddae29d3c0f747e05d845a3a632e0801085080e3370702d9af1ab5121d24a6dd19ec5ae1f8d0218c00d76234d5013afe68db873f064a7491074e95da9fc437e37a3fe9f7e52a226de30325f6fb5e515224dcdb9c04bfb4a764cb676729e79e1887d2f4eec2b95c318c06f67051a0e683ea90bbcfb881b9bb0e7d8120555361c6ece5ae665eed58e3b8810ebdc60fb960198ab741327698c3f14a0997be5ca728278280a92fd409894c4383ca6830f60678eee1b1b46929619c72df04a63f5b2ab6882102133319b32adcb936b987a1da211c741bb54745c2728e2c48d519d95697377def9a10673c71e723f482d3bc4d3a54d02fca8bd43b96ab53a290ff09a2d74825fff983790eabbfb753f7dd051eae3b88d614ef11526d846828cae07c8289d94ca915a93ec634049f3ef554aa108d6c3b166352f78f829fd7408e9ec10c525d9de43b1fa610e0caa4a828c268a0505f116004b546213141bc683aee22df026484257448080a7923711cff14d6f58fcbf668ef9e4c033660b4467d6724cab8632630a32f4d9b2010903c5e2130f69753a65831098e47eaf4bebf7c97047c8fc2e84d731e2e319a9a02c7509c5727766263941b136620b90660d9c673f8abbe457527c9223f39daf1470b338ba1b0a0aaa4cad7538b4df00744c9f1ff86919a93fcde830fea4597011587c80df9115188975338b4083a8b197a595f1b54a934228d1b35b260956d9d151bb3fc52b1698394f3fe575f6d5a5fd9fa1ef5e852d05a5e2e9b75618d13c5a9eb65af6503fe0aafcb9e223ab19e6e534602bbdce96f4498b260d45f66a046dd945fcd3d952b445f2399c73c95520228a9e02ee3454e7932d2574b95a4a58b7c209643f02b2f8248bb2c7622b8252e368f41a6f2f0e1eaadef39112a4cda98948a47b7658da640a32c7b17c155eab6eb2f019605ab36804a8c825476714b10eaba1dceea28596a5fed0c28c693fc01022caeeeb5def96a51264e7844f226b077b179adf7e23c7a152ea882dd4db65c129d5e95528e964f1002b8303743cffec50bd8aa5f9f1b51d52f551bd2db8fa099d4e36f362094d132c627413e547d0fe4e3895621cd9816d342845f14fd084ca2bb5b0e2608398b85a826180b8a4914959282bfd0096e45751476e137d41b3f0d7e053f05fc3a7cfa4adb055fab99c162d519be09173d4074623e3510f511f4e86e93687014de514358a613d6e8540a552086e64c9281d65047c2699e03280eb4470113c679047c2c5e656b3d56bdc46d2ce3ebb7805c1c00104230a0acecb2d9232809c4b8ea4324de4b2127a21f8f5e13f26936560b48e04e41c975a8b2087825a840adec8ddd8fd33515323fb76e1d014085e345aaf0d341c49a7b7b53dbf7f4199e77b04662aab85ef61dfe5e469971bf8f8be9e13da8420c467721378dbd41a2dd27ee62049f494d834d6c769167ea713a96ac83f7664eda8e62f85bdee8aa578102e0120d3d9c64c499eeef4f57d547fdbec7b2de565cfcb265fb918edd879209506a9c6b24f9246126cfd631c7d58cfe505785d2cf32fee43febc4141ac2f06d673e39cb5baa149ecb7e9327109c6ae61ada98734441b0068031472e0573166e381dece005ebbc24f6b1c8d1f91af76616c484b447ca819f1ddbc4100a6fe8bfd527c4f5cf61e5a29741f3c94739f1659eeffd4967bda688b67aa448383f41d5af85d03d1a389ad76e1b332f280f68986cdc6ed599bc4957ce576dedfe5fa83375c52f57df0c52eee75614e8653eab7f2b1df0e98e25cf1f4b08b44a769a07c53bc26a2cc92b9683b7c3312247db108d068159c2f1ac711317496d78bd15d927199017d51eb4c61f8088a8d28f62584f643e5a283be61e42124f4b01edb66a9a8b5516c3e10e8c33f534fa5799b632f2a96cbc729a7914f63db66f7005ab45c21fe528b799f6743d39bdfaa9f7a418123aff540c0de009299cd3ca36e36baa90ee53651d1b6b5abc91ca45ddc18833e677a76262f57ccdf4f811f1d650ff59fd6351417ffe23cfe04ab69c27e6242df1d7136738580d96f698a935db37dba1627a7d4140a20ed07d700b85fa68be258e68315c2084dda239da9629e87629222e1270589a34fe2886ae8b1cda1ae14b5fb3d2e13068223df39bd309ed0c8d487038156115c8da47f7c26a97125d68033d1b460b4b7b0af40c2b69cbaa47f01cbd79935ee99527c2a353ceb88b7afe9abd6dc380ea17e24e429ad464a0c6a900cfffaaa105e099dc3c407096e473ac45f6846c92be06ed5504552dc2b7993b935ae00c705cbbe8fc6162b347d75a76e6db6ea3dd8e057384d635949be3544e251bf24d0d92a972a4a3178b22220b2a696957a131bc7a181dbfb722582264539284511412865b19ddf4c4cf42b8acdcfeaa54e82310b2fd070fcc0fcbb7ead692942f10dec2e26dac61742cd04577a1c1bb3c12f08582531451aeb8398b6e7f2d5eac5511610b410199eaa36823026e9039f39725a065b59e4562739b264a02a1208677c7b1914dc4d4348e9c5127fdf3e760355fc8d36f62fe7166b2d0529f3eb3c3eb84268415e163285f99f3b9b0898899e869f7a5df7e91fbc1bcb6eb22310f829d1b60f769d03599aebcc9de72292bedf0942f2ab0b92845f5ba0d7e7a7181b8ef995ce99d710cc786500993a9c999db3ace61092cfc13abd02c05ed339eff6b8679fb43cc92055fde672b45ac9d8a594d764979c8b4b6f3638c10d876c5f4be6e6413cb074b12f4b27af1d997453bf00d86acff700f1baa333f4863f19f1d8f7da0bc07263b41ccc6b9c25c03e9cd94841deca2ec9648343e62b3b12232b00fa2300cf0dc0fa51bf395fb13a165a4050eb807ded936faaadc79b8235b6bf38a341724c33496e9fcff9b824b77f37834eeb01fbe27435c7d696ad42cc85f6e64a17601d7a4ecd309f7611b8f772ea7e41f0b0903264ebcf95247101ddcdf9bf9f2839df6ce662d1c179cd6983682e4e163cd8383345c6b08a29cc95727e261414e055d0972a77b92dc08187682b88dc7c43a1466dea99c76923197f9af66422d39236388cbd04fe2645ca60487f10bc3ec7090dd910e2ddac37e2dd5467c9d35fa5257e35605f5268a4700bc1e6c4961512d6a00200ca040b66a132d6cf12648606a4295fcd272cef20b9abf49cc0dc16c0ca62f8cfc70d568aa0d11811edb1ba116c75e478faed357616dde1a8b8a51415eab240e9cc7c87416fa4ea525b6b917951420bccdfac9ed9525952106bfdcae45c921cb4462f8c8b68558dd0c228912b0928c6b89b8894dafe175ee849c815526f854ebf59a8c4382cf9abcd6dafcf681174b04bf395f62754a7eae16d3331e92e8539414c8a0b83ee6d83a57085ca9155ed0470991faa5f4c3c64b0e4297a017d8cc6c7019e245ad5ab8b5367b794beabf294842d1fb0f86eb488238002b9631c942075ccb109e1a47c9369773a8de4d68f9aec7a7dc978c5da0fe71698dc92a7d079c7e4aebe197c67a2e9f2539faad1707712cd42790c0fdbcf606cd6016c2736f91107d43faf8f8ce5d4938933a684f72c2925b4e3d94f0baae0c782891ea908f13fd8211606739e3a30e4af8b6542ab3702090794266ef9194e116c440c495842fd7772e0936f817343e953d7d6a4def5c0c1029b28a138842aba1a6a7ff537f23b4bef6eb016004a89e943eb26217d56491118d213e96710061dbe9b5fd5ff181fe6a15d91b99a5e9a2a1084a42561de97d11c73b3a895eccb28cf70dc9d48614a486fa6479208c26ba73e40da1ee7cb8407a1144613cd2e75c1b9a8555ede578043b24431fa4c7281e31f3af332797a93479e3ac74b37e4b1a79d77561d09d5619d04a7860e484835fb3b7922634efaf181127f3fa0d4933bc67e9730f14f6b10ea2675828b9ad22393306847a4b3f3fe1f2e19fa1fc80bf680c2504ca45e181ef6c1fcd6a6936364c41737ae8cde69409240d5960245850ed709b2621554ac0106147e455945c83ba29772e82599256a2a66a39a4f542e442ff0249239ad9ebcde279d4bf9b94a71ec643bd6e5e9a0fd187155859df7a9032f0d69d5e8625712c5a85a31c8d3b97b71af37fc91d1cbe7cc858abffb0baaba97e4f4d136421614c76d97ec093676bef3c9fa7a0553f0fcc2dd4a946ef0f11c33bc90a06f6da7152ccbd9314fcf8a9c259111c9ca0f2a5b1649e9a8d9d53defb524f869786bbab71d43121934dedd6547723ecd43118a6e813753e3c272f93c5f753cf6bf2a160c9fb56d44eb2c380af35b3d433385c388309b2ee43703ce52365c9384dbd529b0bf190fce76a32183210ea736dc4f3a829cb04ac2a0b67a8a0d90b9df8f06a64def406a41fdb53f875266b493d29c7769438f107e1128a62501b4039a1f2eba2d4e6a1623272528c1cd63a6a98965c6b471c1f0dc47a4aa11f46572d4efe729892e2e87d923d8389da2ba62ac711f74602a59ceb92ae211dad7c5bb8144d4df436aad28ea316e4f841e6fbb99b02c12e727628639149d5120c96e39efb1f79f3cdc319d60a4a97aea502ee2b22db5a6b83dfeefc2a85fc5984ac0e0f7b8e22f110c73db9333387f57f039c92dcb57038bc38106cabf119a0624b84ecc05a46bd2de277ef5fc94ee906a904f4bde7aae1dadb3fb810209a1f9b4aba08c119b16174a74dd2930b985b161614fd5fe5668715ee9e05b066b54d910a864b440a1b0d7873446490af8ec75b576c32d2e7a0837505e700b2690f0f605f9a7a5d34dad619fb9019c08f34c496579fbb84e032cc95b685425eb232bb9842db04b07a174c"}]}, {0xe0, 0x0, 0x0, 0x1, [@NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x1ff}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x7}, @NL80211_PKTPAT_MASK={0xcc, 0x1, "8012d108a74989f27fee31dc4724aade12a7a4f09aa0e47683e6fa27f844301f5374ee8e10ec4ae8ff26f0f3d94f5352fc962e4a7be31b72b685daca9f7ca04cb2474d87c608830b89661db474782bd72d984c9eb968723c69eddf3074cf51b0f6fe17bcae95b6d1ff125c08dc01f32442006a13eb028cbdde6fda1225cfb40beb9759fdae976f54b409c95c78ad6657a9b4be63c51241da6fe6ea94ad669cac841b90d85c461031529d3c0ac5b4f65a7d5db00321eeb2818cc04254beae27d72573476a7eccda35"}]}, {0x120, 0x0, 0x0, 0x1, [@NL80211_PKTPAT_PATTERN={0xbe, 0x2, "6c5ee0ccead48afd74582a5f8fed78d77c3dbe26b36dac91cb65cb83b648c8a4224018dc131495dda25170ee31ba306599726fc3435b24f5e3039765bf8ff14889664099506b040a5181f7875e4cd0fd4979d63c0316e8d67217fd33aec9b5b0e036ab2ff90e624ac7103a307da2506e2ec12c6360adaf390eb5f646a7675ea98e4f2c62f415b9ab83ca30cf3140257a8c83488cf616524ee620177089ecb3b82c8a33d7f9471ad525699ec0a0ee44bbf338d604d89608761d80"}, @NL80211_PKTPAT_PATTERN={0x4a, 0x2, "03dcdc9d9499d9b1624e0886bce2e5cba5cf2a02cb740df7db6a984af87962f5534d106cb3bb236c3d9f554aa1b7b5c31adee699dd114bdaa949fec2a3e4bed0552145be84ea"}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x73}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x2}]}]}, @NL80211_WOWLAN_TRIG_PKT_PATTERN={0x33d4, 0x4, 0x0, 0x1, [{0x100, 0x0, 0x0, 0x1, [@NL80211_PKTPAT_MASK={0xd7, 0x1, "62df5d6f52cefa52e3b29bb45d41a3c323a5fea9dc2003a1d0e90f7757c3f6c53304436232df1dc4cc1ea261d1b211fb39cfe7d99743e32d02c9df2f5c7e62c91b910b5ad8375f43cdfcb89d95ba700813e0aaa4fc7078d6e4eaeb6068ac02983dab092b480e277a30b13599b6557404eb87caefdbad43e7c96b27242d027afd4d75df65478fdd61a2473c767dbff86d0bc9feb8f2139d8473056e1bf2768f1ce240bcfdb460ad1e34cdc9e55fa81dfff665d7c7345ee97a32695f379d3f3562ed284f39eafaef7779b102e3c63db3ce7f741a"}, @NL80211_PKTPAT_MASK={0x23, 0x1, "d605e07257bb8026eccf19b2ce8e7c18cd03b9b41239f420aa0d326f56c5a9"}]}, {0x1140, 0x0, 0x0, 0x1, [@NL80211_PKTPAT_PATTERN={0xbb, 0x2, "05f20bebe20a63b7bbd83c8e7f010f6ca41165ac4c5703e6d38966dfcd63067863acd0b44577e93a68dc528d776caff24957960092d7302bfe6f4ba53c0e6f92f9476884bcbaaa408706e3c92bf395805d8e10200004650d1595b0a9504dab645198d5b6a1de705659aea4c3d1f77c40426eebd8ff700396f1cee9225a7f556d7e524e287e41314241632744eb51706472121310458d41d8f26c6f8b2143341c042f3594640cb33431d27ca026c82a973702a41cbe56ad"}, @NL80211_PKTPAT_MASK={0x65, 0x1, "c883c196a7f874836407b6b2ec2eb49183480d3fbfc2d6aea7a303e5d9dc0e5888f4e813db4137b39eaa58ad0ab9095f329ea701e3148ab5d480f4a9a14d4decea576eb394ee513c914f74f2e4bebc15053f354f50eb854dd75eb0c8288bf8b1eb"}, @NL80211_PKTPAT_PATTERN={0x1004, 0x2, "611071e1cc6c67782aa80d50762650b57215cc0b7f26603de3c50134fb48748be7f6f311312b0dc9865f67fb0138a557579b193c6ce432479c8ed2f2efaf5c0a73e3b601c172d6546d74f3aa0d2eb8d85872c77fceb1729b8805fcbfa3754d089ccc8ea6f8c281fa1d944f3d4616963155800a10729ee28a0e06e27bbe4b497353128afa768726df943524dec001a0ae6b48f69f95997f7f38637434c37f11cc96ef07e21db1824f7a4c4f4db172553c5b4dcf2edadfeea8b2def92772874f9f3850eee07a6299d57b6452f2a105eedebc26a319749f81482542725ba4b543c2a8eaa149da09496b4ce34f2e36e7f2d8cc6efaafac9023f41e022d8f6e394adbfdc78960948f663fc631605a4f0a5d96d381e777c23fc423f95095dd6a29f4de318be2d0c534399931036f0f676a9f39358dbdd40479331b2c51166cee0d248762ba53d514a973b148acfb7704555ca96176ca8a8b2851a4b873ec5656dde2fd4f41ac2f5b203ee90738f746173975e0e0ccf78d154468be088d264984ae9a52eb00c0921756670e7da3864009ce6b4977b91f9f8f2730772d409a757695b7418ddb9e504d395d5077b4a4b6a2ae58103c9985f9b107d3dcced0b9cea0ff9ad37d8c9011920223d9f923436c398698942d7a29e14deaeebb18b0805622d79a52ea6f5bd5ecf140a71150d9aa5d48d20218566e9c76b47fab34cfa4e6d52e5c763cd325ac9bda45b57867106d4f3110f983a0cb6e3a719dbfc7ba1a7335914110347eda94827c49235597f796c07eb3a9b3b2808c7113812684887223a356bcdccb8502b0b8c23648216c8666bdd992715ec06b1bfea0a2249d885bbd65b771beb9d35897f6f2a07b4cc6c4627ca69354131c4c2c56bc5d21ae086df38e8bc55cd6d3de28b9220def1e6f8927822906f1ee053c2d76499d049c509575f066d8df2d2ebbe112667c9eeb20eaa7a32f6e10b3555b6c01bfd4e6567474472cf0b7f4ddcb3f7dbc3301f1701e0d00e43630f053889d02af748c31dfdc9e01b783faeba6b7749f6874ca83f03c8f4157c285069ae00ef06f6b70780b86849d296e1468f120398c4df903f9f8841d55582a6bb7c30c01ff8c8a83f794718e83f49ed14849718145d1d347192319adbc79246ffe37d8984e3403c56e66c8f29b4c03405c9355fc5a96ba7ece09d4b6a80a962e884ac535ae40dbb7554b4efbf59f08b48f38e821ffab65df6956fde2abc7c24d4540a14b1bd7bb159acce2a32e8c7085c4e0f6ec126090568e251e17d45e2ec5fae994a8e2a2ec3e3a4035dc7734a6b168ac41db51d7eafbe6b197c799ca4c103a55f8b84609630a3412d7774185852dbe526085b78c3fa9dc1e4eba8b81a1d098c1d45855c124f10a7e976792ae7f891bf0141ab45917830ad4651ca8d023cc72a5c65703c799ebf8c38ab206d70f0313e239305c2accbce82db03c274c817f5002761aeb9320d5d2c9b252be54f2fde844531e9402af637d1ad7dec80a8c33ffc27253ce2fbf8f5fc9a470cf931477596d93ad843f74abd7bf3f7250e31f0659b202f1720e1566b39eadba8cd7660d6b5b7072d08985912fbc5bbc4a27af01373003565b704824a7237171173c09d382c41a35cd9820df6b31c37963ad3f19387760835d25e2b6da169741bb2a1a0a907feb4461a4d8355fa6c79b9a50c7171028175dd9f2790f986e0d542d513c0bc90eae8faf38aadf57fad63af3e818da41da9e8cdb74ea6157e48b41491646fda76c9ffd1177ce140f7a07bee9bbb57177212c4191fef71c1f5b6adb0d0fa902faa060a8696a4337d619ae325536461fb7683da5321cffb3125ca2f8681704765d1b42f4d61e951246f0d7b237f584e25170e256ce088ee0425ab9d9954c0578d9b63712bb42f9427f9c59e5c792191a123a7c841df0b0edb75d44dd9cbff888f87aeb8e3e6b120f5e37bb0312b6421ed0775d6ffe5a0c7d25a14bdfb0e9f8f84aa9b249282fb76147c1d12deb3cac070a5a5c696ad15d8f4533245fc667ee9bad8d73ba1918a3b0bfaecd404c5259a25556b499843c5c2e80ada2bc3aa2055650f84a17083ed1e2659650b81cef9e824b6a59c9676a4e44ab399e04c6646eddba37c7b1ed6ccb788776fc609f77db40e73b1481a0fdb6095544577ff3906d1e1db9fc7d197bf9ddceb72203a5591fe358f259a6b2cd747749ae90f0b8db63047117edf53272c5dbd261162d790ae79c38327397b5fb109f90dd586961b67ea0d3658b97afe58c99b5a87761a9b918771ea00e3bd9552df1060a4f60bcd6962cfc4b6bd8aeeaad981b679a6b291e3e488a6f94d6225f41e4d8118a7a5705b42b632395f172aebe8a97fc7f14e93d1cf7babdfc8078e7be172beb31a1c0ffb306759e08e1a8df7c354e84a67543e56e474eaf7fe5c92f7f564e6d695917b25fc4fec5c885230ace8beadc6aece3e9a33c87544fa68851637906d60768f526c3214766a027618749b9766fb302b1057da6541aba25d6d023a58f1fb7b78bba826bc0d2807526793315af1cdff1cfbaa87d473517d66f938a924cdb0c5055e265e9f2068208df5cadcb7220e883d8d0b5a4df10a4c9691cd41dc05ea25f44bf078e09d730850f840f1f1a989c42251628f5c2ffa71c95a602abf41f83847052bb13187f4878a51c8c040ab53ca49602f54d943af09df4ae9dc0f4bd5f03822d949b64cd636af5b77188d5afc3c16fdce8069b457a64fa018f01e451d61460eeb6f6aef1cfb8c2722a3eb485d1f833da1ac540f12226d159cd3493926242343b6d66c1393dbd51dc3edd8e0a707c105ad12f3c5b35c7e02f87f32c36bb1bd6dce1eee6399d77d540b3ab3ad804f3a4a12dce7ba4cf0bf8bf178eed9bce7969a0a12b34c7d5d43d7980e3545c5f0309e45dd7c2756c04b282a7b3c252d91a94d411f876914d1f154175f0289c94293ff365b0534bd0e9732ea159051125afe746ae70dca6c1923534945b93bcbe42d72000eeca1d59d083c58d646472178fd2923545aebf7dc0988f84d063172329de903614057126fa451994d6b29ba5f57ff9076765812f2210ba8a6f210aead90d6acacccdd8651965055702662d182478ee7dbb6b27dc2a49869a44a95bb27fcd7966d497bc2ca90df063314803e58dcfca061710accad1107ff1e89b2dfe8b607384f8d55610601c93c017ee1885c881c5853453d24ca7759eba1ff0ab4aa558f2d49cabe2ba165f9457de966c79c5f258a7a36c848578eb75f565139311115fd7e7efdab3ad9f04bdd0cf50beb676b669a95b9d8afb8f0f800e918f2d3fbd043711984dc537d57178bb7cc72f05894f0314ac17f4733271bce718c8b913d7b465ed038b96cb976259da237a4b7449fc598cc1c14a937f49b6db3d814464e7497a0f7c7bc595ed532221d0ac7067780c4379281b877a0557f3e507f79a1e7dc6359ee677094b993ee4d74acdc36a2f9915f9d3a4fd5d759e7524729a026f3d3ba0e33fbb134372d04c328e642ddf23d2898c7e53df35d2c59af46ee685a87b90c4179b51014abf7fad3fe6a5fb3180b9f50fe8c538c005178e1b96c6b2daf5a56acb217acd3646a9049f9e70c6c0aa940fe9828e7a9b7d888ad30c636765ad9f0d1de8958eab57d2b8a988f875d6454dcd3da9291871ff7b429a5edac13ac6d08898e6b6d352dcbf96743ac74b481599e526f7d2eb3d0c152423f654cb22aa2a7dd19050e7006cf1884bd5b497337d77569122ca606b0911e23c2f80da4e7e2e59314e372e4f4602f0699d8f5a5ef8bc5a73850dc8e5ab2ec913496d4099a76c71f4cc74ec71ed33f94ceb181c4a06c474a57a8d399b80cdd3406b078c06414f9a04c3f0fdcee03b2cd989e4b29142d070e692ff39d3dc01551d95a58856bdb3099e91f079da7aeb5a71a7098b7a2874972c7d1d81235a790a1d60f18fd43eeb83c1ddc02b52260a6f9081c3dfd752e32326374857f780cd434949f923458d23fae4803fbb23a86decbb1c1049f53477a6242d945f60bbd6c3a045b5f60136b8d1c513ff3a788e933c5989775f8abc8c56bdebb9037bc87b79b564e611f0a0086d82d1da8d019da16d02ba62ce901502d2203d15d65febe1e6ed5e68c5a892555f466cd578006fc6e2b28ded365005e7d7b5cfd832bd5ec71082f9cbce176230cef3c04b449e5723e945da7872c9e8aa811d0bc1e81ee2a91b1214a42cf4fe6cb277301059d0fddaa8f7bbb67cd5029bdb5bc50e847d189616695ace489adabce0ec6258942627ff2225c9060c0162012c32b9196a7f326dd06269422809415d127ea386681a623f5154eb245bbe6d54e45666db1ea0f09b2fe12a84331d12f3c762e24a8cc9c8cdffd2ae76d9471817af793760748de943625ba1a2b8c485f98f41762ede1ee06915aa4540e777ba2bc7b98b4bc040901caed2203c51542f27587737b9ef4a24cc1b17262aa6bc84b0f1f0114c750a8a27757a6622c77b30231fbab5ccc02d31a38b6fe6d43e0bf65f93086f8447787bb261418c4f28fd218d80be6ca22b0e7df43b4b4a4513e3b14856c5c6ab8851b37b47e09aa69b1cf4657b126ef3c254106af4f1c6abd7a96b55fed442917c63e2e016d7789505fa045ccc2993f45dcb7f0900b4f9b52d4056353065f92a3e3f55f0126b920a9fb46ed4f5f9a7a68b57b32bb9bc7b858c2fceb5038d0cdd22e9e8367fbd5c772a9d0e0758a84763a9ffdb1c75b9c5dd1575ee83da5a611b1e68ca1dea957737cd97fb22b64169b13aef7944b409642d1ce0391d250c5ef8523998ea86769bd51426623deda57ab69de64bffac30960013a437524d8fc08eb1701767166411497034df7f94712fcc701e7876e2918ab018fbf3d6484d4f152d7c04f543d025ddd675c3c725a608aafdd50bb70bebb8ecd9e48a774a6c776f1df389f6aaa0315c36b4ec1ecb28a053ad25f2217e02426836b11ec786b9274452ad35f75853598c546afeca9b6aaabb91eb2ac493a4c5aee50be2db119b02c5b1bc92908bfa7fc8cc90712429f1b13ec895633f36ede405d4875eeff201bb8fc46d01cf3ece60a7798b9c802d339e65ad1fc3902d3b73d84c2d38e9631eb6cbe0c195f185cf870d77f032ce703cb2f6414568ec43b49b843830982854705bd4316c5d4aa61d4c8d365e3e4c9cc993c612b578ea3e719af694817a4694538099568e817ae0d7b4ca1e2598ffb530da4c57793d1739c5daeb90894c8ff8ccd1a35a5a61dbd1843343749ef58317bf7c2e330de51a9f88100c5490a18b81b0f2c8ea8ef1ba8a2c270a40090be2ee822566ba42c0a40ed0cbd718bb64dd0edc74165d374d689be5250ae466d43e813b86e8728450c0663f2898974aca91d30aeef1330c9d8b061ff3edac079862997e3e2dd42fb0cedcd63f92ab7dd9c7eaef9d3a8f7c10ab1fd1937f21c9edda0160f47de3d5d7f6c0057a3851e5e09a5470c51ac99000da67a5d079d351890412f612149660ca96a57f85b54ece2563336a67f03696367a57d6bf3a39a7048d21fb16e62ce598170622a3d8bc041341d9a8a6b5b0fbebf8a79ae9c493a289d3efdbb7299832aaf634a6b4ca400ca97359174bf8b5229728acb1fca8828bab02d0627e0c93d39e16e536b25024aebb1a9075b7cf67ccf76c903b5e2432b6ce8f30fc6690ae358d9deb202c3aaf785c5971af11d7d7d2aad60920193b0cf83af84f3ea9e534d6ad30f926953d06d73c1c8bd050b364777a94908b1cfe0e5b11f037dbb5ecc63fc4a977be0ccdd2367ee3ce10ed5c"}, @NL80211_PKTPAT_PATTERN={0x11, 0x2, "327546989ca4ef8b424a60819e"}]}, {0x2190, 0x0, 0x0, 0x1, [@NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x2}, @NL80211_PKTPAT_PATTERN={0x4e, 0x2, "1a91cea24fb07b04fe2b5606f355937e2d54b684b52c9ba015bcc4d029f1569025475145bff34f54e5a830869ad56d683bdb93c29796f68fdd8bda532db4d6e566c91d6359854175770e"}, @NL80211_PKTPAT_PATTERN={0x37, 0x2, "1b7336f2cc8becf2a5a798eb2e2430c6bcb42cba72da19af0c0e8d3e1d0edbdd483635d81ab3ff722c36af79f01d453431c3e9"}, @NL80211_PKTPAT_MASK={0x27, 0x1, "3cca84e0b636de2b31f2a6adfd63e3b195bd1e30b06e759feb4a604877128a4bfb6850"}, @NL80211_PKTPAT_PATTERN={0x1004, 0x2, "aac5588732c421e2033f95b17fb42c690adbfb5b54db07ff84c049921a1da198708fb0e792a029a39f7ab7f94fd69fc94cd6de196d66f477a89ee003352b39e54b30aa75aa8064a1a081ade93a74d26c1e31057e11af191118cc7cd9336f72b329186de18386f3ef5f63a47f5bb3721a01bd1d18c619de4291f381f7ce2ccfb7f3cf1e87de3ef11f37ad9645f53efbbbfd5cb0719857835b6eb02b2474db5f9f1b0343f3d9b13a92d7e4d64df3bf039446877bd09ee304ba3ef9b6c4c9af4b7102fbe0d60e8317fd4524749866b19c836fdcdca8d5fb8812639411082467d70980edc2a4d4ff8ad9ecc570d95dd1c7f0c5943080ed3f9ada2df0c826e4152a6a2b5609bbd129d544b18ae83d9695988c8d36705a5895432d75d6deac96b6677d8db89716ebca93d66650b8b623557bc5ca275e3f188f07b952d40855e47002d979c533388a1c77cb4f7a48b70c554575f2436aa3c5e82a49d5762fdde360091073f66e220ae200cc758f47106abf8b71c1842a5d195e3bdfb69e284ef71abf3fec383c01e7d7073b63ef1adc66dc5f44fe8b6bc27769813c7fb94b26f35778c5ed3eec2404c1fdcb86877c5b6e8e6d2e426ab3bef7d8dc9098ca3a69cc2014ba19fcb41771b39fc98a68ea0c54eff79db6c2ee2f2af32b4783dffae100a28d2f460773d337b38663669049e8ee8b31f56cd97303194c0ddfae60518a0c7944fde292201c7292e633c65b14f9eda0c956259e31236bdd386382cf99c31adfcccd64a8ea70cc84ccf2a666f423e0c779502bf0b3eefa0f065d5b4707ee944e876d6c7725c123c924c5d8828477cb845b4d3ac13d45c2d618e01c64642c53f061f03a4aca9d68e6ca2d896b27af9210c913eb6e51c2fe11e1848dbf22612e0b57fc00726cbdfe4302da5a6e97772496e30c16cb51aa67dc4fafd944f24f08a0c2aa75a8011643db0a21be2ca3859ac6c496f6f2bcfed41ed216970261b0cae1419647af4c3645ebc83bf43c4a951d3e3b167736147a3150f630bd0b5fb93924a6ea6cd449cc6e1c1363f51a25ef1ffc5e8a8cf7780b2bbb0ef51392b4bdc44e2a4cf8b0cd4cb454dee5c384ae444a100d8b845e63be00774d252c7c1fdea93811cb5205743fa782da7d88f667ff75b7623caa4150c06b55972f87b86e188bb8d0fa3eed9487ee84e8f323cc2065c05c3e4d029cf81200bda451b5a0a9698cf5ee86a4447c0e6f981bca6a05a1fbc2ec7cef26aba52333ab1340046717bd65f98d57cc82843d8c91e848d5457645b7a9d122235fb1844c05fd55af63c37be727705cd14903dcc7dea79e2a22fcffa54d16b4eee04cc6ff6d25df97ed0a86e5a3d6378c6515c6e0d4eb48a5de13cc6f5652031b710d659580cb7ed91c8a41afdd7e284eb437fc52398b5a20d7e8c6959969a475d897c035ef58921c4040184797c24bc8791b7dcc2886957c90ed234c317c6cb7ac6ec52590e476b0feee7b655eca26873875d4729f40d78d178974cda0d6c78d40359f32d3ca5d5c83d868a102e7a9431d148873f2b8fdc0d0a05ca4bcae3dd4b1f1aed4fc63975474562dde055a20df22b96aa5e7f16aadc99a9609554c1324d568e7eca7fb9d9903c9bcda8fb9e198101b72a7ff9ebaa6f98af885df49b9477f717e4c93ee438fdd340a933e173e994921d44d70cbd5d733da8eff4274aa1d0f8fc5b2e0bec4028e4f50ef063d51feb97eb4acca9bae4bbf9d9c97afb7c2a5dd2713d8c2597908c84041d8c7525375872f0ba9985b25ec7193afd792e995f39f5e9fd8a1e9659e1326f0665744de4d76efdb9c401017bfbfc6dade0b2eb93d8577ef9c9f3e1d98de40b8048dc8c31c03e2b4b0edccd9b3fa930cbaa174425d9cb3a72468d0fee3edd0c398738a439cd70da3bb4536bf788173f864ff8d73a0bc28404382e7cc8f748e65aace09a6eda1fea502b2e1271c02b9a13eec90de7e42e1b9e2f20c1de7cda743cf1b219e1998150f69c625849401033e733dcc6322e8d187c73e2e2672151115b056d988a7dc075f0335871110b042f567d28c1ada925c2192f1c28076819c6683eec919ef9a1dfe5dceaa29c9a48a123c6cf664fca3dcb160c00a9f15637d0296240783442a1ab4a4c00b2fbe7e0df7ebaae976b2270c7c11a6ed0a88b0ed7bd647efbbdff67c257d804013889b12cb3e7c0b32be993def48c220a805ca46ac7eb542ba1e524c58c487e8e4fbabaaaf0f5691e335296978347b6ca6f53e3b42e938c9c3f7949806e0b0c3f1d5ccb3655c0118001c3397429314d853ffb89aba8f274a56ecbc3af569c918635c7d98da96273ac0525c662336e62991250b7e1fff09121717f417535922ca9a34704174e3a6e3afde4f3848e2332482076c69a4405be6108136714579803ceef71372b6d25e93ad39988adb5c66cddb8666dd21fac1f26c3c94fd0109835c70491018a6bbd001edee578109a6586b432d926064a1f64d8e74171584b0ff7ab198a05b02e1e0de4f02b6a9674893049b0cf389a13602e883bfd3fc59ecdc7bc53d633fecbd4af20cca6ebc2f053c4442a2d7eb02d27bcd09ec3c4ee9b9e3706b68a266dd5c3577e8984566251b1e00f0ad3cec837661aa066b643412108fa1591789ed13d5d2cebd63553370a8ca166104fbbc1abca0e065770b0e3483a32b9813c59379c5bde088db64abd694a8e7b0429c369c685fea57c43510161103c0dc8cb81738c0744c6fb3cb9b3cbc2a21ae870533dae86de97f86ebf2f38e19f39c037a64cea4cdcf86cca976b4c7604ccb6385781c84db05804e373e8c8d3d8ee9de3f071c0d8aa071ae1d4ddff416a1433df153e7c1dd6e1b860366ebd0cbddff4430d1d4a16d5a7077469fddc2df25edc6aab60c58bb68852b0a15ac9ccfa4144b4fe8f073c21cc3151bf58e4baf5cf146dac9c3db8664e1a6e86c19fdb0660ee62de9286fc8e0caadc9eeafa9c48386cee5a4fd0263b9bc12b3fa0ae6264dbf6fba33d72d60d85d2e77e046b9fe992a090404c45ac48eadb4df7bb1f0e8de9efd16c7fb97c7d39fffb4fa57f6a34c30625971112e0778fedb28bc705e7c8ce35bed4c45f3f94320802eae45927ea9b51bc7fb00708a3843044cd17cec7f1bf67a3b6a90dc006e05b31e2e8608666cf2559e34f4f5ef24bb42079edf7ee0c4a849fc5f0f44bf9c58ddb45b7473b6cfb4f45c5e07251fa2b765c571a702beb0d6b37f65368ea48c4d6abe4c491ff54de46caed5122f877ddba7e88b185dfece1c003860896bec68a11eb5e5711369ab2b7b2970e3b2652e5957121dff12a71fa6015e808593dd74523928f1137268f393a147918b1ebd5755e2c34d9eae24761b272ae886dde0b2bc72bb1a429debc15ab3f85b69da15e397302ad1cd2234c4d78d48f1c20e4dd1581b700e81ee352b8175e8199a7665d1c0db4e9eb43b660eb4d3c937cd47a6f01044414ed78e5f6d3a1f4870c3a69e00ae85b541bfd434d7c13f09dbd0d33e489b9838bc794602e11ff236562731bc66e511c252b12a34fe7fb8e917fab2d577ff20eede3387659006457f98c76e2f16608eedcb6d7733935b6c0c951e7c718f568301012dd1236c38dbe7594da4772412385db2da621292515ed07d7adffe0e4a841e9d5378aaca31a27955e564716db7d95c4272afa1538a6a83457d6d52d6dd77a5f11115b4eb5c975446426201f8fa569f13c2de4f6838c4731c32f8782dce9b81a00f7ed3113dc5dd3741414666ddc68868b71242000ca99ce9ce2cf7d9f8b326b91d7d7f260ab2570bcd49722e784088890b31544412ae5f108862572f7f89cafd4779beeddd9a78c63931016302c43e4c34fedc1fdcf4521f9e237efb2e2666fbfabd6e5ee1c643cd369461ecfc7a14e9ad6225a1de36ba31edef045b659a0b1a4854766561d92afa46022ad45328dd5f3cb01448ecf391c48cc1b14f968e3c335eeb21e9ae23680d06a9b4b493a2547eeeacec19e7744677354e127dd73067e3bb40cf05e7ef92c4726904ba505123fd1c333c52132e01889aa400ca4a6c35d1b5297f5548e7c88b6b9d100a3ca2e84cf3d0c68a9edcfd8bd4e6ef4e62b9a2e932b72c33d4e69a854cba7654d4b72699fe0e4cf012762666a22daae78593abfa7b21be6d7b361a7f9b345a50300ad125cbc59d26286933dd9eaabdc568a0329bfc7325e7e65a3fea2f45baac1143d669ab6befda150883fea41ae3bdd5bedf81e91fbf37d2d54fbcfab406162c58f8341e2f8145ec29b805dc8365ba076d8995d7e38da616c74f54a852c1c537b438c055af632b382a10f842ecf23b189476b4ee9c1d4e683464556b2ac160d54cd0fc0792c3e328b7fe38e045f1504dcc5fcec5f18d0c0c1eca6da9f2b4f78e9a82190def3f4ebdd0078d7648e103db3f30568581c4439893c6c9f7c9bb61583838a249e8bddac2547ce707dc2d668d3da4151e173dff6586354b2f4c0a0187bf6c7d4c45497e92a46314654ac8c1d8f2557911a8d97e928bcb0bcb149a62c1e2d51eaa1d7549d8ff7b97eded0b37c8d6fce33b7fb0fabd7db0753fa0a2b81c07b4f57a4bdc5dac597672e3a773894792e4e6e77f7d2ca0f23fc440ea81c1835e2696932c1fcce06fbe1ee8f18dffca521115b19d558cf84435854f4fb2ddfb90f794c72b27a05475d8d8b70081404e01b17f39149c41c6b0f04a29434ff4ff57e0abb2cabbfa43ba540278e925f0873b47cab976f1a4a96b8535cc4231edcb61b50c31ea926b42c64fb75dae4e1a919ab4ca6e8454a028e8cb4d8fa11c342cb89e6c069acab1362a57538ba91852f0956b968e6bd26bfe2a618391bc91c109e2bb93c10a302473abfe6b9941c9e232eea227bd1b4a316d2569d67e69051813fcf071ad4efbedac941465b0ccdee4cef6b38a482973bd30a18ae735fdf747dab022f0b4020a4fd6bb08855b2eee0472bff1e6aca77fb04346dec22c59fb47406d2ce2f434708fa2c659e2f2ebd206552f58a1b8529a9b02fbee59524242bd0a9b78ddda4ec37df62b21d3300c141a7e2e2bf308ec130efa9460071e71ac9384246a5deb28eeb14a49af95650d0125b2dfd8caca72018ecf93764eb67f0051497f6f66f93bbcddcd627161b832fd385b54f78defbe90a832921af8091e7385cec95a0a79d2af8dcb38e00e3a81dd35c9a36d8c0924e932e59a7fc27e4d09ed9ec0917228514efa23fd6342c8820cdf8d68b080844f173c423d19a75e4e39587cb408af16fd6a070174b2e01e5f6de057435276f271919480735e0c2f6b2d371d0798fd7305043512ad8992c3626485857fc54007f1016fd50c0637d2663076c3de3c3d2bf5251154a75b440df41ad43a96e73e8bceb2021a6ed225f68c4e93e92a4e02be2d9b729a7e92db475d7a0a94067eb45d8b4881faa7a06174d2c531223223a63fe44abf68700643af91faf326680a52dc68558fa48a0df07fe7cf8583d8766cf7ea3ee2fd8db15e40437ecaa45a9521034fc8b42203e8c0b06b0ff8c852e8bfb9175fe51e0b6ad1f88b5fc1878049931f1614763dbb830a528a75dd8ca94e2057c41e2ded3a9df8aca43d9129e68b4be919f6f866a9322f84f970d7414274e16b16bb590392f57755ac68caf2317f76346b9e92f0cdc241813b949999f6af5911bd22c8bed8c7e9b548bd1ecd889d27684671036074301a4e55236d674112874b3816741bd377a0799b4962656605fa5876269236be7dd9ad120d2dd02b07948c87bb5f962fd482f1d5711d899db5962c31ebcb142565c8d93fa555ba"}, @NL80211_PKTPAT_PATTERN={0x1004, 0x2, "1f3d032cfc9062d737f11319d04dbe948d064733329dabd93b61524bff864cf7f855fe6dffdc52ed24b4dc7a2ebe918640ddebe604a1820189661d38706fc7cdbedf43d618cdc5858e27f445f1accc2659797f128842a51ee3e6f2dd35bc0ec85ebfed51e91853af28bc657419925852edc063895377adf68610984c8587a5f7c45ad80aeb628132cb2b38cf64a0fbbfedec1d8bff95c83237944d3cf948e4f869cbd0dcfcc25f715d3d0682b97dfbef08633d9b4536bf365bde5efbc579b7409500c3b7f89c5b34b0d618c297d7627559b2357bd6eeb2f4c6176d161cf8c37d2807e99e9c381af3657023a1fa061e1b3bd3f53b04ed1f0c8e24229a299c3067fe799db7292a3dc42ad580f7fe24b7d7af2b433afe63c0d99b152e5145c573d0e934618b4026b77f13d14890d7cd384f12672723648c2ae5d74f02de395c5a0420be70c72e611c8c958fe5d195fbb849c86580a44aea92f7a8c04a9b84d6f68c8eca7fc2c11a3d98444cf144b99d119d6de8cdddd0d0e8d8330132d16b04d03b507a71c2c997f6779ae1a6ba4fd44f5919c74398bb56727afa1e14f8897c00e0def956ef848bf58ab9b7dee15b105c5a36254edb2e86383cfd078c26d97d9b28dd43003647e974505f4169aae4df6fafa73e32f33cf20d3375f34bfa2dad92bc78eca8acd082577de6f797e34a8796556ef6c92a20d8ccb48c5b207cb3b729e6da149adef14caa3dd916c14a036f0d33c872aab7057e4eab2b6be70843363b2cf283a3e3b39aac233e011a28aabbec0607a7b23a385334e5503fd8dd1d5e8898e6423baa1539fd476f7405990b6a472618452439a06d0771474c861888fdd5d786cb927c34adc1c9e8bbd91ae8436a8493d5fdb15f6cf379f99797f0ca06950af26b56cdb922be0d8d0f7c6190fd8a11193b6176644b997fdeb819162917a20d395c9e5b6680dc00a1ef6306a556a25a595d0bdf3229a9d970ab94139d69d8bb19237637f4823661f8637ba6b832d088e840cc54aef4dffb61f88dee3189d7330a7f481e55bd24d95faec3af9b296c80a89578a74299b48f113434902c2e80ff203ed2c6ed7f492af293ddd9faaea7324918afdf14b082061c381187c3bab0a2338c29a25461b3fe81432d7fdfa6ab94df28fe79d2668e723bab1837206d39150df0454e735347995674e0d3e33b7ac46bdb7e3f9734468c6b920e2e353bd2469fb6fc4d63de313147c844853c3fd48502ca0591dff5865ddf160d1ee05b1454b9f4603ed817ec074a42276ebe0356a8711a8fba59e408955c90eeb5bdea01abd08a038fd880d82f0fc38aaf12e2616a73b901e946f97784c0ec8ae8dc9be33124d91fcdf96fc2ee2561f04eb0af0746a4e7014708dc5b6a622a34e7aa896d20035a0395eca56c7adc07b2ddc380e3f0fa4d180374c7381ff773a74c2c9b094b79ff85fd3238236e46ef158fa18888b6246f1a004d25bb47317eb9b65795d684754a4ef6c88901e14885e3f666326957e1667f6594629429f1cc3e5b2c7162238187d5cffb29e3756ad28f62beb7c2a70bd71a66264008d4f477f1938a0d2255d805b96f8b427220a32ddc129e436f9ab8496d02ccb18a5c9d2fd087bb786cc709a5adb92b8b19c55efa3fb7d9cd611bfb6b2f99910cfd3d46231f45cd479b3cebadc4a4f3572b77096129f91f05101af1f4c3a4fcdff21f7b96db12ade8bae7350635369608c360409907732c47207606228a7f3aede9bc86bd52ba5546b9fab1fab4ba6ac6e9e87adf8bc5e4359b875c64d067e185254a32f61edcf5658e1d4d98a87e8450c8da0e5b7a4ca2cff563a884dfb727dc11941adb02b3f97a44a2d99ba70e838486b3aaac2472e9281ebec5429efdeba88462dad67414803e6673d62a84d523b93bf3d7b47cd98499f10bb9f92f1769b0b8f4a99e63bb913fb7e3e6dd9e07e5706afa67d251eb41323f6b6d87e4ce1f0e488e58b4b4a0cc4ee6a326e2ecc2637fb00ca0cbaeb02d670d4bf0081f801fbafe54717631602412e26f0b41baa3ecd9a653b227f60380480b071869ec5cd939e4960a18905f35f14bb0d0ed4226822e1139e7bf1b1852826dbdb13b97152c1d65a2774db7e8cf409bd96b6761639727f433fead2b10beabef2b1441b40e9e725b4679699449b0e5e06b1160f3a8e7b9b4340ebda630bf56cf02d64f81ee77fcd588c6984456e785001a3cc852d826e9cb37f60a2ab36200c0e889dbe2afebdeeee9dedf93cffb56492118c8d88aa25822616a8cb33895632e61c0ee2df99d5cd833677e00a9748ee46b0b3ef7624f8d1effe4bf2e04441af5dc5200deeb2da0b79c782089a98118b6b4b5bc7ead5820ef91143cab1bd336a6c70aa6488125f8a9a2d8de27da21908a8ed3c5d71aaa0330682600d9f017e7b9ee4726a7e1e3f5ad9acba3ba8110a39de40dd2d8789e4b5987c3e72a2ea2a48c04fa3ef00ed80d8bae68b847d790be4977635ff5c3a045e3c39db60491b5305b97459b00f37094643a571ef3f9575ae8dad8d9e5a765caea65a7a363b34ec100d160d404f087dad930cbe9cf5319793e05080c8518f63b5c1521ce0c709e08fb073cc7478cc50fa551f448c47ffa1cfa72e23d964d75d5c668c86aa4780497dda585e930b910c7a255578968a99e24807cf9696db24a6536e68ee1cba37969f28cefeaf51e3f612138dbe772277f88bccf77f90f616fb45462499d9272d19fd67bf754b96a55dc83ca6789512b5939a97cf18e7c6c3a60eb805655b8ab73139b448802dd41cb63f8da068abc6b2fceca9fcce52e8d514eef146c1c8ffcb34f0e0a6cf1a1f787e7d9b23b7887f67d8947b2e7e601548e89192b7a1668743e9d0a397f82df147d9e99543ace1729a398a067d9ff3eedcc16e817624e22744163610143c436bee14961f57d380298a59a71d1bfa3fb861e9813c0f0e60121d58636f040a021b1365bddd363d9b6dbb139e1676e9e2bdfb3ba43a4ff2059832be9470fb3964b35c0d11b3fd25cb3555ee503ef0579911873c4fbb012feba27ff6e2657cb7b57e5ae1feefd7fd238b22879832f5541c31c070a981742059bd5283f7046aa5aa8fb405e9d3241dd6c8ec91ac0ef44cfdf5bc2783ded561bc1e68f889a6a6b1f881ac8129352ff57ff2c39587ea7837f652dcee962dc99358f018525aa1ca0abd15b2e09ea6834f5c510146a04c4c7ea9ff9187778edefe7935a2c235051582f68264c372bf10aa1f08a04c92cddfe579d8a18ae07c05414bf2e105d87e88e81e022e279b1b3ba1dd03217de486ed31b3dd50a3bd025dca766a53d319e6b0fb0b2d494aa477b7837be92e01ffd99503563c2f6191f7a8a686a6c0c0dd127026e919b7318f59bc3f219b0dd14c420e9993db1ffaa36c3e2351002165eb764c30a6a19f24cf5c79ae252d3a13e732f6351944e200a3410cc8b42d6bb2480c0f69dce892cad5c8d60078496f223b2528440a71ed006c7669de6557125a6c046d87589ef2265ce9577bfc4600b0f0494d4d9d1d280fff92234cafa78962ce56e92799da48eef223dc40c5d0e8a42f42216af0d400f836b3405c76897afebe6fb198055f5d69c41e0764012ec93d69f42e0d59ba38737b88147c24d649da00db5e0dc9868ed10880d4b117feffddafd53cdbc0f3270d18e1ed04919848226e9b4607413c4bce3ee0c9d639de42e84e485521104405dadd5c292e0abfc30ea597d1c304ae160906d5a49a1910e05ac74ab27405c5db25c2f57eae5675b143f1507e51f581ffb60a0b3fbe5cdb69c872f7607be9089b1060de5ae9c03285ad72eb4cf8403caaafede98e98366f3109c8bef5e227c814370515badb98ab07f3a3365e9d07567f0ec4699c2503bb3562896c6bf6a8dfcb41e15e09331e6c4ce3267d00f2bbe80f16efc78f46c7d23f11a5b3ab05696a5af2707654260e1854efb889f7cbfab4d9fadb6ac11725531b270db2acbf8db176e138997fb3827a1742e410b6169ef64b61b8ab8d947ef87bd1c489134460966524fed2243da130414a8f79dfe9f183d3b5b39c314965a2eee87eab09f006d2c3c35d1ddf330bdca077fd63db5bb375078889fe064836bb0c55cc758d4b9ba628f6851c26e09cfa26c8c94032d08623ed76310ea74ba187e3a5caee82322f4625acb867c5b628b0ae83bf33f27b9922533f981861c6c2ee34757717eea3246fae4c979680054f07201e2c48d5ef0beef99390c144ec76a68c4445a1dff2681751226af29ced35251110d8c59d02a837f49a9e5b0c2e60488024161ca22a47ade8b267ec9043743384772da52d77edfc2520cb4686cc7f6d4a9004e0cdf24dd7b536613539366e47bd872b6b49f54e8fe7c3ca90156bf9832b179c215e4333b6f63af3dbf82d4bf85b3a28bda0ad2eb9756748db12ea0e99d4708ca0d4d0be028c0a68f3f8a7c2e091ad4830431f4f644c87d15471d061d51a1a7c1b712515ebe88310ae6a3b1e70950d311a8346c22a77318759cd4edf8cd7d69e062bf3c3ad3106582e0338e3f9aa423110e5c37e7b14548d823dff946b98fccc146502bfaefd209bc1467c8685ecea0d48eae3414a78a5124c2099163f51f758debcdba4e704bc990f6fab5227fa7d94b3f3c57457cd5b2daab0e9c8aeed94184931861b33585568f934cc60e5e6030f6314f256e24dd69be684c6b2b53d5d262397453ff2332a4686122f777760edc6637dd558bcd679affd6a3ce193aa36e38761e2d509c1c921d3d323d8366641849d241a2b32dde6028312c00f7b19f0edc3b30a0779abf5dd9d01110263798cfa847ccf8587fd67653a0b2e0ade07af5ff4efc0c0b64575214108044a8927fe2b2222002b514d913e9e32d9338a525986446ee3dd274f7603ab876e7f20c767407de01d879762e4a2996778ebc2d228fd4b00fca6323e71625cc549dc34e39660a7601887c737871ea2097d2792ebb96f8a9476897a30fdb1492ccd934d082b478baf330f825d45cb304b112345cdc56c16e6231b9a0485c2e350e99a77229cd81ab4daa86e62e07dcacff7baa56b6d1afe064951f53ee56d1bfbd3cdd2c359a60c02a3243995c3fb9b7298d603bba68f9655d5eca9df417c3ceaaf5202b482fc709a0a2ac9a460242df2337c585a8c6e26b76bb813e545d292d686f393e247a60b3ba1063caa773c6469808e4cf38e6dc886baa74ace5eac9e607965b855230aa9ea2e40b88a001536bd01876590b42f897565c7219c417d26cb8ed18eb47b1736f19d9d528e9841269595f843915408255eae1013a1dbe89b312a597d701a59305a5050f2ba0fc5e42d272ee65f5fa1d1dc75f4705a482578dd17fdbc901cd3e2d15690f0bbc8578e980c4a6b13a621638f62e03098b563ce793f0add880ed651ea549e3ffe9217f0e2e5553363fea13d2d7489a58efea1b437468d978f68b5f5d15783daaa41319db512032fda2c3852e7a78a28f62ed35b36c4b0c081505a736bca3dba050cec3d26a34e4fa6dcdc3df6a53d732f0d5958fa6329625b69ff73190e5e05ea713c5769893c20e1186b4d406ba33966e0fd5e83e0f7ef2ac9e1db9ddf778db47e5c06cb520d1fef38ba6c8cbf381271abd3e86a9537fdb715514393a098a517aed48fe6caf9eb8fa23eda30f90749486c25424797f971d09bd884f4d4360d7b0705f3b94c08612cc00f48f12b169667eb50ddf877a046e47a81d3e1f7d7421188d6685200a24016266142d6ae8de066bf63eeed073d01c264141181170a43253b4edb4754f1dcf68549e74"}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x2}, @NL80211_PKTPAT_PATTERN={0x4e, 0x2, "61145b53bb13c9d90bb315ee96950fef34a7c6ad1c4d85b9a5e5b485f1b4b11a7d795e739d77eb16f2e7c5a1a7e85ed6740a68754423fc7e04d16c12a70ec8ee79118af139063acc8195"}, @NL80211_PKTPAT_MASK={0x6a, 0x1, "7f5bc7b038cfb479d283b275c0f8a97146de074a5390d527c6fe759e4b385ba6047b18a8956cf30ab36b62d64c1a2ebb95466b788dc7295d9d62bd6ed928a254c18bf5bb48deaea41ab16ea6eec2335ad7a7b3725b1b084c09ec2c5d4ecf04e645f4f9c2f046"}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x1}]}]}]}, @NL80211_ATTR_WOWLAN_TRIGGERS={0x10, 0x75, 0x0, 0x1, [@NL80211_WOWLAN_TRIG_ANY={0x4}, @NL80211_WOWLAN_TRIG_ANY={0x4}, @NL80211_WOWLAN_TRIG_MAGIC_PKT={0x4}]}, @NL80211_ATTR_WOWLAN_TRIGGERS={0x304c, 0x75, 0x0, 0x1, [@NL80211_WOWLAN_TRIG_PKT_PATTERN={0x28ec, 0x4, 0x0, 0x1, [{0x2bc, 0x0, 0x0, 0x1, [@NL80211_PKTPAT_PATTERN={0xea, 0x2, "5da8962cfa12aac1f0dd68005a0d261f75fb5a4379f8350ec77451c0469a579887bb672974a25960962167dc32f0b798634d1c4a11d6b8d8d2fea226a95b362b16c85374a8627c29ce28fd85d7737927d6c3f51a544c752d457c8d3226bf49e7f9dbc15059254929f15610f6fde3c97ed857c395d4055adde2ce5423a3e47362bb2e9fc056a9d9b67e0adb334a82a6603e03ddc01ff449e53bb6dd1ea046d1b9e7f29aff9942ab7e9cbfec4494539490c799865270d61af0f1741ab24530b5ff48e72fde61e708c92bde3547fcaa50fb6e21a023eb719d372b82e70d86a2ee3965e83f6b8af5"}, @NL80211_PKTPAT_MASK={0xce, 0x1, "3178d94665c479797d24e3112581ea66ce11f1f08f9f79e5be7bd4978ae0a2d816e673b7a3e6f7e4705be95b324f18fcc0e01ff31f698b6cf4e35fb3c4d554d93b4a089f40a4f987a6e8c472edfca788e756f21afe777b8732f0dd24cf11ec739a7a775d6c58e164e54d94cfddbbdc72d5f543e17c7437de24c1168b3c32503825ca4ce6325af01ca415381303fc0925e49479d86e0dfe8a42f052e09788b309a89499247d39a8fe33f421c4cd70f2a0d4f16b0437b30d45366318466440884930485599a8610425f1d3"}, @NL80211_PKTPAT_MASK={0xfa, 0x1, "951ca08cf647f54e02a9a5cf6ac4f7cd2805285e718fc63628b578def1f1dcabe548e3aba1729db9cb81de9142deed49e4d2bd1df4fa2faae418bc6eb1660915380ba07b9a264f6f35c60391b54032580dbcd4254b66472d571996dce494cdce3665b6779de8daf1a660a1abd68ab5eaeb06ba616abf01ff8a2deec785e5b34cd70f5bb8de7f1894193d21fd5ee71b1ac1ddc2a4f0d4a481c743b768a22ea93bc84760d5050384db77900f84ac45bb3780fc14b8ddd6b8b1d759d0deff8df297d27c62d3a1998364bffe75ce346bd93b169c2cdc268b571061fbc825de39af5c64dfc0afedd0ae5060b01defeccaf5c9144e1942c72c"}]}, {0x1174, 0x0, 0x0, 0x1, [@NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x80000001}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x2}, @NL80211_PKTPAT_MASK={0x1004, 0x1, "9b78e3badcc9535c86889dbfe79ab29b67e48c114f1de0016cf6e8cc24272e8ca821af7f33bcad15671a471ffd8d90b58ca4108ffac9ed8f96592e9daa9e68cd9c68152178c0454fb6f505cff27889c2bc1d0d7a44a81560e3c2ba19dbc979876124983e0bc6624498cd2dbd973c8dda3f1f4aaa2a8cf5cf81b66fddafe4c4b155c07d58f996b9fc4e467e484ee92bb3ce51446ab963fd9bda42494507c0223bff03bbfde8f43761ec41d4c5417c189ff034226843ac95360d95b354662de1db1ba3779a212a4c847063cbdcf3c09208b72b54a1128a003e1f9736cbad49d6db3c2c08ce35939ef480fbaac83dcbbf573095b6ff0bf223a836cd8f132a9779545f62a965865773834d00364481fae653370a85e2451fb9a63d1d1150c8902f4bc0e41d350f831101c53966da6df9199990e0d5bcc46920c55bcb5ad0682dd5e64f340614b4eb9c3674e17882933fba095a93b00b6f7b69eb1f21b9fc9d1b7db2202dacd3b06c5e8d3ed4b397c5c1125c32029736f7d74741d5daac1b077c0e4af734197a550ea4b23e321d79f3e8f0652df0e7cdc72e5cbc8e0387b1a15ca600d919b88b98117d9478bfd616133e26d8b39dec96ee8e55d90cc2cc8ab02d83d2015af32468ceda84fe937a66a03e3d3d94fa23902f3a676d81ce4be7f6b59e55ada8fff923dacdb8a7c2c6e006769137b142308daaad24ad792d406600bdc7d4100d6c6eb1e24cf487365a82aafc14dc2801fb2cc94655e952826b0f80989713305e95ddf2a61a82cb1b57c0ad2c6ff0fbadb5cb8670342ef1b1035ca4814732db580ca31e5614b1221ebdcd7f71a60534c49db872ff269970b03d8ed46d9e56813d4d8cd4c3d7f073bde0a0974fb6e596ad3ffcf0916dca8327a1d8bef34dba7ee281caf3a4ecaf5c1df9a9a898319aef07c31343429e3b0c6cd0c8175cb58dce42115f8e0c7e13b193d379292b1e631de693fc33ad71605632d9b2e08dc587fd4bdbf85d51d3eda63a8064c63d07c3f14c041eb05d9d5c3b6e702a4b65ef92fd11521c26e837b5b4ff179ad122696ca6f112b85c2075a8faf007cea029b2903a6d3f1882e20e10ef4ef282e3185db7083376b01b471959893a8ac1af8cd82f7fa09b1c5716cac54c1e5e5fd012a04f3e84ffa867f3e4391a02e604098408ac1c037ceb5f2465b4299b7a412764d978c89258179542ff4b7eb132e765f9c60567dd29240fe583749aa6f4be89bbc1d660072092ac8e69140d850da831c79a77cab4e24f8002933303ea020ed2d78ddd9a539f4633136a487ab7ee62d67e7e81cff51b78fedf78121d84ef6308d26510207e4d81daf7f89e346b907094a7dd3e91c9b94469913ab03509ca9e73f2e9f88a9482d3cfa593a9c8535587e0d588fef70ac65a2d5410dc8e58e764123ccb1c82e4df1a4b82a5c5b93bb1b8f6772242865f7caac9d9b4ed67d1061a0dc601652d27032ea7d7bb1bd2bbd8a3b067ea5e12fc57de7ef5cb18ec04a12b00edc96c29a330cb57be834b93980555146f684ef73e7d238234ab8bfbe0e2ed7a9bbbb9ee4d90279883d1dee16a027affef38e985350109fae1368681d933dde479d5ee06630af36a64ced6f606b6745620cef234f6e41339c61035306545bbd4a0b795257f7f69bfb43084e40746a790190a6936a7f6bd9d48c58c6737846dd37c84b2456dae8d772479e8c25a13c4d1a629e64d6d0b2244b2e86c5b140c28bf4b8c74ecd0c6aad6d75cbed8d6e28992c0ad67da0c5e7578bc54efc6c2fcfe2012707806bb1e099ccb901c495f20fec0c8c9995f94446d26ca9557598cb5dae414db4028195cb0583b3a0b204183e7a8d24dfeb1091f60807ac56255521f9ee1b72adbaa171a073c1c5106865d2eec90ef7fc77e7cc057b38e74384baa32d7777edc0f3f0af6da44f8dda67c02af83162d2bf6262e651209a793c02dd4ede6925ca7401cfbe51c51143bc0c10c9be369bca9558ea280610934291bf455668787f7700d76349f4c061dff2a37166a4f3fdc4dd498a16bdf8d24685a1f5f496e0b6991d3fb8ebf8c009d94443e991fea669982ec906f91bd73fb98148fb7199c7f937d89ee6e00b7b0aec7f6f169bc3def59c25628ce1f46ac690a5fa8dbe5b461209d48bb79529289e205cea6b524d37d9e933f6d21331de815ddaea138c228d125d8e918ac151f651e68cac2e9fc4a81c1536c0ae25ec54193ec6f15ebdff6d991cbd79333dcef0513248db5aada007369b621e67171485c4cf8e05e6ec140285b0b02ab5d960bd959542d73fc63284f9ac0626ebcb4c0b4f8e64577831dbc4a1792591d2a5d0deac4c2667b05779d4d7dbbb93d74da63111c2c27c562379bd13329d3f8bf6ed7208c80bdb3faab7bf6ef45674bf4572280b2a9fb0b1a04e5eafa963b2128c804625e034ac522d9485e43521708fd98b96d3624151e727603643c8889509b62fc2241d18f1a462c70bd4e85b180d281397dc1e3f85b362491dda7eee8d6a838defaddedef67ef8275ce6b89d4efb137f0db4e6e6c062b22f8500251d9ac1bafaa4162fea009b5fc94cffa0c265723ce5ad24d8bc4dece12bb950d363f3cd08d349c9e51c546f77472b686f9a6e3f1a854ac5903eb50b2a9fa12e4e1bddc047a0d13ed69413f7f6d8209f2f56a96f0cbbdd66fb0adb929d6473d2adae87cca6c0dfcee040786fb6ac58f981643623c8add88af2717b99ba35855775866d0587b167f6322b385f34fc88b50faa750b816226694c5cb68e6d123f9d3ff857142cf9b1a5e5826febb9d1a1216f0bc6a873bd2abf61f301eb3096ca405846f13ed19e9cea9f7e522b955e0c00e91162cd0fc6b314b5dc6e581ceb4672d5bfce51f1e88577deb1a0fc585646d2b7b87894188c50363380d4eb05e8ede603e8562ae3d378e6f92ac0625168991d2eee2483ed922a5da768e5822517c274c84fa9457db7f089a437c2d9b0b011558645e0e5b16399da7fdfaa02babd69254ceb52036843136b128a9a075852699a6234fdf10216323f19b0b7a02a83ea7e1db0d17ac0f30dc3e397397b57358099196e5cbda8faea0e95e19f266f144575a70a9763e2c90f0ac3ddcc2949b17c20c993ed742a0d86378438122463478249752a605e7c4f07bbac139c7cc0f20bdb9356d412603839401a3d0a91b77e832a46f0ee6c79425966d5d9b35955157e960bfc1e3ed512b06fbd0bc485a552614e9e18ad69ba81df7b10910c090fcc5a4ad95a7f13d419f3a0078f73513aa705f03669daf5245ea2407adfe2f28f8bdd131774782fb68ab6eb285b01e7c297ac5195c3f7daa3afb64776a91d484920fcbadfe04cd15915940eb929eb2522ce9a903403a07463a11178a9665ea23a07a411b28be6657275f80a41e2fd5c26dd528ea7fd06b8eba63c52192a4c076967738b4073231e606e27e67031841a97109663fd0d2b5580f2c4cf2aea41067d8a8cb5100549b1f93d8eaf4978e8e6b8eaefba4c976435150b3c5cdb983018fc83d6a1a02e997d0a49a5f2c687a629e144c4a98a2b137ae330071980829cb14e1068049e7d14b71a41cd4bd851736d9eea7cf42c690195f04d18e29af56b09722e1770f913142ecbd0fb1bd7c72f692b3f598a33306e9c0d85cfe932776b2d32ebd8650c0d125eb24f1e14338cbb139959dc355a08a359be537556698a76a745de988563089107a156c47c23d5012a238fa3d27a9e423ec9de9d72c06a16438b69a14258aca7c8f0c3e744f97e51549b17fda80a18b6da48fb6ce13512455eb4bffa817ccc70f45b1603e3cafeac712f3bec4bcaf9b8a0d660f7cc1e330b34dab8662ca9edf2ecc92add44aed4fd0bc3d6bfd9a06208b1f51c98a139e3703139128541ff3a98664b473a561d83385a9cd701e46271995a70181d9999f0030d5f61ddee17d6e8cc75cd3e9d0b1fb90bd583961f0f25e10770295c8129a47abd2f1b0b368819dd2b938684ad2abd19ce40f4778cab5961907dc38ca72f6443e05b371afcd10742cec436d5da163d0922abb6061f65ea798ba10bb5f3fde6e6102907ffd8217847886c6ec322622e001c09b71d36ae00724b8970d1d51d2fee00e67dca8d2ce9a21648cd8ea50233bb40fa9159e7bc23a1dc27a3045224dc70e0e0783b051c72387d650fe6953c46fa17e651119045649714a4016d8a9ce846e5a21bf6cc2c17cb11c66a6fa0e609683e0365589a204a62669dea9376bafd77271367f8725586d78b27ed16ea84273f971e9ba12d3f05f3741c87a94370699aa1c200625267859009c897fe9dcb2e0aaa1de5d5daeb433c69bf4a8c69875c2636866238a62448d7da350ec8960a029b23a80ed547ddfc4ee226dfe360355ac60652179617ab34c66bda13c6533ed58e25252fe09517e482360ecb50566cb2fe474313ba949c8a9193dd6e579e456154750a95fc1c41330e47c585515e17cd27724a11280649c23f3e2c848ca9ac3c9919404ff7fdbd9b75bfac18a6b11c7d50ee2cc2f655e4ce82541b35c737dedff01a4accad950dcfcbf6c0da66401fb2ee4fe68ee684a8e66c386b688d815f9e026a7555fe616a6e4694f053ed201b0c5cf397a4a7a146d813632a752f9cf51c42124f0100028b1c51207694de4bfcc975e457091d1df9affa4e9a206b74421cdab9edbe4c3d4c1036666ab0541cd0d662d56284027fc8ee2ff5848c8f3b3e8457fa1d463bd9183cfadce6ddaff2797a33d4462d40d48266629a396125f0e37db552ed63fbf889449f4683f7bd604331d2dd97030df87bf0a0f7f34d685b7625ced3dad922b9ca7d8211bd39ff7132c01e738005dc84261e6ea1ce4a227c0b319b7876b19dd36fab52ad01b92bbc0de01cf4405b3cd8f5005a49e671e2ccfe159ffca432e25c306e4a236fd129b52eb4f029123a94df0d55483865840cc87e2fcef7f703b584851b31f5b93d3d9ab14d9ef8e83fd32b4b1c849f527ef8ef63d65d5784f18c53d4e8a43b062ec7447975fd328a8a062c74c389c6305d2a1a82f6d16c4568a9627280c4ae5007aaf85c89027cd5d47a784517320cd0ca614a163914664abb2e32ca2b44bdd018034a28b5bb6b5215b8916fefb822c9fdb82419b901426fe74a7fda75ea7f11e2a4a65a7e2f77635fb6638e294e67de7285888e5debf0c36cddf93ba86a60428fa6efa7ac5c4536137f5702a247c71085cff983cde3b672655dba7075008581a1aa67c6d137fd801cc9491836173cc0d80c5a818c15422430f054bd8736690536d84f8fec6cd3005ed77ee6d2022791c76f7f167339facf1e56d6021b9d0dcdb6e21485a5a219192f19ff56c4595e7a35e6d9c75a56df38e03d90b6b0cc20a80930055cc4c48a1a8b577122574ccf60cd66a624698047ff381f13ec40ba5a9096ad49cd7136c7eb3bed5248eec92006dd990a965ef377c2c435d4d69bbc2260bdfa8c46733cac0ae26c651add8e6f330fa508567ac7fa6c621833adc1103eb7a849b4fd9fad685b7cf5442fd4c484af8d56f6b335381d35bf8d0273c48fa928328f566ee1334e74d5eca6d76badeeecd1bad5640f96799b61ec8783fd7f3e94c0784973c79239e3b339d010d30f49e6b7a29de58c2425518c15528db77c9b248e384f9c6469ac4532396c456e8f39a66d925e654ec037bc3318a1fc68e3bf519138923f24e6ca009b927cf460cd5b57e022fd46211e18caa6f279aaa9715b0795f1e4c9e45ea73a75b9329110faa2a29ac62e2aecc168bd0ce797ef7c8abca09a72856b2482a27294072c69248"}, @NL80211_PKTPAT_MASK={0xba, 0x1, "99c792dcba0c0726d7ad4726d44685a582557eba7a5ff70f16b2b0ea1699d5e5293cab1ad9746315dcf18949e0a541e8e53ad5274728e8cf72787409be1b2dcabcefbf2d104df77c4e473149c5a85a37fb5b20de1a027d219b5d16073997ca59f73477e09a318b6d22c298e06f01bd39b1f6ae88f43f34c774c20493c5cf491f2851a02113e3304560b52212c9b5dfd1c04f3977517efa37bcc1f4b1dba16b6ad78653d19233b6514afdec1b94d5d49fac193f64b2b8"}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x1}, @NL80211_PKTPAT_PATTERN={0x96, 0x2, "f5e4602e1f4f64f0d0257f9ce8e1e9e2583f00abfc1d6322303f08370df2682e82aca76b9d77a0fe97ada461a87cfd1c7947bce69e1941c7400199908952f41b0c96a1937f62246c6c0b1e4b10ba5824cd5a01746b6d94eb8441e3fb4bf0490cbd536a631bd8bd307d17eea23171de53cf5087898aa9e8961f4a088880e9b9c8a93866addb18227d7492b805dd296e72ece5"}]}, {0x284, 0x0, 0x0, 0x1, [@NL80211_PKTPAT_MASK={0xc4, 0x1, "2732d74d227850e6dd5d8322e7e15c318cc2f526066082384608b5c9dbc08624e5319d74a9787a11d878ad7e17601e231afed657f167252e91a9001ae7382012244122946f22a63680b75477d9d1075a7d0b6ea0305ca02d0b29ecb937422c149813b2f6837b31e28c372d4c4bd6b0e84025ccf1c592e66e5e14eecf6afa03d75f2a3701a3ae67db22c5cfac06b538ce7da8b7bb511871fe53911107d8bc94f94eacf8c04e03678375d90e5adbca248bdff5f2fed43466e8a05518a36f9be080"}, @NL80211_PKTPAT_MASK={0xf9, 0x1, "f4ab0b811d0e4aa38e81413563f068517d7b73c603e6dde0f99d6e47fdae2248ce7e513573f13d48a1bbd1ab11e2091bfff8f56c160c53654852cc7005287ff40b4a33b1071ce5a8fad415a5ed52ac1a8766998d4899bbbdc6856d38dcce9b69765f2acf52956e1da86c5ebb59e49d9247ed894c826c9a452adb12d92ce7a5e9e47375c2f2c5c342701c6d45203d96ec44419497bf8d0fa32aff8ff4eb08d2bbcac3efa3095bbbf57bde0b479ca636b843a5a491caf21b95f6d839e047dfd4f6d847248026b8844acbc32798a188809de6249d1776aa4d721f0f55d17a49ee0769bcfb3fada6dcac5c41128d11ab79f0b8aac6751e"}, @NL80211_PKTPAT_PATTERN={0xbe, 0x2, "9588e8e3356386380446e8c8ef37c86146d4a04295a0f0c86fa44d4d53da9b74a963e69c10bc1af313c49a948142a21a6b6477f6de2f6c9892fcb4f2d6d82a0dc5c61e79abaf7e5b1ad9821771b0590d2594d382806877b7c89d8c5ec9a345c55fb2aba5167da33f56bec6b1aa5ff7f74b8cac1f22f20008126571e077a528551884021d033f2305abcaf6fe524a0804804b18cc176f4d54be61151a1502984f459243b6e7d3219f18b9a66e6bd4b7c1841af26955f410cca46c"}]}, {0x194, 0x0, 0x0, 0x1, [@NL80211_PKTPAT_MASK={0x22, 0x1, "b0c91c1d520fe15339b810d710383946fa2469f0249b0ef1a55cf0054a2c"}, @NL80211_PKTPAT_MASK={0xdf, 0x1, "f18f507b54cc9c1bc372aaa68f3575e5e7f9e4e909c1f555c4849526abd345e1f3c16a372470d14c86864d7bc9a4c19a26d3b0e2cbc796f39847774eaa70c2b6981baa03862158442b64b4fe0e0e0fac051a9d57287b904f122cb27a5d61a446a6edd77f1762b82000c39a52df934fd473bd481df8f10d4a542829c8772c73f9d4d6e82fec4be57b294f1bfc2392f069423d9ba6aa48cd3ff5f9aef5eda044357c04a3ba813276d367fa8d1e1cfb358f1bb71d5b47a4177809a9cb0dd862a2ff5cda47bd15e9183e3c983e5d3e4d6caee7b2756334f142f09e53b5"}, @NL80211_PKTPAT_MASK={0x22, 0x1, "39db02c3ae791d698e59d7669d53699fbea9277e14cbe903f8dd232a6d9a"}, @NL80211_PKTPAT_MASK={0x66, 0x1, "c1ca352687c3feef6868fd9a7e9ef3a6535b9007cc446570522419ef43b5d964e7cc3cf16bba4d6a5077d6abe6dcff2dfda9b294665b435311c842c1df58faae8fee2f9521c81534ce0eda2d43681c22957729be7553bc68ca0a4f59abf749b4698d"}]}, {0x10a0, 0x0, 0x0, 0x1, [@NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x9}, @NL80211_PKTPAT_MASK={0x1004, 0x1, "e8a6d0b566cc541b5c853855c153531ff46bbe6867f4e39d22243b0a87bf8edf0fec2bb83e85042eddd11de94d6339a46cf08d245a38d73230f67a93ac403c9a857439ce9b5750699ecf8e0ca0b23c0ddc2b4b7550196a9ce83810615bae77f0e83e55dbe18dc36dad6320c22ce98d7d4a72d74ee0bd3045901952a8ec0491a16cab5d178aa3fe3396bcfc7186194c351cc5f59278c2588ef8047453fa1010c86a3eabd1100780b741ed0ac85e15e0abf9359a5a801fc886d45ef7f4c6f775f9368a6b17866ec9e58d3915b83ed4baebcead5567bc02edded0d0fd579e95385ca6ccefea9baa00697dbfbde9bfb13b9b681be3f1deaff1493d94000aa9be52a2f6e4517678e91cdace3f86cfe28aa3d4f66370747700f227cb3e50ffecb4ec9b9643152f2b1e8dfe4825aa5d62cbebf3940efa3ac8ea8a1ecb35f998799c766556e74deec9a1dfc509af0edc4bcc400035d853cc1d70ca0db2bcc78019ea066536a5a377e949ee418517245b46d7d8c70ce461e8cc4bd00008540e68906cde872b40607893153a34e94a9b851ec06b8c2f8ac7584d19bfb650f103a089fe22f500299d5735771e32d6b61a5d6c384da906c77cf93ebeef322ca422fc0b4eb3336055154e78603d0261d722a56de36004530ef1096aef0e888fb4b82a8428d8b2c9f1d7c302e8e5d73d2132bf22d4bbc01fa5bb575299457f08716511454fb808e0ce8c3516f79e34fe17f9e7d7e5b0bd5d444fa1ee4f9502b6ce6d8478951f0a2f39b7813dbac2d180c6ede0ed1b490d63ac78e33d064bd067644840d48c8a60465177c4441843361514e9632698fd340bfa1a5517e206e72768c04cf9987528a7058eba98728b2693ea1188d36d09fbd0f40e0b6ccce71066c022ac1bd5b7e7b4379d9f6dd079add1263d5bccc9104a77b964bab16a486a2b63dd47c55b5af100685863af9d835d86dffea452c60cff214c9fee71a014076be618750ce42935e75ca35e86022c9c964c674ee598cbfea538a4f50ca9a6cd1cb47f0faafe85ccafb0257bac6923a4458b263e43d15df577be8350855a77dddcb1752cd0339c25fecb77cb5fd350866c133ac32725fbb23e7a290c55df7d7393f60bc0df4ddfe648c85bd610b835233ccc87ab593380edb784a173832b9892a27e1e8c752677f0da5296138d3d70c88f244e07f11028f37b29435574366280cb151f9222783af4195c71933f33bdd526ad37a3d79d6c6c8c177a05ba8b9a5665e4e9fe3dbf08a03ee6233929facb2f36101e847806c84bf5ae72668af8ee44e2cbbeb7f8432e6731c4a72d5b912f511a3a402814055b90ca543576d37aaa35194d60178e592b42a5c4c389385fe1991f90425f4de4ab351a48446fa9560234f1a4b5f7bbc320f73e05b1370b46de8f18b73a9ecf168ab457770872956b207496492caf3d66c75e1f1516b9c8a48d4d94f60fe1651edca3ed7bc4b68a4e067d2a8e0f4512da595c0753c9a16d92e1df4ab69c78a43f5132f439d1c6c51f40c4d8f4f60bd331e549df8f48a35c6902d6b3d43d406130e6979595aae9acd2bd7839f5369357aa1808c1075f594c136b6098c5fdf778d236983868fe5fe2d53573a39332b038f6a79ca64399b7c07d5d1a1d53c4d71987cd6c4db6c9614074ca32937e51f21003660f9d6c73b67ecd2f0459cb2fe54ff6773a624c1abf10627856badb8639c1892e0295580ecee85ea13e202bd634859854fc37b3cf30551f70475a413d5e3404cb606db7e8b2402204d45b2eff82c0cb0d97b0a3c063a153b10af2f5fffff92a078b1db0dab81018c9a65494ed7f754965e9aabf048859dcabf834ac6c1bc68e53c30091d94ab8b6eb9cc991ddf4deded9fe95ab49d54b1360fe94cac54677290c01e21ab47e30e9c38550fe3339dd31275d0862dfcdfed347df8729010e74fe56e5620d6109bdfd59298c73b95db9525d5683ea14b538ca86fe57a485dc4457b97e61943f0f1717f872402b3f8be4b8e45e2148b71de3590fff983bdf39fe9177a7bfe4ca579fb03d5a56e286430339f6e239e0c2e7ede14efb1a795e525d8aea9197d3df59f2cd379f04f27e5dd72ef6bb1a0f5ec95a82b507220a2a14f48d3993e25bedf92a204ea65878c5b664fd50c10fe01d72ab2f67e7a01ae5f8c5ef323f5c58d11cf4d0a5cc44331e130455bad2df5327ad33bb4ee2f4b4ac7cd9a18b0bad6e483ce73a76ca89770bb90072c46d0c440082a1bbebdc407f8998b8fed6180446e3541c2aa378b6ce68955d02de6378eb8d4ae9515d5acf7cae709fa49046731f1ca7728b21dbd5960a662c50a1446027c3eb58c37a83b89bb8cc3812ae65a94c8c82481aaad1b5f31c2a1c968aadb8325b042e58dcd167363713bdca02c3ee69eb1486e62fc3d4d67c416ae5290d3d69cd772a5c2976508d75ddee1b41b8ea993a0ffb5842e6c01870d625932223fa9533c12f2841da3336a3b6547eca9cffb4c71e46b79dd25ae6e2449bc1fa864aacbc2d6df553e225a96bd6b9cb0ded2e82969c40da33c1b2cfff35ee3c29958b7717e17e6c265fa7ca6cdf9c3357502aee210f0cd4f96e0ecbe831142e9ec3be7d9e9d5b5782d10cc6d540becbd23225f5f741a5a68f460b40014964c59586bbc4a984a7cd34966eb5ce62c0648dfb1352a49d62b2f8b1eebcfc24b9058d3a0677a775841d84558741b2d1f58014a2d53a727ba244604415969096aa11114311f222d895a8193f9b7b3a945328976cc86db18beef2de2ccf9a701444e4270a26cd37e9e8cdc5b7ecd5e5f03fc0ca8c1a9e728a748386b5ea09ea2e2f4b71c5a3fe4e72da8157998b46f4b52ede1283b739a54bd9289a810672c1876f38ddebe4b7d1aa7755b7360e3a20e0d51269b96a14045bddab4fa9c4abec6e0fafad46cef06a837e8ed54e3a11225cbfd9cdc1686ad109afb50c2b522528430e92ee726088b77b92c1db1b7938dfdcbf4ec1811eac77c8beaafedb49d17c3a3e0e8de1124368a2700d8d2f60f138c6399605f2df8ce19e554d9979c98cc8d2b77b376d4e3a00d758b195ec659a38d5c645113ba94eb38eb0fbe80dcc93fbb243baed21e7d6bd13368d21a1c39f2e4895802a158af4473e023921cf0e04119796318b0f5755b79adc4b4cada97d0a10b8d52b9a294275a97509a99a4ef73c1141e0052bb3dd8acb4eef073f51a3d52341deb01b113080968d84530c8ca770104bb88ccbb6123ed3a3b5f901b83d867e5171fccb55d0cb5891a7188b0d8a7b8ac5ff20a622388b2eb80621a0373a89da8a516797df080065dcc0759666aae747f0e2fcc7569b2c0031f0903f61f6dc7cc2d82fee2628a6fd33309436015b7c7a9eb9d50c2ddad9e4bd118c2384b5a836054bfcbc64a9e0a97da4ce40ff5f262703632c9069f76e5f0a7cad4043366c65060fcc615b704a0dac5120a4b84ecb4d036408cfb947ec0fe633ccf4d3a2d4ba7e15ec1317de1762b9c5d32ce1c5e8920e2b07e5da3378ef0b37cf9084dc66d2fc242d9e62fcf21a4dd5fc3a6aa5a2c416460f3111d0b7fac7f95f31dc00c831915583da6625582c0faf331dd5e13a80355222c10e3408163fa6c4ef88c63cc338e3245438679e2cc582e2c99b2951cb63797b22998cbab326565e0561f27aba4b908b3a4495c300b23fbc0caa2169b826fb160a962e7bdae7335900dc5a6015260366b401fce70628cc7296b2227d4bb5a0c413a5f8d31e53ea66a270213b528d077240213136b78f0dbb51cf7123b8e5b391cbacce2c5e3753f2085121bbe601d12494fb3a011d1517a7ff666c797af8f5812ce912ecddcf886c99dd972a8b9bc5e5267b3010abb9e40e16c650dc12c80cf6fe568081887047f5341e1a8b2229131de772bbd1cd3ca5b0981d4daf1d4e33927cd963d44acbe3c162d5a27a68092781b97fc55f68f5b0072bc5d8b30beb7f776ab023398fba3050f7bc042acf015f68acb556720b4f6175d2f3995dd3f5c4f37ca9f0027b77122f8c47a63a0aa08e14a5650e352fbdd0f0adfc9d03bb9b50bb3e18cf6011efba7e0db07f45aa97d617283a16c5085e3b3fe5a84d6babcdb2ce1cc73fcf8abc22ce2bd338a0cfbdb16b1ae3705164c56b76732debac0151adad9578ad60efbeb1aef38b584cad0a4d4a71d3ad34081eade959b33868acc8fe997b30273b330ea65608f643e83c5327e3a85590101f0d64be6ef45a12c84471d113015515cebc450893cb6f86e25dc5c85aa73729fe2d3e87f49345418e8555a487dee01bdc4ae9e5f4ce89b2b52d1a94eded2371819ceb877ab0a0f07ecd12f73a006cd4469bc2a5dbce99923120d7928f48c886f3558e5c32bca59738fa084442e02e457e421ff1faae596c59f7236355789c0b5050744c9931e96a5050b0c026761d08fd291c01ccaec4ce95111e2a226471fb6fc122d854efea007afdb997265c432d04af232ac8ace511a48ff2070784656b950c9eeb6a552503044939d305a69d2478ba2371d765a7a5f791dde8f22a3bad132e7abe5815f41173a92058e0a04f871c3c77aec6b4134e8eaf2eb29a77172d63ff813c082b738e9ddc183b88a028ae630a74062e9030ad9fd0b7b1f245380ca5dc7896d705ef286c95ef907529d49561512046d8164f2b435fa9ea9fc2e0fd30f4f1e94c604804abaaaf477d00d901400909856511db2c8c43b339736b11178d2baad86b2baaac5a3e17d6e90fc950f63a4ac27b4c48c7c14c18f0b7feb2fc8123f3b70e485d77ba8c8aa03cb94de7d63312d7213cac517478d16940ebd685fead3048c6a561d0ba158988db459d00b5a0111a955819ba01d965654d7ccf4e7c6625f51d620ab80669826fb1f786e0e3a73c2a32108f2fa3925dde3813dccde148aad16d74696340484d1b00c18b4d9dcdac886ed85a9fa849c14993f76558e6577c5d57131fbf1c417d4b79d946a2e986ceac1041cc434c4f48321ef9f28c73cf81e7331a3d31fe4d7d4d29a0a627cb578a6b222f529c32b9e06064225eddb30e3a79fa117ffcf441f9241bc7fd130cd64afadf8f498557d28e579c0e10f80fa4c87879bf24a471fd14c63bc880dfd3d3333da4dbb28d092006727e2038c87d34c13f56c08ed64d17f0a0cf971a8f466b09e78698fb13a5d521778d602ace83c2bb8c88c22c2a1e87700c69acc01c21c0520b16603793f192a818d0a3cb905543fd43d63af052b50a1ea8457bc24e919b5820a477ce63b02accd8e84d03d63057f4d65c1b7be08054528454551cd9f6fe49777f3243ff745e726f8072bcfb0ebfa6007859d8d49c62e1e7a6d6246a070982440a3c24c44e0f4885d0de44dcaf887138023645d08d85224dd9bc1e6a479740584ddbbf34c2dc356f77654db9554515e2801640c5465311c000b3a97a192bbd012d0d600eab23f3939b32f561138d135325531ee661700d17f8c5bc730383abf709a96cc47428ae070c73d525bc4c690a4293031f22f9b07b9b52b699199d7b9a56a6ebd136f6018f62af954b8337545547ce9ca6be541c9f7766616bd88d47209e63eeb86dd1c1e3777bc34d47cb99be37c10c92d1096992279af3c2caa006788f1e02b19ecdfad5a7f77744718453666802ef88f03acb09913535da0a422e1613096df05951bd926f2bdb1b872647101de003fe14fee64eb41d72729b20da3b599214d9ad02c72e647625a1d02cffa0a614f42b2dd07efa7d57bf2883ebb3a3489165e962ea635b61b58900b2f268adcdb73e007d0ff8363103b3ea8702ce84badab6e80e079ca4b8"}, @NL80211_PKTPAT_MASK={0x8d, 0x1, "14144dcc7d4f296e6d6ce2d4dfe7e23a2495f1976a36aaa22c11ea512f42846adf1146db6b11f275d8a7b29aa07c46b88b39943035d80259149dfa3069a8541675acd5a2e0122f1b1c575fc3a122cd3134e49054f4794cacb9ad885f700fa005c1dfc2085fb58298fcacf85b97207a083d99e94e16b2d77be7b25f6271f78ce05c381ef54fc88f6ec9"}]}]}, @NL80211_WOWLAN_TRIG_MAGIC_PKT={0x4}, @NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE={0x4}, @NL80211_WOWLAN_TRIG_PKT_PATTERN={0x748, 0x4, 0x0, 0x1, [{0x2fc, 0x0, 0x0, 0x1, [@NL80211_PKTPAT_MASK={0x7b, 0x1, "c95e273f3047fcdcda325e705474f491bd16b7f180aec8b69863b07549e4c9e3cbaa0daa26c4b73d284da3177478a555f9a96647802ef08078c20fbfc472e53db56eb8b17e8f80fefc6ae7e011b6b35ef07e78a8edfec2aa2d0347de93ae534af0ef437bddd0129855d9935038111b8c98ae3e4cb1bf83"}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x8}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x6}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x100}, @NL80211_PKTPAT_MASK={0xf3, 0x1, "e6922938a27a597688eac35ac847754a95655544830ce34e0306c3b74f4cc1d72e352156870377b5658764a47e69fb62f4ba980e6b4c867d886489a56f821d17e38a854bd09d08710f6253173a68f97c0f7326360324ef2c46ca1fd079020c09f504d0b3a89c0ad3e87ab029bfcb27dc46e4e56d1ac8f9a15e38add6a2027d8fc7759869207ce645fdfa4f3d52e5437869bc10f3cf78fa8397dea15205226b353b908fb5a506fd69df21033b9c7d5a3832af8ed5182cb4cb37fa48dee38d9917a7460c87c8e310cbb2453e33951b6099e384685cd9f26c5c55121e54b9a17ea03f98f580a845633fec0b922b950bd9"}, @NL80211_PKTPAT_PATTERN={0xd2, 0x2, "c1c3240e53b55931732f078b2f30aa6ff9d1f8ad3f7e93f1f1dff4f2b516e4135963687e258f7bc0d3d647df1e7a69914f89327771732f9a242ba9b9695ab6481e6dad6008b3758fd0993ee65f99aa5546b79870fe3c31580a239a5e9b16bedf00d2e1736977f0116ad2a1d126e8d20ba504025c61e776303ca42ed72738b544fd91832094335eb21f3c367d4ca6c52f2328af24f7355acffd999e09d0b232536e93981d79e1019db5563a0549194911c4c8c31205a70e138ce01ab0a76a8e19ba9a5b7b917a6cf7a036f7fd0166"}, @NL80211_PKTPAT_MASK={0x99, 0x1, "9621870e2b8976f1d9a47cdb3cd8a188c8fc2fb443e416324635dea6bebb50280020c97b7d58bbc88c3b0df420eab9399572daabc3fb5aba312abb2740a700d97d0c66d8c1f32e03f51711bc25ad30e82cb82781efb48a21f5fcf477c2acae586e690b5890e66f9db9b2cba2a26b16cb26b0bfe159a89301d4a5b59009425d0758849da5e46960c1c317547cd0e4ffe0d2ec7a26c5"}]}, {0x1f8, 0x0, 0x0, 0x1, [@NL80211_PKTPAT_PATTERN={0x5f, 0x2, "cc36c43f3786b46807276a6cdfeff307081f1936c2f114d364f97ebfb8bcb2f60a8439b2c7ad8230f1155b1111b6a0b013ae9ca5ddec147d298e1b83cf5be0a2fb70901b6a963166ad2c801c6d01f00e8e31d520112096d61f815b"}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x3}, @NL80211_PKTPAT_PATTERN={0xdf, 0x2, "e26f802f0fee1765436dc3898cba51eb8942c4f9c182d59bd7064f15f7bc4dd3423a0457a041532ec95325ebe6b3944c5742e014f189cada3cd00e5706fc2e09490743e8db0cdffa225cf0f471d89b740f7cdff4ccf15f7627604d43e189970f8a51d5e6e41e02c077c322acd7312607923a5a1005e257215d5146cbbb9b17aefe377476542d51b1bcb1b510d4ecf490f26e864e4ec9923f5f65dd6c06b9ecbf436ce7129ba2f6815bb284130ece94868190fbbc69226b797c4fb35bee9ace3cbfafc6de256a13febefac88260ec69908bc0b058c94f10af4fdff4"}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x800}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x7f}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x3}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x9}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x8}, @NL80211_PKTPAT_MASK={0x79, 0x1, "56f9c981a89fa457be120e9a9d3cc0232bc4219dbb95338c599f4f7dd9a4046c32c297ec8b4cc91f645458d6d866b2cc01643bb7e65c9bae4d045c55a9c8ae8efdf9306fb01d90a108a1751caa6b1c7ee7c974198c571ccc6d79287356149127f8bbde4569f794a2354603e1413ea00493f9b343a0"}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x5}]}, {0x250, 0x0, 0x0, 0x1, [@NL80211_PKTPAT_PATTERN={0xb8, 0x2, "1d5507cfbd2289760403efe9a8032aacfb7eb1bef786e7cd2091dbe1bc37e4aabf4afb65ea660a15f97e6b4e394c339e277fed91293c300c03819ca2e27440d02083716b825b9fadecc1ad2ca7e03c813cc930e39cca05baa90bb3faedf88635fcfe098acfb299283ba53f2af602de7bb5790c6c89ac6af77289b3677c17ee5cc3b2b33350bc511bdca6470f2493b9564508d1c0aa3f7a29d5a054533d218bf1132e5510df99433b35d2dfee1808f94db92df286"}, @NL80211_PKTPAT_OFFSET={0x8, 0x3, 0x4}, @NL80211_PKTPAT_PATTERN={0x36, 0x2, "2230188fe1e72a0bd8dc9ff0e02c7eb86de5e3df33f7d6cfd353b7dd85189ea209512fc26c0c4e74cbfe1849c098d5f56310"}, @NL80211_PKTPAT_MASK={0x9c, 0x1, "e051f523b42004c69a57bda28f0306f61e9f511ca23ac1fd502a2bae17fb4f9f78ff6588f7f69d5bf4d81e45c9c857b8a06633921ec9c8c10a73280d12e2461f85fe88935d39807fa14be27007eca81b2f9bd956eb95fe71342d1c386c7499e0519f9a2e2e8a4ace088f4979360c7395caf667d50b22d7f27f653c54c5a7f7d02cc0baf2be489d20f288bb3c08599240c5721643f514c6d7"}, @NL80211_PKTPAT_MASK={0xb6, 0x1, "074536d3cfd5ec82a556b7219f9fef7bb048b994a038a52d2f673ac87181208173385f76eda4ca6b51069e682e3455a0d6b7a0781c37dccd29d8492cba86e9563d24d45a843f9437ea90c6088220a057239af1710f4d1111723ef1872ad3c6d83e100cb78a6412dffd2a4e3ae9bdb9f926b9d4983852bf636d0922ef0086501d0000268d506eac434263726cd496ca95e31814918bbca4c4641784672f33d7f0c01296e5cf2a26c1fe0fc4ebb466ae177540"}]}]}, @NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE={0x4}, @NL80211_WOWLAN_TRIG_ANY={0x4}, @NL80211_WOWLAN_TRIG_RFKILL_RELEASE={0x4}]}, @NL80211_ATTR_WOWLAN_TRIGGERS={0x23f0, 0x75, 0x0, 0x1, [@NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE={0x4}, @NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST={0x4}, @NL80211_WOWLAN_TRIG_NET_DETECT={0x23e0, 0x12, 0x0, 0x1, [@NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY={0x4}, @NL80211_ATTR_SCAN_SUPP_RATES={0x23d4, 0x7d, 0x0, 0x1, [@NL80211_BAND_5GHZ={0x2a, 0x1, "621f650dee91e5c78bb11cc5ec480bda2fe2a7e757141597374233cdcdc72b73b572ddb30b56"}, @NL80211_BAND_5GHZ={0xef, 0x1, "a55998866443a68d276da12b39f10a7b0baa5b26b3625678cc1f7fe55d722715992cc729891e1d8f0a94a080dc0b9ae80ca1c5fc8533f9ee3e95d93fbc517147fd4976f777ed2e929a3f243fc74ed1206e0efcab1efe24c083b2cc0df0b07d31d344029b479e6c634ad3e995903a3b7fe26d7b29d9ddc67e309b2afbaf48564c088ea164b66bcb6f11d543676d68b3299b3f25658c10af2f8fc3fcb762201af2e18c02af5591c8ec53d8141f92f32ad713e480c5209eb625f771cc063a306ca067a1fe0ff0892f829bbb7986fdd4ac45dff99e0f3db5aa194d15488c77468077de29b0dfab61a7f96a2712"}, @NL80211_BAND_2GHZ={0xd1, 0x0, "d8f0260acabcfdd3ec1287cb645f6b3942600cc5550c0be195a0f7546682cd21b1cd2e515aaa7b984a4594ab9e2d5e41b3a12c52741d483714bda0d7e62e641df2bf08effc3561841e5a77314e39b427bea90b335803cedac13b2ff7ddf1113779fabeb00b8e6737c76e8b7a90c05340ef82350a94ebc88bef03d3ab58dfb186731ab93cbfbba34018fcc1dfbdf5c16939aa9ffd346105126885bbc1b7cb76ed5fb13c56277a198022488158f49386f0747d3572439a13426fc126059c09d7acdab2bb84edca1aacb6461d4282"}, @NL80211_BAND_5GHZ={0x85, 0x1, "ebaeef24d13ab32f79a604036bfc8516248115ec265f1f900a6504df1cd0b9b1a52384d5400f13585163fae725f69ff0b274005f08c41fadd19f5a74079cdaef8b131ff308ddd719c8bdb4051aaabaead6bff8d1e70b9e9c85547cb315784e1ca5d989f6fb63b619eb156a75c800d9044bb8810cda1cdc4951f4ac1aad28cdeeea"}, @NL80211_BAND_5GHZ={0x1004, 0x1, "92ba641b077b53315e7d100b0e25030d11694bc9966bcf005e025798b6d5d9f3a77d840bccfd9c163598600cb7e80bd46146d36e78de4e9da4d75a4ec538e198d8cd79a601622f362fd3f723a09beca7420d33ffc8bf6357292a84ba1458a56210d029150195ec1f9b3496041ec60f7cb1d782cddc1cae76f95af05114ee954bd6587e02d61da35abe5eb22c20c0fc366377d0f30c920c603c82eff026c16ac68df9bd8fa01f423646c1545314983cc675786b56dc7328a5f4827a6153371ce3b2a1fb776e598861fb8e41381665d4e41149355e1ba718baaa730541938d60919c71319a5cacb3878cd14ff3d70b43ef2e5f6b8d499f79e08566f3b1ec33ec814520e68179f39e4fd7b8a695b779882181f619d05549dc5ff7b38a1ceca4c5fb6177ec18eb4838fe52b9acd231001b6d9e46abe34c7f9fc868a9b6a943cca6abac4874388b6b9d568da00dbbd2e49259ca26072ecdbf0c3a6987d6c5fd61d61c9f20fe443642b9220835b8ecf2dcc731dca0917c56f117222930205f8f0dc9e2280ab63454503667b2b81594922cea562b944d3f6b0fc84358f3c0b83f8846b8f81b4246e06c4448b764fd0871480aeb1f818c447f149c78a98a5c6895835963cc11824302b625e42ae24c950d0a7d3a263595ab9f9f3e094daa7d66095119045eb84e38c9182c2fde2b89f268f3adf09c017510b72c66652db0562433e61f9b40915a53b33f3e6992f96652bab0539a52e57a5b8915ce8edaebd79a9e9450a1ea3fab1eeaff03c635b6ac5c03f8436180b6f39f2e639755a42b42a3ce94b63459b3b020ac4d58a413212bc28360a8f0fda0f48fe5b4388c4124859a316d9a25132e420eaa21f16ab77993e5eb016ee785eae995af064218245fcd6ec1cbcf6fae60ab5d7af2074dba8a3dd8489be12b29fc782f13a3eedb3f0c07dbcc73c5c324a53a4ea29a45f8174f1660532b2f88c52b1b0b0644c36d733c1e126116aa1abc49968eda6c3438ac3f8e7a2fa4ff0b3b4fdf5f60b02c1f3f1a346183a2555492a4376bc843fafd6700d79d2606877c7c2eab5bcbd67869b1cd1cafb4d3ba3aea5a90152ff963ac2782046abd70ad9514ace736c6dbe433eb0d5bba8ad794063b4d5ce8b41177ca1c1c23eeff727862eb1f9dc7c602b9ad3a3bf840e9638adfd3b251504ce2eb2427f31e1aaf1184e494c540f9bf252ddd0a06d317f56fe2ee10e3226d8284031044e8b93c14b98f1c1c2dfe97578680e81e42967f89b0fcd05f7203d4dde70595d1d132ff6edc396eb55944f8dc1abb70f7703381a4ef468d739e34049ab1f97b7c4cc8dac05fcd8fea2bd3080eaed5ae7fed1514c12948cfa8c36f514ec066cba32b2810ee284786ba4dc6ed80f28e5e69cc9f1e87f8872815f28334af9618dfd854aec68d6ef980e8e0e3a37b908752f128b817266cbe7f98bf748bc70f1f2fcdaed68ef7bebed9bc779e102acc720c3683ea99ed17d479a696f0e9edecbf0f1538a269c40711bb3bd1f9fc88f21bc5749a822d401977d61a3a5866dff33198d9c32d6133965426e048c3087db24718d57d185200ceadc576ee18f338fd8ec0d770598dc8490935d38a3eab835112defb1c8257d1645b795bc74ce9975b4db59eca9e9978cc127d8753123138743da9c01474009425119221657af04635becf922233b6e14cdf432e672d1ab8d23d3b9f01e7f9475b84e1be2c397d29ff188d2813d200153011ceb992581e5891d88b2a719aeadcbe97f5e766ab40df883f48e8a6a4e8b96924b0248e2197d79d7258ecdf307b3a53311d25232e853ec0889ea207880c4355f484aab3ca7bcf8b7d926bebc037a4a2d87b235305797c5f051e4cc5fe193eed220fc886f5509a1a0bfe294999260c195ca45f733cc14082f083c54c38a833c896f305c595233c585ce365f673e134eed13e81715ef302e05e6e9ad9e8d6c2ad63c2715d25decf1d317acd322ae3645c4f44833073f2bdfb1b2efa1e0b82ca4ac74799f88f12ec510888f1970a87fd02abe530d8a35e132499649ddf2e2412180aa557625f39157312c8d6653a2925c43aef2650d5b09ebce38123593dfbb3d677a00ebdc49104a9e737cfbe925cb112017140bc6736065e26a95c5d7009c7152c4d4f2b5e885a9af937b91c2749d700f6974e5992bb48d118eea5b4b9f0da07e21c49f92b3d34136f088cb71c4a368b249d481a05193b355620bd94fcaf60ec2992c9e940866b0abe6eebece38612c61538014cbba5e7b3f9e453d70f2794059a45844317b852c7d5e1ab7e635e15f2472eb27a505d335c8829913c846b9ff3c88db5208188c074ed94f18573d6ed97270a59624713ca8f2c46b26f9cefeb76188b157c2cfbe5d8c090c97c4b4b9b4221e181f15f6e051de9e24c1ef93e1e51298c2ef3e120105b3d6ee2b5322ff3bfdd809470569737a433ea392ff303722efa0d7a64fc5801b19bdf9ea6b10e600e4fd2685aa65bec515f86016d580b29c39088c452ed9fab4407e7bdd15d042ed8a74eb2c91ba5be186a8b5aecd20995b74325ff7c744b8e850cb8ef8cae014b5ee8a1488276543c4ca1971b5eb8327a4759de2fa0385eaa14c18191587ed86ef7e210f8752a1f0eaa53a7148fd49def36773ac622e39343590ce6c384524a7ac623c068b2c95579db6677e8338aa6b40a76f2e27df51fe8b1eef4155274290d786febe0bb99fde8c693395af09fb2c410a7ef914fb3e22dd68e55904b95a809481a78ff523e6d7ed55c85dc01257f13323526a617159cc762004fd8bf002e2cef90abfd8ce7e3016fc9d848cb8bf5dd56824fddb94e25b5681e001d64125760c1737d3ded57ba531de095fea9297c592755e9cbf76c92adf5d9501e0cf5550ed5a9c16068b101c344a8a4c6ecf56f1c397dffb011033119d0e140f19415f8cdcfa66a75d42c1308720730122c8761d7c3fff75e0d147bfd24837055aebb69457cb8999a96d73fbcd0be1dde026145ee9a44313c57fd84ba08e10dc33bd8ac9de6cec69459de2b645b47b19b7d752d525de26dba94f0fd69e8e3f22f057ec031d9a7be0de79631553fd2ac881101d415370a38d420410408a6347e263d76b278d949a83b4cf49a9627bae22d9f722aaea38d9ebb170b903453b607033f603a715b60e8a0f77449f84f8b928b5d2aa021f57c46cb7f15a758ee04bb5dbba1798c0461dbb125cd19b5e1afd070b953fecd784d89fa6ae93c9314ada9124af5c5be7a08d7da2b6672b096d7266e174b14a73861d7b44188c15c00b38b5af81be82ffab9117007a93bd54cbb1a6fe4988826c8dd21cf722d2ec4a351a5d6c33be87027966851056901cc5caa85deadbae42dd5047dec88368283c3b77bef3c06901d96e8f7fb58fdbb9d24933bfa95456e63e10bcd4208a46cb07114373e497ec18c3bfe2af031e82c4a0b7fff50e737f9088ab7d75f4545404517c0630407ea6fccf74803adfe3f50ae5c4d490efadb65e9f0140fcb1fe037f4a20d7e6680eaedf0d264f651856c846b9acb9f3b8ee61444e84e426596175dfae643a1e50086381890e05d01647cfd6deb285eabfd6d668933f4f32b6407faef43373f1c06615c46e7f04ddb38d76811ef9989ab38c909f7f4a1afeef0c72dd4b1e6b0e56f45780337e35f639b258a3026d9fb57e5edf83fb24997cbbe2c5ea3f34dd87e823cf84a9a461b0e262c814ba4394f4fff3f950fc510615fbe9716f6a6adc992d303c8b9d69764e59d89fac72c677e68e4ab23c99b969909fe89168c7f6485d00f8d123e0a4b81a16f1cacdeb7a22664c6aa56848b325d3804ace650ce7bd5ae0c507c75c024516e3685011104349f66664cd80a1129845bab83fa5890691085e7a7784cb7b6a969aa4a44933c53a8fbdcad3c4ad23f1e8b4183d66c4f8cfaa4b94f17edeca75b2afbc76c9dcc92ccb2e6d49c6f22c9b57d436885a4a26a4e9b22afe63fd3dc303f1fff9e22a92665df8f301000d486ac64e6c90cbbc8f69dc90b723b6457dc41a66339c07d6044720e100f676d807daede78437d7934e136b6f95f7afda18dfabc99d8e24053c4be91d181097097234086f863bf95f84e4b9944c4fe0f189deb8dc63148adcecc1be0dee7aa001bad4ba56e5fe6fb7ab8c17783cddb1d83ad06a0b3395f634899d4696998b4db1b2b1af3ce9ee050305d78e99fae1a7d1af38463a1057843fb54598368f07d52793e11daa5b909c5c87f24db6cf66a6ff30824dc5867211feccc64a6ca550b595784f9b10d17fbb6a77392f17a9d3a7749fd2f4f736dcee1eb4fdde1dbb257a2a5c307a16f3c0d835d3097d39d56a094b72677b4bd9417e2f1eb7849768899d654e2a84f1f57f3402f278de5c97c20e264cbd731d16b35a78767322caf20b723b29a41d7bdc134a6c0012972954827f84dde7f125b76b069a1928d34245fe9adf194b85fc493c7267792e1c4f32dc7f160e4ff795e6075af2f82f984624dbcf2b0c78cdb54f306f9937eb28a2656ebe2e37a11e7cbf9900cd4750fa7657c0d8d661a78c5cd11dd53b1201856a561e24e21373a412050e985897fac782935bde08e7c5342fbb8fc1ff0c4e72d8631aa54e9dd24af649f80352c47e708878fc005058c1223666ef4a083719d7434dd9315a4d82669cebaf6b358ced7589cd022c6a9a63533fb59be9d5dc1fdea32572718c7f7323e26714d11b8fd96fd1f7661b1bd3c822337b8eca74b02715ff0efd4508dfd4c529a64ea3094d823699305c6f221835618b5a7d78534810beb7bc70da3cb0ec43d9f2a5e01398db4104631b84ac2025bc27be01a52d4f02eafe40b9fbc8a21d4d85e62b5714cdc7170f5032d9c780d48e6436a1c3da5cd4b05f69eb213cff26def151470673d058dc29a8dc36c609258892b4872c4ed0b2c0806df79ae1b61d7119daf5230176fb2e9d7afd2797161bd32a4e0e5e2d3d419f03d2844d67e790919744365caec0ca5c5153131c5013583920f4a9bfaeeeebf6bd662ad43b20b2dc55cc5d13c3a58db060ce8b8af40bfccf407ae0a2610d1b87706b74e3dba2d09d739749cb9f1b74466dab0aaa156d9d1d7f730361691dcd803f389e554bae118db8a59d7d974afa83cb5fb482cd587af596a951b92a326ca9e06cd7c10f051d3ca858489c3d41163e79ed269b367d2af3479adaebc31d0605166e6c5707139b6195692c20c3e4c39a5377de1f39f3371f42f52a3e599d9c23aed15e592684f3f19517812a3a4d8f9fb25aec265ae10ca2bb049bb31686777220bc186114adfa4b400dcb213577b3f5068ef8d6a42d4c09ca564d6c9c3f934a5179fa1335e70db1b93198f1564cd587c3ef91bf59d0a555e0d7a3df8499e97cb1c00131540121d4e8b9f577070fd9624e7e3f0135e2bd0fbd73a18835c52af8068ee37d9e67b01ed45f03493a5bc4ae2acc498dcba0d70048f35948d7ed9e4ca978504937e7a8836777765635e79e56093b48feae1cc047f497ef95b4b1124dd194811ed04fbf07d14604874617b7e666f289426b72585ce244421e784d2fb963fc6eb31aa9910d6a5c7be67b9c8cd80c7c79883acf35ceed1433a0e0eb0ac2a940cce6ff1eb860b591a8237bdbc425640b4080715be67f4c128fe4624b0c375c233528d73734e69550e4af4be1d77be54c40b4814a6a21f951a2e8603862a245b07ab188c17ac1fff5bd522a6346a29a9453c1940a7561e86af5735e2b0d24f1af00deae70bf96a737ee17bfed6613159df6d74a7999c4897fd63457b9c069d0460920b75353d"}, @NL80211_BAND_6GHZ={0xf6, 0x3, "0e3b87303a68a83ba4ada6cd2ad30868bead880af19a1655c327e448f4ff8099239ff9fcc94b06c8020d9880127253511de4bcc240f841f50f9261441bba33b3261830c6d2f752add1f0f72c1f86594619f2841ebd664e54c1fcbe43c1fe139ec838d646e967410b7b710706dbdd504492cbc10aac1c5264c5cee747a81daebeb7ec6126dd38a3f7a145f0a074ad265d885b4924bdc4f858e889ed794bebd258889762482ce6ba5f23a7c81603ca7cc51e6edea41a347c81cabff9b258276dd33d2b62a13dfb4b4bfd0bdc72a2416ffc696f573f8fd8a4687fc1a7979853fb0ddcacf7fedc55bcfab136aab42eaf4ae275f8"}, @NL80211_BAND_5GHZ={0x57, 0x1, "4c4d9d244a11bbc0bbed6e8c92cbd5df36d2e3d281f32e2a27b45326d16dc61917c041c05c4038d5c13beb8125e63720aa22345e85ed481f30efbbfa10de8b18e5519937d882e251e841cc9fb253566dc50a6a"}, @NL80211_BAND_6GHZ={0x1004, 0x3, "a7801efdacdecdafbe35e860b32c1591fb9f49b699205cc4c68bf4d84e7ced8293d05c4b7ce5bc94b1e87f6c3e3bca29f25e769997fd1f69441865410368c0e29406a937cb3c9ee71e5950e9e90ea2dbeeca72b8e37b1eddb7ad319a326fa5541ed628335e905470f94d8fd56a8444929f36a63d9de070deb9903dec66351d7f67c06e6faded36d10864f7f5d9ff2c3fbfb00c4796ee63d07383d096df78acd0526f2a5169c82f491b8bb9ff236e6759344d31fe28055ef66ce2b853d11541ebdf497638aa57ec8c55d13ea8a49a6394505e9963ebad6d703646f0179122e8a81155db8f0fce421a1595b34000eb1f8161499b67848624b52ee8969b1dfe7f5885462d32bec98caa33b593078d9126c1e9d8bb86a6e7827b558b5fbb691bebc3190590e3cdefe483a80e80f459e7a08c7b8f99a75144e8c92c32fbf2c09059afe6b59e6edb8c0db2cb89342075b68fd9135bd8a189790e8ede4b79d7422f2794600d87d806383c1a9cfb6f2faed038de2b65c08f75690cc57800296d26ae171054a9e3c29002a63ec501385a9a25ed0ae08e9ea613a48e7bc2a9d9a51b37878788e46dd040efd6ecbdeccebb68370043329a9b100bc9ebd711328f847be88dd637d867657ba9d01df01e3adfc1a4526d4d81877183f655f869c7748017a003d2ec90ed7107542c2f17cedf44139eff959f1031304b0a8079c5cac4628ae26118ee54298c1fd7d271525233a856deb96cc711d8f8079eff5e8e05368736b8b9db1510aa284dbfff42bc15e8a0f33edd26ae9b2b761bee9a06b807946d3d78179047769f78326a2a3962630b7ed411789a7b8668f2c44952171c67e7d338fb1937593158857f5728ccc3c6ac2c0458c12334aac321f862fc02a690d3bdac9b53ccae87b03c7431fdbdaef76c67a9f0d8096fca427ac0af6beb572b433bc35b0882118ac569e2b18cacd51392c2b4bd137651fb9c514c5ecc8e9aef87012b0e8b1f1a5acdfaa15f39e525a008fa09c07a2c0ddd160446eb8889ae2d0aa115df23ba2dbbf0355eb9c75d5c61bd4e7f43e0c383f8d8845f6a24a0b2e764bfbcbf6f5104ca619bf97b539b047fc9e7d0f13c95651f5251917ece3e540aa604bd98c999b63d4a8250f32a5430ccaddb21994c0939ae7395d6bb2f3589ad2c7ac2dce6ee7c8a2b3b455e08b09c6b4794595cfa79dae3dd24fe561f5822f9fe297c546afde0a8b826bb51f385ccb06f74655ebd030f14b8fe6c02d27d5823811547f01bda29c48d9111dce6a41126842ca54d27cf5c482e01815dfb29f0a9e92cf8029fbebf0e381e07cd6137748b4cb8f253341bdde92c4fe3f13f6af84eead5f2dc527383d9d4a3898879698a091f35d264ecb684daea4263ad25b1e54e0d2ea920d1cfd5f09fa606ec2a4e8be688a5c702e90448cc6103d9ec3589073606d98506ca68a7f1c818733657e28d80a3cdf6bc03a2eca0db6c65e55365ce940345cf5dc8736ecc84cefb629cbe5c8eea67a81005161a3eafce78a5eb941ca54cc47b256c399a26207be902ea470369f14019c27186feadbb7745c5d7ce7a60ced177ba74e8cd036ffdfbd1c872ab55a2540736c0310fb9a1bfc4bbb0818b0337a52d1e39d214b93d05be6b458e9341c375532516ca76543ba97face39eaca593c1a5bddd6f45fcc0616bac965e8cfb28be3e709c1a442701fd675ae47e9f5b5e84b30c8b8e4d356faca60bbd0331a47aef2eb3ff861d47fbcc06868b1ff95ec7ccd025309b3e34175f74616bd3a952b6b71f81294099186b605572d78179ce224c00cf85fa8f0e3644b565990a9c9af8bb96997c1c644443157740c5f1d21582cfdb81db1efdb99a7ccc9eca7805d78e0c064989d55084d0cbba84ec4aec6630ff46ccca33d20b730d88400348f5d9f4cc075be9ef3172aa80e50ea39c2f6728adff891475516049b4f29961dc4d43479ec3b350d9082055017bca0f1c7d515a5fecd1cf776e5a3bf2b3ef0fe14e38de593e79287281884f13c1eea1cf3bc0bb86513a149254a18f8008885c7f0af33aec1ea036b7522220bfb88b05b9588a25a512a86e7dc3fd4dbd4e5bdfb12e0ed0c4e271109aa30534dbae79891626b3b9c2df498e284babd80ca9ec2a9d467e8b6c19f8f48ce36d3698bc708a5b7d937faeb9be40e84fd237732db7a94c0dc58615a034eb62e4bb5e1935f4d09259876feb97e90cfff538e8cc9df0a94ffbf24a5433c73860f9e7fcfe29f150b0c61305372cd7185fc6f02ad6b7e4d27731750bf7022fd113ff330e4dfabdca0b7efcb27ad2d2c491e0fa8a1db73cf1311dd3341f6a032b00152cccae9a46fe2f71508916fc8b26bea68dee506418896caa68b8026ff2e8e9b51d28b4989f842c869bfd5a7fabb2c299a2033916ac36a4382c00d449c2c112400f18d545df56d7e0d8c5b1a7938904bbc2201c9080feb00ffadf2ddbd3da7d3665bd1278fedd6bb566b4fde21c432454e00bf347f4071c57ea280de7f613047d865557b88d8bd742da403129f6673988a4cea24553ce1757a651bd1e55d9851050cf9ecd123648a86c4a3a222bc3389853670524f3f80236d3769e9e96702a46f005ee532910a3aec2be1b79636376941046715f95c5f9027cca25b95618b278315180488f664b4553c20cc6872a60223578c4b394c867a577b849134eee29d5230f025d7d2ec446a0a20fa0452129bab0a8984d64be0407ff5d8f60866177437658a8d5506276d3da67fecf3a25baf4282bb0f59ce77a067a6704b6689ae4344322e948b949660b61da005d5d3812738ac40b6fa7bca31a27778964f76c912410c49ce6a09c7c02695accfeab4b48d77257700187e02ca393c0f3770a8ec5ada4f3cde1e8c343dc12707948fb8967a50d065ddf150c96cb7cc75fd160aeba5ca863862d4a0c26a27d4b64668dd39d825e0d1efaadc4655778302cab32c6663ecd2f157ead0a1eb5ef9556e72dbfbbd61ffdafdb7ec65621392ed7146eef46e3caa903e1eaf0438d812b83e3fa3f6784afa57f38f2db7311cc696241b2e90e1b804eadb8832621ef15624f331f4ee361bef0adf207cd29b691f4d5d7d9a61a11b7aed28a9d1585170c378a6679e627686e4d0f8da7c793ebdfd2692ea04d25ee0376266ec0a76676b9f53ad77bf97bdebf61da2639ea66393f804403895d4d3e3f385e516ed72df4a43e74158bb6131e136128b46f0d47e4ba6bc9bee79400660027ef0f85b466c7a1ee3f9e2acc2767b1dd0979188dfc6fdde7b93c090ec977bde34c3d36ecec6e902e6ef25a64697c7dc4f4062cfa1b2181aa2637400b0a023f70851dd71879cb0c761248ef571b4649c0770a86ca6108defd7d4cfb313c412b76b63c66550930626a58ce7ba778ebb26cee56af0148e9df3f49d9bd7f4fb7544e72926e3b83e05b068b8e04ea8262828673a1b0865df566b301e5a44a95d467ac43d702aa7beb75ad6d393a4f3a2b58280e674f971702e232f1e07e2c5e59baef969ef4f30ce7adeb98f15801705b66c729bb36274cdd2e030889c5a4cf9fedc1bf5754fd3106dc4f218a25b317fee7d885c31072de2d52339ffa7603fa8976bc367816e6e0214cb93b03e4a2892992b01d8bf7ffbbe12fa5a4a8390e016b8a9a25c3c27e985d4add4417741c81533bc852f3f9d90714e61a93665feb897a4119ab94a3a8fc847b4da9d18289e37c59b0720dfd03bc0c8cffee1dd7b504bf3a16a260cdc9a67479584578d563d649488856cb48fd2086f7c13bb87d3604214f389a3863d6a3c53443a6d7ad5a02adc472481f56d392fc1088b2be546a284f91980421abcf3c4d8bbc9b2ea55f20b4d11688c29e59ccb41a4cc1dc29813305d45c09f8589324992d6615eb20e6b00dfe3927887a6805d950102d4ada671cf0aa1480ade2581762407e3728d7a8068d909bb4c6247eb4c2fbb127fa3040c4ceadba6323d8968aeb65dc9a19e09d6c68d7864add3faad1bff3b5e8dc510a918d9fb91edd325e7674d76a7d1fa1b4ecc1cd64c05fad28b8d8de8ee0ce74c25ac18c9a1ac0ca27ceab535a2f1f1d720a9cdb69ce1ba1ea8db7f0450c906683efe3a448c0f8c164cb5dfbcc9d18eaff1cb59d448fbbedc939835b33954f879fda942c94c58cb8356cb1b466b3951de7b281e6433fc7337ff8256f5b7be6e2b75c421e4a901f38cf9f9e7222d1a2166fb1721009a28beb0dd81a4a08089660e1a14b2a8752ef17a7892e1e721b3d84a16ce572c3b2b9faa17c04d87740d36b709d055b70cb96c3fd4860dfdc9e31355dca9f771db531333f4d7d164264db726c7d6d3ad472b7719f69296f69eb614a6a6b1df7bb22b3bbf0986d1d56bd19453ff626576d253ed14c917fab8ca641ddc165f755c87455057f3ca578dff342c47154da838cbc155ddf2f9428001806818cc04299125d2a32a85521dff355a62217fc805912e1e401820cd9712c49f132f0ad8293c1d3b7f87d46fb039f74d626eb6ba750c207513986278361a04a096b08f3165d7f88bf66bf4a52cb47cc1281a661f39b91d8e2702f047373182dfe70c534b6f390578d23f4dc2c9e6040a8571b2feb89b3697054928152739081def9362bead481539bec372d81ef592a997388c2bc1e0dfb16909d67b1477e4eed2e6e1d6277a390216956f958e9929bf29c5ead5c387c3e61016f8cd839b171093b93204e84c29610103d538476314514e37e70407901b37b46e089c6d33342defff64cf55f7ef69fa6d625e18fd9d781a9fab20f0cd57556ad1ce27c24af07caebcafee4753753e09311a12a464ffa4846465b6dfdfd3636c0bd93bafe790c36448f7fd307a3f0218ed342008f5a089afbc37d4c3bb29e06156ff11d6580bf158b13ad380c1121b57af25e0611426ebfcbc6c97fb0773f53e7346b9eadfb67ea848b433d5d69ad7acdfde7f4b87fa994815fa8d8ffb38919f2ee52d7f83b792aa874d1cc2f196e573a8d16dd8508df087dd4cb587e9a0d0bd158e8e2e7a3ef4780260aa8ff5dd42e9588c2d70dc26531a58ab13cac08c3c8f109f56c7bba34b1624dd0be65db072a6ed98ad6e14247d1eadcdf4bd5d6b1adb89a6b71f6926ec9b55064e2032cbbae1cc3e4623e1306ad4e9cfba8652b15b99dee3705be2d0a0ddf739a292cc207a996fa99f8bf888a7a36683839b9e8efc480fd3b119331b145b3b16352281fb0f126592ab011bb9251753bb6d7412ce1c16e1f52ee8d369be65c61bbd215b007a386521569fc58c28486e0ed30c5c8267f94aa8687062948ef4b8c0863920ea272fb3d564a9103a18a01810c9c4f3f4eaefdd9d759210171dc842ee23c9ad36b819638ea55776c129f15131b218f376ba8dd6211777dd0124b1170eb28d7075a73cb1baab42ab4b670eee11aa63ad840445e99fc36ef3bc1d5f6d941a4cc0496e6bdcd3593cdbb638ccc92395a71ce4c5bbcef2cfd676220410815c7b3cc29719de5e61b5bcb202be151780c82efff424b4b83742be08d01341c6cff734cf64c7e10964620985920a76b8ccfd2a56b23081822d3d3a93191c60d57b6bcfc4ff80002d381b142d94595c423f2dd53dc9af6d1af1ffde4539a9148c230165537cc88979401e1c764b844e00f70c8a88b07b5c068cf39190422ad4e85c5636719a9ba9035d5cdd601728e35a7f90560c84463308ff754c49d39e519815413403f61dc813fd966b3299c6ca0027b1eef39d981f088564fd637829eb2c24b2832b1ece69a3c6823b9eb90dd11dbf09ba0175a42a837ba58af919e3bfc311e"}]}, @NL80211_ATTR_TX_NO_CCK_RATE={0x4}]}, @NL80211_WOWLAN_TRIG_MAGIC_PKT={0x4}]}]}, 0x9b00}, 0x1, 0x0, 0x0, 0x40090}, 0x20000000) pwritev(r2, 0x0, 0x0, 0x81805, 0x0) ioctl$LOOP_CHANGE_FD(r0, 0x4c00, r2) preadv(0xffffffffffffffff, &(0x7f0000000400)=[{&(0x7f0000000580)=""/152, 0x98}, {&(0x7f00000003c0)=""/1, 0x1}], 0x2, 0x0, 0x0) r8 = socket$netlink(0x10, 0x3, 0x4) writev(r8, &(0x7f0000000000)=[{&(0x7f0000000200)="4800000014001908000000000000005902880004ff010001000000000428213ee20600d47f5bfd7500c7e5ed5e00000000000000000000eaf60d7a9eace3dbe8b12c000000000000", 0x48}], 0x1) 16:42:07 executing program 5: openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000000c0)='memory.events\x00', 0x26e1, 0x0) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000240)='cgroup.controllers\x00', 0x26e1, 0x0) r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000080)='cgroup.controllers\x00', 0x7a05, 0x1700) write$cgroup_int(r0, &(0x7f0000000200), 0x43400) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000100)='memory.events\x00', 0x100002, 0x0) fsetxattr$trusted_overlay_upper(0xffffffffffffffff, 0x0, &(0x7f0000000600)=ANY=[@ANYBLOB="00fb13001fa19de581f253cc1a19479210707f5b06260585f8128183797498a34d8f2c456949d354b9e23b5c19b67aecdbfc3e957b6a5922d9626e1e7eb288ec766d8f70e4389a901039deb8d7a090753436b49a3f677ca29808468d52"], 0x113, 0x1) open(&(0x7f0000000000)='./file0\x00', 0x240, 0x0) write$cgroup_subtree(r1, &(0x7f0000000300)=ANY=[], 0x32600) ioctl$PERF_EVENT_IOC_PERIOD(r1, 0xc028660f, &(0x7f00000005c0)=0x400000000) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000140)='memory.events\x00', 0x7a05, 0x1700) write$cgroup_int(r1, &(0x7f0000000040), 0x43) r3 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000180)='cgroup.controllers\x00', 0x100002, 0x0) perf_event_open(&(0x7f0000000440)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c29, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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$PERF_EVENT_IOC_PERIOD(r3, 0xc028660f, &(0x7f00000005c0)=0x3fffffffe) ioctl$PTP_PIN_GETFUNC2(r2, 0xc0603d0f, &(0x7f0000000280)={'\x00', 0x3, 0x2, 0xff}) 16:42:07 executing program 0: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r1, &(0x7f0000000080)=""/196, 0xc4) getdents64(r1, 0x0, 0x0) getpeername$packet(0xffffffffffffffff, &(0x7f0000000740)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000007c0)=0x14) sendmsg$nl_route_sched(r1, &(0x7f0000000940)={&(0x7f0000000700)={0x10, 0x0, 0x0, 0x1000}, 0xc, &(0x7f0000000900)={&(0x7f0000000800)=@newqdisc={0x9c, 0x24, 0x300, 0x70bd2a, 0x25dfdbfd, {0x0, 0x0, 0x0, r2, {0xfff1, 0x5}, {0x0, 0xfff1}, {0xfff1, 0x10}}, [@TCA_RATE={0x6, 0x5, {0x9, 0xba}}, @qdisc_kind_options=@q_taprio={{0xb}, {0x18, 0x2, [@TCA_TAPRIO_ATTR_FLAGS={0x8, 0xa, 0x20}, @TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME={0xc, 0x8, 0x2}]}}, @qdisc_kind_options=@q_hhf={{0x8}, {0x3c, 0x2, [@TCA_HHF_NON_HH_WEIGHT={0x8, 0x7, 0x52b3b1f8}, @TCA_HHF_HH_FLOWS_LIMIT={0x8, 0x3, 0x1}, @TCA_HHF_NON_HH_WEIGHT={0x8, 0x7, 0x40}, @TCA_HHF_RESET_TIMEOUT={0x8, 0x4, 0x2f84}, @TCA_HHF_ADMIT_BYTES={0x8, 0x5, 0x8}, @TCA_HHF_RESET_TIMEOUT={0x8, 0x4, 0x65b}, @TCA_HHF_ADMIT_BYTES={0x8, 0x5, 0xaff7}]}}, @TCA_EGRESS_BLOCK={0x8, 0xe, 0xefc}]}, 0x9c}, 0x1, 0x0, 0x0, 0x4000000}, 0x0) r3 = socket$netlink(0x10, 0x3, 0x0) r4 = socket$netlink(0x10, 0x3, 0x0) r5 = socket(0x10, 0x803, 0x0) sendmsg$nl_route(r0, &(0x7f00000001c0)={&(0x7f0000000080)={0x10, 0x0, 0x0, 0x2}, 0xc, &(0x7f0000000180)={&(0x7f00000000c0)=ANY=[@ANYBLOB="40000000200008ff0f00000000000025020080092000000a040001000c000c400000000000000008080002007f00000108000100ac1414aa08000200ffffffff"], 0x40}, 0x1, 0x0, 0x0, 0x8805}, 0x20004100) sendmsg$nl_route(r5, &(0x7f0000004200)={0x0, 0x0, &(0x7f00000041c0)={0x0}}, 0x0) getsockname$packet(r5, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)=0x14) sendmsg$nl_route(r4, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000000)={&(0x7f00000008c0)=ANY=[@ANYBLOB="480000001000050700"/20, @ANYRES32=r6, @ANYBLOB="0000000000000000280012000c00010076657468"], 0x48}}, 0x0) sendmsg$TIPC_NL_MEDIA_GET(r5, &(0x7f0000000580)={&(0x7f00000003c0)={0x10, 0x0, 0x0, 0x80000000}, 0xc, &(0x7f0000000500)={&(0x7f0000000400)={0xc4, 0x0, 0x400, 0x70bd25, 0x25dfdbfb, {}, [@TIPC_NLA_BEARER={0x4}, @TIPC_NLA_PUBL={0x1c, 0x3, 0x0, 0x1, [@TIPC_NLA_PUBL_TYPE={0x8, 0x1, 0x4}, @TIPC_NLA_PUBL_TYPE={0x8, 0x1, 0xe5d}, @TIPC_NLA_PUBL_TYPE={0x8, 0x1, 0x40}]}, @TIPC_NLA_MEDIA={0x90, 0x5, 0x0, 0x1, [@TIPC_NLA_MEDIA_PROP={0xc, 0x2, 0x0, 0x1, [@TIPC_NLA_PROP_MTU={0x8}]}, @TIPC_NLA_MEDIA_PROP={0x14, 0x2, 0x0, 0x1, [@TIPC_NLA_PROP_PRIO={0x8, 0x1, 0x4}, @TIPC_NLA_PROP_WIN={0x8, 0x3, 0x4}]}, @TIPC_NLA_MEDIA_NAME={0x8, 0x1, 'eth\x00'}, @TIPC_NLA_MEDIA_NAME={0x8, 0x1, 'eth\x00'}, @TIPC_NLA_MEDIA_PROP={0x44, 0x2, 0x0, 0x1, [@TIPC_NLA_PROP_MTU={0x8, 0x4, 0xfffffeff}, @TIPC_NLA_PROP_PRIO={0x8, 0x1, 0x7}, @TIPC_NLA_PROP_MTU={0x8, 0x4, 0x3209}, @TIPC_NLA_PROP_PRIO={0x8, 0x1, 0xf}, @TIPC_NLA_PROP_TOL={0x8, 0x2, 0x7fff}, @TIPC_NLA_PROP_PRIO={0x8, 0x1, 0x12}, @TIPC_NLA_PROP_TOL={0x8, 0x2, 0x20}, @TIPC_NLA_PROP_MTU={0x8, 0x4, 0x800}]}, @TIPC_NLA_MEDIA_NAME={0x7, 0x1, 'ib\x00'}, @TIPC_NLA_MEDIA_NAME={0x8, 0x1, 'eth\x00'}, @TIPC_NLA_MEDIA_NAME={0x8, 0x1, 'udp\x00'}]}]}, 0xc4}, 0x1, 0x0, 0x0, 0x90}, 0x20044000) sendmsg$NFT_MSG_GETOBJ(r4, &(0x7f00000006c0)={&(0x7f00000005c0)={0x10, 0x0, 0x0, 0x80000}, 0xc, &(0x7f0000000680)={&(0x7f0000000600)={0x78, 0x13, 0xa, 0x401, 0x0, 0x0, {0x1, 0x0, 0x6}, [@NFTA_OBJ_TYPE={0x8, 0x3, 0x1, 0x0, 0x2}, @NFTA_OBJ_TABLE={0x9, 0x1, 'syz0\x00'}, @NFTA_OBJ_HANDLE={0xc, 0x6, 0x1, 0x0, 0x1}, @NFTA_OBJ_NAME={0x9, 0x2, 'syz2\x00'}, @NFTA_OBJ_TYPE={0x8, 0x3, 0x1, 0x0, 0x8}, @NFTA_OBJ_NAME={0x9, 0x2, 'syz0\x00'}, @NFTA_OBJ_NAME={0x9, 0x2, 'syz0\x00'}, @NFTA_OBJ_HANDLE={0xc, 0x6, 0x1, 0x0, 0x5}, @NFTA_OBJ_HANDLE={0xc, 0x6, 0x1, 0x0, 0x3}]}, 0x78}, 0x1, 0x0, 0x0, 0x4000}, 0x4000000) sendmsg$NBD_CMD_RECONFIGURE(0xffffffffffffffff, &(0x7f0000000380)={&(0x7f0000000240)={0x10, 0x0, 0x0, 0x10}, 0xc, &(0x7f0000000340)={&(0x7f00000002c0)={0x38, 0x0, 0x1a, 0x70bd2a, 0x25dfdbfc, {}, [@NBD_ATTR_BLOCK_SIZE_BYTES={0xc}, @NBD_ATTR_CLIENT_FLAGS={0xc, 0x6, 0x2}, @NBD_ATTR_SIZE_BYTES={0xc, 0x2, 0xfffffffffffffc00}]}, 0x38}, 0x1, 0x0, 0x0, 0x44000}, 0x4000000) sendmsg$nl_route_sched(r3, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000300)=@newqdisc={0x38, 0x24, 0xf1d, 0x0, 0x0, {0x0, 0x0, 0x0, r6, {}, {0xfff1, 0xffff}}, [@qdisc_kind_options=@q_fq_codel={{0xd}, {0x4}}]}, 0x38}}, 0x0) sendmsg$nl_route_sched(r0, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000540)=@delchain={0x24, 0x2a, 0x1, 0x0, 0x0, {0x0, 0x0, 0x0, r6, {0xd}, {0x0, 0xffff}}}, 0x24}}, 0x0) 16:42:08 executing program 3: r0 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r0, &(0x7f0000000080)=""/196, 0xc4) getdents64(r0, 0x0, 0x0) ioctl$SIOCGSTAMP(r0, 0x8906, &(0x7f0000000040)) socketpair$tipc(0x1e, 0x2, 0x0, &(0x7f0000000180)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$TUNSETLINK(r1, 0x8912, 0x400308) bpf$PROG_LOAD(0x5, &(0x7f0000000440)={0x15, 0x6, &(0x7f0000000000)=ANY=[@ANYBLOB="b4000000000000007911080000008d0000000500000095000500000000009500a50500000000"], &(0x7f0000000080)='GPL\x00', 0x0, 0xf8, &(0x7f000000cf3d)=""/195, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x6, 0x0, 0x6, 0x10, 0x0}, 0x15) 16:42:08 executing program 1: preadv(0xffffffffffffffff, &(0x7f0000000280), 0x18, 0xd9f, 0x0) ioctl$LOOP_CHANGE_FD(0xffffffffffffffff, 0x4c06, 0xffffffffffffffff) r0 = perf_event_open(&(0x7f0000000100)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x0, 0x95d, 0x0, 0x1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x3) r1 = getpid() sched_setscheduler(r1, 0x5, &(0x7f0000000380)) ioctl$PERF_EVENT_IOC_SET_FILTER(r0, 0x40082406, 0x0) r2 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) r3 = openat$cachefiles(0xffffffffffffff9c, &(0x7f0000001a80), 0x43, 0x0) ioctl$KVM_CREATE_VM(r3, 0xae01, 0x0) r4 = getpgid(r1) r5 = ioctl$KVM_CREATE_VM(r2, 0xae01, 0x0) syz_kvm_setup_cpu$x86(r5, 0xffffffffffffffff, &(0x7f0000fe7000/0x18000)=nil, &(0x7f00000023c0)=[@textreal={0x8, &(0x7f0000000200)="653e9a12000000baf80c66b87823128566efbafc0c66b8cd648fbe66ef660fe4710e66f320356632f066b892ee00000f23c80f21f866350c0070000f23f80fc77c0666b9800000c00f326635000400000f30baf80c66b8a663c88c66efbafc0cb80d00ef", 0x64}], 0x1, 0x20, 0x0, 0x0) ptrace$setopts(0x4200, r4, 0x1, 0x10000c) r6 = ioctl$KVM_CREATE_VCPU(r5, 0xae41, 0x0) syz_mount_image$ext4(&(0x7f0000000040)='ext3\x00', &(0x7f00000001c0)='./file0\x00', 0x0, 0x2, &(0x7f0000000300)=[{0x0, 0x0, 0x1}, {&(0x7f0000000980)="7cbd0a048e443f398bc5dcfc9c8ebdfa993550a67747e196f2231efb209be3afb972fe5c273b5bb817d889c2a9a5538dbcbd100d85bf2dd4d047531689e9e533fa6d057bf7af3c03a5d8c20268abd7c41aa8849dd2156f012e5bd4c136", 0x5d}], 0x100008, 0x0) ioctl$KVM_CREATE_VM(r2, 0xae01, 0x0) syz_kvm_setup_cpu$x86(0xffffffffffffffff, r6, &(0x7f0000fe8000/0x18000)=nil, &(0x7f00000000c0)=[@text64={0x40, 0x0}], 0x1, 0xfdfdffff, 0x0, 0x0) fork() ioctl$KVM_RUN(r6, 0xae80, 0x0) creat(0x0, 0x30) 16:42:08 executing program 5: r0 = socket$inet_udplite(0x2, 0x2, 0x88) r1 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x2800004, 0x12, r1, 0x0) r2 = fcntl$dupfd(r0, 0x0, r0) setsockopt$IPT_SO_SET_REPLACE(r2, 0x8001000000000000, 0x40, &(0x7f0000000680)=@raw={'raw\x00', 0x8, 0x3, 0x220, 0x1d0, 0x0, 0x148, 0x0, 0x0, 0x2f0, 0x2a8, 0x2a8, 0x2f0, 0x2a8, 0x3, 0x0, {[{{@uncond, 0x0, 0x70, 0xb8}, @unspec=@CT0={0x48, 'CT\x00', 0x0, {0x0, 0x0, 0x0, 0x0, 'pptp\x00'}}}, {{@uncond, 0x0, 0x70, 0xd0}, @common=@CLUSTERIP={0x60, 'CLUSTERIP\x00', 0x0, {0x0, @random="40439101dde1"}}}], {{'\x00', 0x0, 0x70, 0x98}, {0x28}}}}, 0x280) r3 = openat$hwrng(0xffffffffffffff9c, &(0x7f0000000040), 0x2205c0, 0x0) r4 = socket$isdn(0x22, 0x3, 0x24) ioctl$sock_kcm_SIOCKCMCLONE(r3, 0x89e2, &(0x7f0000000080)={r4}) 16:42:08 executing program 0: socket(0x11, 0x800000003, 0x0) r0 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000180)=ANY=[@ANYBLOB="380000200000000000000000001d000000000000", @ANYRES32, @ANYBLOB="00000000ffffffff0000000008000100706965000c0002000800020000000000"], 0x38}}, 0x0) 16:42:08 executing program 3: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = syz_init_net_socket$bt_hci(0x1f, 0x3, 0x1) setsockopt$sock_int(r1, 0x1, 0x29, &(0x7f0000000080), 0x4) recvmmsg(r1, &(0x7f0000000940)=[{{0x0, 0x0, 0x0}}], 0x1, 0x0, 0x0) bind$bt_hci(r1, &(0x7f00000000c0)={0x1f, 0xffffffffffffffff, 0x2}, 0x6) ioctl$FIONCLEX(r1, 0x5450) ioctl$FS_IOC_RESVSP(r0, 0x40305828, &(0x7f0000000040)={0x0, 0x0, 0x0, 0x8}) bpf$OBJ_PIN_MAP(0x6, &(0x7f0000000140)={&(0x7f0000000100)='./file0\x00', r0}, 0x10) r2 = socket(0x10, 0x2, 0x0) getsockopt$sock_cred(r2, 0x1, 0x11, &(0x7f0000caaffb)={0x0, 0x0, 0x0}, &(0x7f0000cab000)=0xc) setregid(0x0, 0x0) getdents64(0xffffffffffffffff, 0x0, 0x0) write$binfmt_elf64(0xffffffffffffffff, &(0x7f0000000e40)={{0x7f, 0x45, 0x4c, 0x46, 0x8, 0x0, 0x6, 0x2, 0xff, 0x2, 0x3e, 0x0, 0x2ca, 0x40, 0xe2, 0x1, 0x7, 0x38, 0x1, 0x1ff, 0x5, 0x100}, [{0x1, 0x4, 0x741, 0x1, 0x0, 0x9, 0x55, 0xdf}, {0x1, 0x3, 0x7, 0xca64, 0x3, 0x5, 0x5, 0xfffffffffffffffb}], "d2c227d9dd3ea381a316200bdf8b726cfdf87c11b494fd04dc4b6d58eff88748d30767fff6e2b124f349b41b93ea458cb464c96639fe7e64e97c9accdc8b5daaca7a3318010d2ab06cad7ad3fc345a545b0b7e081b3d73d9f335621975f16760b34fcc7b97c4578672fc2035174caade5959b145480aa6a398cf00270f4d78e70cc1568202d383fd44670370d9793ae981345ccdb8f9", ['\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00']}, 0xa46) syz_mount_image$msdos(&(0x7f00000000c0), &(0x7f00000001c0)='./file3\x00', 0x4, 0x2, &(0x7f00000003c0)=[{&(0x7f0000001cc0)="613249fd27c2b837d08a80c5ec199793f50d63d7e7e49cb1ec6b18c37b83df63f2135812d6193ec6ab458a29519d0835c632b034b81f23c9c4ab69566f086c1a6f8d2527940cec84a636c10e1b3ef76abd0bd66c8d3f7c3fe4387fb308995b840ddafe9b1a94a4859b63c1c30dada9daf8b0d7823456cd379897ce3cdec087dbcc203faa18f26f38fadcf5bd2db08572132a1a59e993fac252dfaf304ce350ec1c290115be41b9662186ebf22b62b4aabf07bfa2894d2b283664f011f211e00301a3d5ea6a1d01995b6b9458da61f7acf4964f1162aca68bf8977ad0954bf0fcaa68a1000f2e9fb6a961f62cfc4ba5e2266fe0c8b713a5ccdfa59f3df2b1c16d8899cf063111c98b956c706eeb34817c88e3a05bf67f1b4f9a61ff712ff214ec3a86a9dcaf3ebd20a23756d35776b11a7ac0bcc9f126c13be2b1c673a20543346e93dfbfc2fb12b266e85147dbfa71753b634ea813179b9369372f8902c4830ea8be3e1da9d2233e94ac3ec6da2e63e5d961699beb2584dcc07a3b1f7ad031953349e748a20c4a09075b5e5ecb54c8ad3d5ecc0aedb2217f515301836a5102d4a69f491d61fb3c83d992d67f6947e0ed8bd9f4471036a840b38c670af5b28bb4423ae3618671ac1c678a85952f611ec07dca357ba162c66f01ea2f56f49b978ea2c51fee7d4cce67fc93fffc2740f38820529258458561dab5593aa751b8e9519c72909369bc87a586378fbccb4fff2ae6c3c5fe0a412750c731ce2adfc957183e4dff9cd1f02f78a8ece46e79f123767852ffdbab5aa7a674d258da61cc0176d01c3928e8e40881dad01245eb2146803a00ea8ee6fc0b0e8e1bef24b4c1a1d2a88561766bcc4f6c1de9fd1ca29a58781c0c95260245830fa9ad6fba49ba9156f8327440b52aec2f224aa38dbc8306f7c7e37da068c6d50eb470b2cd66376e383a62866116d936c8b612621dc262bcbfe07c0bd75ddd3b20bb5946df18c4cceec889750fdbb5bc43a3754f75b89f8d83641abc17b753a845b435c76455b73ceae0bd744d6e119bc04cf6a85d07790dabb8bc1e0981770e2147acc44cdf772c10b12267509affec8261a04c660a0663a9595c1419e094e5be09764881ceab5301cdbbad301c0bda83bc5b8aa88bd7754baf8d5f6249787b270f22bc79b969edcdde19520e094b1150076afe552606af27e6b0e4f03b8eb1e726790d04f6ad8ecf1a0a061ca0af88a17bff8adb59363e29b549e158f5861be9ce1c5a2c0eb78693ffc5e84564bf6625460080c731fbd40b16b4fb65667666cfe0e8be469200b8748aa7a3409c7a783cf705b88dc8d7acaa9b890b9979b16ca000e59b64e14571657e1e99b4a9801cd0cdfa1f200d7ca9a650312560355f927cbedf94ca45e934c0cc4c625f23015cafa1129492b81d647949adc761ff9090ec134e7a13af094eb44a02da8005befbe8b31d2c2d94c065b8eaa5697887423f9f0fc8ab411995baa5e33cbd9b8a8db14c498f0b78e2ec6cd1cb03374f92e27bdb6decb27e4323651710ce7cdcae17df77bb0f1ee3baadf10e1f717198946b26c7aa4212500d10584b9a76444eadc333371fb536d853f6d77492df09115dc7004fd249296aa4b14e7c77b5e5b34824ffc3d5b28bd31e312dfee5fea094a00b65dbf79fdbe2933271a4284fdde44a6ff7409ff22daa67d880f3747536893ca7890758e72a6d4f69aa542ffd007765c81e8a89fd013eff3abd8d7114449cfa2c8fc67d3db569da9ed2a2d8c472da8b218fb4c6616c514d4ce1fca44aecca25f910112053e0fac926569fdccf0fdd3b365946fe756b3c756bc92f3055d9385d40dfb641fafc45f260af2d425fb5452d4386e3145f3e64e0a6191fc0a05374ef33d3668211f4602f1fd74d8e4050a5602ea3c7d2154abaf851ce1dd42fd8fe54bd382624805bfe5be6bda33087c20c9780ee8768f6a91d5670b9b1a8ae8f24e392823dad67370484a7f7a5304010261d384abdab5cf1b54119fdfd0ad6172f2bc34c0ee6912c443d0bff0c18380caadfb25b6d46f6f502e9435a58550d401972fc571ebaadf72457f6a79afd7b91d639c4480406e2c284a38e93609e1155f5fe81b1eca7e42a10f585cdbc525a59a95b6151d6c7fe04e664afaae957d42ad950f1f06f9d84a8ff5106c06ca3488a89459d350817d8e1a9d176d0f128e868888fa7d6592b9ada4d81e6d0474dca0a82b87911acb1611a0ac19c06ff5e67bfeaa5bfbf44c2a929834d1466e66c23ff77764ce3747916a4ac7e939820fb56a25036f01ab7154d28f9c34705191fafafdebc4fa6ec4451aef0bec09fa74999ff494ed71ffd4f1337c2b311169dee654a1ab295dfcccdb9e019f1f078c2a9678fa3089814b8a95edb35d8a6310ecc86b3c6470b3b081d0475e6f12f191f7d89d1a015057905b058470313418ef5ce995beddda63376d4f0854a1a2f6b3a7a078cef9e3a141b4e2f4d6635f20a0b1683c49d1afd44869f32b848422384b3baf3eefab4c13c4976a2e19819d653d23934b8744848318f62ca2f0fd8d2f935e1d9d2c630cfa48eef424531127ccb00ef285fce50", 0x725}, {&(0x7f00000005c0)="a81d4205c35c7fe2ad60d1e2ac4171598a5ff46fcf1a3a40e78f42d7493356596913fe256c8dd77d38f7c554e752fd2e7827cdf11827c9d941bacf8fb124a56d4ff14692fca97d261f2e34544f72169b5992d8758c3318aa7fc4e3a3f070ffa2de79788235a74c1766e093c96269d76b41b62d3b401dd6dfee3b5cf169bde44e83dead855e488c6d2136561ca203", 0x8e, 0x4}], 0x6be810272c45d12c, &(0x7f0000000c80)=ANY=[@ANYBLOB="e6735d13d227c6a34301774df1d13da63f3d8052369249f9643748f0fd3f474aeb41d5c3e867592c9f3f6b43d7a437058bea705978fc1e5a9391df79e1769c1d75e606d947c298ed20da1420dd979d63e7ed277f8694c475e461ee8579a02a10033dfaae8cc3b9acc96076f4dae6e7637e0dfaec625cdea65fc37e2401856a825434c7798e2092fcebae7d7bdd0248c329d5de437eeb67e175457ad3c3a4076c106f6363e02da597794072570bcdac278a5615ee5237d56877e8fa5c6dc8a099d20f257f490cabd668c3292d5a28caa2d4fdf22ba4878d45eefdca95a9631dcf9df1985a96b68e5df76c24615c798d925d9572b249cf1a4de4dcecead1525aa80ac0c0a6d3284185f6509fa09e4e9b99ae885f307220e0ce31d6dfe8f3b1de61abff7b88964594cab623fb9f3ace5b749f59a91ea609465b9d0d86b0cb8779c4b699bdc904dbc48b5ef2fd009e24a984f0352dc7f4b501098d78d01253ce0953e75b9a36e400", @ANYRESHEX=r3, @ANYBLOB=',nfs,audit,smackfsroot=,\x00']) r4 = syz_mount_image$vfat(&(0x7f0000000080), &(0x7f0000000040)='./file0\x00', 0x407fffffff, 0x1, &(0x7f0000000480)=[{&(0x7f0000000000)="eb3c906d6b66732e66617400028001000240000004f801", 0x17}], 0x0, &(0x7f00000009c0)=ANY=[]) mkdirat(r4, &(0x7f0000000980)='./file3\x00', 0x0) perf_event_open(&(0x7f0000000100)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, @perf_config_ext={0x0, 0x9}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) renameat(r4, &(0x7f0000000100)='./file3\x00', r4, &(0x7f0000000200)='./file0\x00') r5 = openat(r4, &(0x7f0000004280)='./file0\x00', 0x0, 0x0) getdents(r5, &(0x7f0000000000)=""/94, 0x5e) 16:42:08 executing program 0: r0 = perf_event_open(&(0x7f0000000440)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c29, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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={0x5}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r1 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r1, &(0x7f00000001c0)={0x2, 0x4e22, @local}, 0x10) listen(r1, 0x0) syz_emit_ethernet(0x36, &(0x7f0000000100)={@local, @dev, @void, {@ipv4={0x800, @tcp={{0x5, 0x4, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x6, 0x0, @remote, @local}, {{0x0, 0x4e22, 0x41424344, 0x41424344, 0x0, 0x6, 0x5, 0x2}}}}}}, 0x0) socket$inet_udplite(0x2, 0x2, 0x88) preadv(r0, &(0x7f00000003c0)=[{}, {&(0x7f0000000200)=""/199, 0xc7}, {&(0x7f00000004c0)=""/4096, 0x1000}, {&(0x7f0000000140)=""/103, 0x67}, {&(0x7f0000000040)=""/56, 0x38}, {0x0}, {0x0}], 0x7, 0x4d, 0xfffffff7) ioctl$sock_SIOCETHTOOL(0xffffffffffffffff, 0x8946, 0x0) r2 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r2, &(0x7f0000000080)=""/196, 0xc4) getdents64(r2, 0x0, 0x0) ioctl$sock_inet_udp_SIOCINQ(r2, 0x541b, &(0x7f0000000000)) dup3(0xffffffffffffffff, 0xffffffffffffffff, 0x0) syz_emit_ethernet(0x2a, &(0x7f00000014c0)=ANY=[@ANYBLOB="31d2b6031561aaaaaaaaaaa224420001080006040002bbbbbbbbbbbbac1414bb3c56e53bc464ffffffffe8fc5cb68203000000c22a48123d8c81f417150e2d896367b0ef9bd1afe3e11fbd015176ef8de1b2c8455480af6ee05ced6fe0fc5f806648b9b0ba0191daf884a8c0bf4e8c380114988b3b03a828b120d44e3d27209ba2c9a5570b322b9f8d5cb30464c8bfec667dae36ba708170732e3c7b0f46fad037166bd3c819e55266f49236a3fcef6c2014be3febc06520a90236e69ea5cff92406f6dec27de082a6bef26b897a121510b2c06a00000000000000000000000042eedc0ef18aa4687ace75480940d39f654bcde80300000000008dd03613ed2abc7bbb442b3f63245ed825482986a432a8bb94ccfbf343f0e9ce84f285"], 0x0) creat(0x0, 0x101) 16:42:08 executing program 1: mknod(&(0x7f0000000040)='./file0\x00', 0x1040, 0x0) acct(&(0x7f0000000100)='./file0\x00') r0 = getpgid(0x0) perf_event_open(&(0x7f0000000700)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50a, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1}, r0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) timer_create(0x0, &(0x7f0000000280)={0x0, 0x12, 0x0, @thr={0x0, 0x0}}, &(0x7f00009b1ffc)=0x0) timer_create(0x6, 0x0, &(0x7f00000008c0)) creat(&(0x7f0000000240)='./file0\x00', 0x0) timer_settime(r1, 0x0, &(0x7f0000000340)={{0x77359400}}, &(0x7f0000000380)) timer_create(0x3, 0x0, &(0x7f0000000400)=0x0) acct(&(0x7f00000000c0)='./file0\x00') prlimit64(0x0, 0xe, &(0x7f0000000180)={0x8, 0x100000000}, &(0x7f0000000640)) timer_settime(0x0, 0x1, &(0x7f0000000080)={{0x0, 0x989680}, {0x0, 0x3938700}}, &(0x7f00000001c0)) timer_create(0x0, &(0x7f0000000000)={0x0, 0x14}, &(0x7f0000000040)=0x0) timer_settime(r3, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) tkill(0x0, 0x31) timer_settime(r2, 0x0, &(0x7f0000000480)={{0x77359400}, {0x77359400}}, &(0x7f00000004c0)) mount$overlay(0x0, &(0x7f00000005c0)='./file0\x00', &(0x7f0000000600), 0x0, &(0x7f0000000900)=ANY=[@ANYBLOB="75707065070000003d2e2f3f0166e9ff0c709a7b7be692fa5800918b06e8b4f8d08c53aebbc4e823cf58467b5cbab8484a5f709ee8e7a41311c557792d829666a5a8249b5caec03e5b1739de08303de251971c7e27fb4a0fd034147a2f11bd7cc2aedbffb57085b6f21c49294c30628be2ee910e940d30833256fcb1c1627748f5c9a2b941383ce63e40ca7b1c89a6e23ebeadb62af2b62172ac9f59db2d717b207e3bfab14d0593e76dd24af54f97e6e572c0ae95ad3328ef257dfb528b70fcd32d930a48e7c747bdbf9a6cc6e0d69b9a237359e45c018acde338f834a771a357dd276f62f65caafa98f637f06254542c22876121310846c6d780405cfed351a15fb33e63003c781dd0a378faa9624c40bd5a72ac95a8230f6fc9f5c86a8ed7f04a4b7c754289b4c22bae4a6400"/315, @ANYRESDEC=0xee00]) unlink(&(0x7f0000000140)='./file0\x00') 16:42:08 executing program 3: syz_open_procfs(0xffffffffffffffff, &(0x7f0000000100)='net/vlan/vlan0\x00') r0 = socket$inet_tcp(0x2, 0x1, 0x0) perf_event_open(&(0x7f0000000580)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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) mkdir(&(0x7f0000000180)='./file0\x00', 0x0) setsockopt$sock_cred(0xffffffffffffffff, 0x1, 0x11, &(0x7f00000002c0)={0x0, 0xee00, 0xffffffffffffffff}, 0xc) mkdir(&(0x7f0000000300)='./bus\x00', 0x0) sendto$inet(r0, &(0x7f00000001c0)="b2fb258a169cf7f8a68f97338c28467b4852333b6480789e1bc43fb9a58de21b2d82c154dfaef4a36bbacc81b74a005e2d9b06afccd357afc18ce1484b4f96311a9747edb512c09fd747db545d85e8969bba98546f7e4932d789127e0721d5502068772388e342c267d3e32285dc63dd0e569b7b7c4840e7ba422ac93e2e89bbf7b98dcf6a50eeeec1bb012a5cb57c236e9631857d4ca232de5c72a86c0b73ef98f784305301207b75a306d15e825bea98d530667c49a18dfb1cb473d9279c9ee4075eb096555d2373b332744fad147dc6ec7f48c0de2ac0b524c9ae6278d4522428c41fa40f523836df825c36a86ae9f032bbb0dece06a9", 0xf8, 0x10, &(0x7f0000000140)={0x2, 0x4e21, @private=0xa010101}, 0x10) syz_mount_image$tmpfs(0x0, &(0x7f0000000800)='./file1\x00', 0x0, 0x0, 0x0, 0x0, 0x0) mmap(&(0x7f0000ffe000/0x1000)=nil, 0x1000, 0x0, 0x10, 0xffffffffffffffff, 0x0) mount$overlay(0x0, &(0x7f0000000040)='./bus\x00', &(0x7f0000000080), 0x0, &(0x7f0000000340)=ANY=[@ANYBLOB='upperdir=./bus,workdir=./file1,lowerdir=./file0']) socket(0x0, 0x0, 0x0) syz_mount_image$squashfs(&(0x7f00000000c0), 0x0, 0x80, 0x5, &(0x7f0000000b00)=[{&(0x7f0000000680), 0x0, 0x100000001}, {&(0x7f00000003c0)}, {0x0, 0x0, 0x8}, {0x0}, {&(0x7f0000000a40)="9d52b96dff1608d943f3627a3dc165b6201477cb5eb0084db17cb160bb8644bfb3b42a820fd8a07f34be8e9802fec4d7a1", 0x31, 0x7}], 0x0, &(0x7f0000000c00)={[{'\xca'}, {'index=off'}], [{@fowner_gt}]}) umount2(&(0x7f0000000000)='./bus\x00', 0x0) socketpair$tipc(0x1e, 0x5, 0x0, &(0x7f00000000c0)) openat$vcs(0xffffffffffffff9c, &(0x7f0000000000), 0x406001, 0x0) mount(&(0x7f0000000380)=@filename='./file1\x00', &(0x7f00000003c0)='./file1\x00', &(0x7f0000000400)='bdev\x00', 0x20, &(0x7f0000000440)='[!&\x00') 16:42:08 executing program 5: perf_event_open(&(0x7f0000000040)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2c43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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, 0x800000000}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = syz_open_procfs(0xffffffffffffffff, &(0x7f00000001c0)='net/vlan/vlan0\x00') sendmmsg$inet(0xffffffffffffffff, &(0x7f0000001ac0)=[{{0x0, 0x0, &(0x7f00000003c0)=[{0x0}], 0x1, 0x0, 0x0, 0xa6ff8034}}], 0x1, 0x0) preadv(r0, &(0x7f00000017c0), 0x9b, 0x0, 0x0) openat$md(0xffffffffffffff9c, &(0x7f0000000180), 0x141400, 0x0) splice(r0, &(0x7f0000000000)=0x200, r0, &(0x7f00000000c0)=0x6, 0x80, 0x2) r1 = openat$vcs(0xffffffffffffff9c, &(0x7f0000000100), 0x8000, 0x0) ioctl$PERF_EVENT_IOC_SET_FILTER(r1, 0x40082406, &(0x7f0000000140)='[\x14#\x00') r2 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r2, &(0x7f0000000080)=""/196, 0xc4) getdents64(r2, 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f00000002c0)=0x8) r3 = syz_open_dev$vcsa(&(0x7f0000000340), 0x8, 0x101000) syz_kvm_setup_cpu$x86(0xffffffffffffffff, r3, &(0x7f0000fe5000/0x18000)=nil, &(0x7f0000000380)=[@text64={0x40, &(0x7f0000000500)="3ef20f2006420f01f32e650fbae4062e0fc77d00450f783cdeb9800000c00f3235008000000f30670f01f2c4e37d1d5f81dd48b80a000000000000000f23d00f21f8350000000a0f23f8b8010000000f01d9", 0x52}], 0x1, 0x2c, &(0x7f0000000480)=[@dstype3={0x7, 0x1}], 0x1) r4 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r4, &(0x7f0000000080)=""/196, 0xc4) getdents64(r4, 0x0, 0x0) setsockopt$inet_sctp6_SCTP_AUTH_CHUNK(0xffffffffffffffff, 0x84, 0x15, &(0x7f0000000300)={0x5}, 0x1) openat(r4, &(0x7f00000004c0)='./file0\x00', 0xc102, 0x89) ioctl$DRM_IOCTL_MODE_GETCRTC(r2, 0xc06864a1, &(0x7f0000000240)={&(0x7f0000000200)=[0xfffffff9, 0x8, 0x2, 0xfff, 0xe26, 0x5, 0x10007], 0x7, 0x9, 0x1000, 0x5, 0x9, 0x8, 0x9, {0xffff, 0x2b55, 0x7ff, 0x7f, 0x2, 0x2, 0x4, 0x9, 0x1000, 0x0, 0x1, 0x0, 0x3f, 0xfffffffc, "a721242a19b21f6981235da7f1fe8db9ee986098a310bcc0f045695699e82b12"}}) 16:42:08 executing program 0: socketpair$tipc(0x1e, 0x2, 0x0, &(0x7f0000000180)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$TUNSETLINK(r1, 0x8912, 0x400308) r2 = socket$inet_udp(0x2, 0x2, 0x0) mmap(&(0x7f0000ffd000/0x1000)=nil, 0x1000, 0x8, 0x810, r0, 0xc897000) r3 = socket$packet(0x11, 0x3, 0x300) setsockopt$sock_int(r3, 0x1, 0x28, &(0x7f0000000000)=0x8, 0xfffffffffffffe0f) ioctl$TUNDETACHFILTER(0xffffffffffffffff, 0x401054d6, 0x0) setsockopt$SO_BINDTODEVICE(r2, 0x1, 0x19, &(0x7f0000000140)='wlan0\x00', 0x10) r4 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r4, &(0x7f0000000080)=""/196, 0xc4) getdents64(r4, 0x0, 0x0) setsockopt$inet_tcp_TCP_REPAIR_WINDOW(r4, 0x6, 0x1d, &(0x7f0000000040)={0x4, 0xd80e, 0x3a, 0x2, 0x40}, 0x14) connect$inet(r2, &(0x7f0000000180)={0x2, 0x0, @multicast2}, 0x10) sendmmsg(r2, &(0x7f0000007fc0), 0x400000000000070, 0x0) 16:42:08 executing program 1: syz_genetlink_get_family_id$ieee802154(0x0, 0xffffffffffffffff) sendto$inet6(0xffffffffffffffff, 0x0, 0x0, 0x800, 0x0, 0xfffffffffffffe9a) perf_event_open(&(0x7f000001d000)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, @perf_bp={0x0}, 0x0, 0x8, 0x0, 0x0, 0x2}, 0x0, 0x0, 0xffffffffffffffff, 0x0) r0 = openat$kvm(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) syz_kvm_setup_cpu$x86(0xffffffffffffffff, 0xffffffffffffffff, &(0x7f000002c000/0x18000)=nil, &(0x7f0000000180)=[@text16={0x10, &(0x7f0000000040)="3e660fc775a7b8a6000f00d00f320f79fd66b9ab03000066b80060000066ba000000000f30f3e10e0f0ffaae65660f2d0d0f01c266b8010000000f01c1", 0x3d}], 0x1, 0x0, 0x0, 0x0) ioctl$KVM_CREATE_IRQCHIP(r1, 0xae60) r2 = ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x0) ioctl$KVM_SET_USER_MEMORY_REGION(r1, 0x4020ae46, &(0x7f00000000c0)={0x0, 0x0, 0x0, 0x2000, &(0x7f0000000000/0x2000)=nil}) ioctl$KVM_SET_IRQCHIP(r1, 0x8208ae63, &(0x7f0000000680)={0x0, 0x0, @pic={0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x1, 0x2, 0x0, 0x1f}}) r3 = openat$full(0xffffffffffffff9c, &(0x7f0000000000), 0x1eb800, 0x0) ioctl$DRM_IOCTL_ADD_MAP(r3, 0xc0286415, &(0x7f0000000080)={&(0x7f0000041000/0x2000)=nil, 0x6, 0x4, 0x2c}) r4 = openat(0xffffffffffffffff, &(0x7f0000000100)='.\x00', 0x404000, 0xf0) write$binfmt_script(r4, &(0x7f0000000200)=ANY=[@ANYBLOB='#! ./file0 \x00 .): \x00 \x00 \x00 c0\x00 \x00 ( \x00\n'], 0x28) ioctl$KVM_CREATE_VM(r4, 0xae01, 0x0) ioctl$KVM_SET_REGS(r2, 0x4090ae82, &(0x7f0000000380)={[0xffffffffffffffff, 0x0, 0x0, 0x0, 0x2, 0x0, 0x400000004c8, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffffffffffffffc], 0x10000}) ioctl$KVM_RUN(r2, 0xae80, 0x0) ioctl$KVM_CREATE_VCPU(0xffffffffffffffff, 0xae41, 0x1) sendmsg$DEVLINK_CMD_TRAP_GET(0xffffffffffffffff, 0x0, 0x0) ioctl$KVM_ASSIGN_SET_INTX_MASK(r3, 0x4040aea4, &(0x7f0000000100)={0x96, 0x14ae, 0x0, 0x7, 0x1ff}) 16:42:08 executing program 5: perf_event_open(&(0x7f0000000080)={0x1, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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={0xff, 0x8001}, 0x40000, 0x1, 0x400000, 0x0, 0x6}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = openat$sysfs(0xffffffffffffff9c, &(0x7f00000006c0)='/sys/block/loop0', 0x0, 0x0) syz_genetlink_get_family_id$nl80211(0x0, r0) r1 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r1, 0x6, 0xa, &(0x7f00000005c0)=0x165, 0x4) setsockopt$inet_tcp_TCP_MD5SIG(r1, 0x6, 0xe, 0x0, 0x0) bind$inet(r1, &(0x7f0000deb000)={0x2, 0x4e23, @multicast1}, 0x10) setsockopt$sock_int(r1, 0x1, 0x8, &(0x7f0000000100), 0x4) socket$inet_udp(0x2, 0x2, 0x0) sendto$inet(0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x0) setsockopt$IP_VS_SO_SET_STOPDAEMON(0xffffffffffffffff, 0x0, 0x48c, 0x0, 0x0) sendto$inet(0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x0) recvmsg(r1, &(0x7f0000000240)={0x0, 0xfffffffffffffd83, &(0x7f0000000180)=[{&(0x7f0000003ac0)=""/4096, 0x5801}], 0x1, 0x0, 0xf080, 0x5d01}, 0x100) sendmsg$NFNL_MSG_CTHELPER_DEL(0xffffffffffffffff, 0x0, 0x0) close(0xffffffffffffffff) write$binfmt_elf64(r1, &(0x7f0000000e80)=ANY=[], 0x1000001bd) 16:42:08 executing program 1: prlimit64(0x0, 0x0, &(0x7f0000000280)={0x9, 0x8d}, 0x0) r0 = getpid() sched_setattr(0x0, &(0x7f0000000180)={0x38, 0x1, 0x0, 0x0, 0x4}, 0x0) sched_setattr(r0, &(0x7f0000000040)={0x38, 0x2, 0x0, 0x0, 0x8}, 0x0) pipe(&(0x7f00000003c0)={0xffffffffffffffff, 0xffffffffffffffff}) fcntl$setpipe(r2, 0x407, 0x0) write(r2, &(0x7f0000000340), 0x41395527) vmsplice(r1, &(0x7f0000000000)=[{&(0x7f0000000500), 0x3528a9c0}], 0x1, 0x0) sched_setattr(0x0, &(0x7f0000000080)={0x38, 0x2, 0x0, 0x0, 0x3}, 0x0) sched_setscheduler(0x0, 0x5, &(0x7f0000000380)) lsetxattr$system_posix_acl(&(0x7f0000000140)='./file0\x00', &(0x7f00000002c0)='system.posix_acl_default\x00', &(0x7f0000000880)=ANY=[@ANYBLOB="02000000010001000000000002000000", @ANYRES32=0x0, @ANYBLOB="02000200", @ANYRES32, @ANYBLOB="02000000", @ANYRES16, @ANYBLOB="040000000000000008000600", @ANYRES16, @ANYBLOB='\b\x00\x00\x00', @ANYRESHEX=0x0, @ANYBLOB="082a83862adf2187400ea433ce1a8428000200061e05005fa155008b28d90688fdf02e92b8ea", @ANYRES32=0x0, @ANYBLOB="08000300e73217024775058ec039db7b968061e8ad8c3c19442b494040adfeae3cc8b193d8d4286e7b3b6e8abbe16d25d3bb0fed8c15ac066cb540ea85907e7a599532c2105d26b4efc3d76764fff6f5d5a03a56976ee4619e7a996e26f867e3629ae418414b4470a90ebf98e4076fc55efc91a3c2e815f8c2b56e7cade6c9286f07d295000000000000000000000000000096e695c12d699f690588a83636e6c01bb0850ab02ac40c446535b4f5b4b0bc53b7d56adccde66afb8ee9982b4a7112d5d8a1909ea7149a02b5450b8ae7f8aba34b73bf86219d06e27817ab9def15b8927ed3d79938971b5ab65dae016361904c514d24eae432377e04d4944ff4481b678e0250f2d2569f9a0fedb096f53e23b3334c1b2fc99c732b8e3e792082154eb5530fe98261aa079859281cc134bff91af35246c17354fa3a3ada8574b814ebec261a8986579403bc6960c1953c84d12a877540b27fe9df2b3c555a1a45c8909f1ab9f09749a6c8627610cfb6b9393514a82bfc4faada24a6339cc4c487db97409aecb6839b1d13b54741ea06b26a70c6a3c9c3ba93", @ANYRESDEC, @ANYBLOB="b6f2bda99e9a778bc4fbbb3fdc279709fac24ec5de79bba72c1f27c09801c7ef20b35c9709ddc6e8916fb5eb64a4bed643bae727bc32cffd6489c989279865f2972083913e28d17438b001293bb7d1deb82135b8f892ae3e172e59ebbaab0999234dfcbff9cc77f31368162ba191b940f1", @ANYRES32, @ANYBLOB="08000100", @ANYBLOB="aedc7f2613c51df70339cc0923d24170dd2b1f3bc73c87951a10f9ac73b60681d51943a6f7394c8e2d662a01775afe", @ANYBLOB="10000200000000002000030000000000"], 0x6c, 0x2) sched_setattr(0x0, &(0x7f00000000c0)={0x38, 0x6, 0x0, 0x8, 0x5, 0x5, 0x6, 0xea56, 0x675, 0x97}, 0x0) r3 = open(&(0x7f0000000200)='./bus\x00', 0x1612c2, 0xb8) r4 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$NFULNL_MSG_CONFIG(r4, &(0x7f00000001c0)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000000140)=ANY=[@ANYBLOB="30daf962b20401040000000000000000000000000800034000000000"], 0x30}}, 0x0) mmap(&(0x7f0000ff9000/0x4000)=nil, 0x4000, 0x0, 0x10, r3, 0x175f2000) perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp, 0x28, 0x0, 0xff, 0x0, 0x0, 0x0, 0x1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r5 = openat$procfs(0xffffffffffffff9c, &(0x7f0000000340)='/proc/asound/seq/clients\x00', 0x0, 0x0) sendfile(r3, r5, 0x0, 0x4000000000010046) syz_read_part_table(0x0, 0x0, 0x0) 16:42:08 executing program 5: r0 = getpid() sched_setscheduler(r0, 0x5, &(0x7f0000000380)) r1 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) r2 = ioctl$KVM_CREATE_VM(r1, 0xae01, 0x0) perf_event_open(&(0x7f0000000300)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x505, 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, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xfdffffffffffffff, 0xffffffffffffffff, 0x0) r3 = fcntl$dupfd(0xffffffffffffffff, 0x0, 0xffffffffffffffff) ioctl$KVM_RUN(0xffffffffffffffff, 0xae80, 0x0) perf_event_open(0x0, 0x0, 0xb, 0xffffffffffffffff, 0x0) ioctl$KVM_CREATE_IRQCHIP(r2, 0xae60) r4 = ioctl$KVM_CREATE_VCPU(r2, 0xae41, 0x0) ioctl$KVM_CREATE_VM(r3, 0xae01, 0x0) getsockname$packet(0xffffffffffffffff, 0x0, &(0x7f0000000200)) syz_open_procfs$userns(0x0, &(0x7f0000000180)) syz_kvm_setup_cpu$x86(r2, r4, &(0x7f0000fe8000/0x18000)=nil, &(0x7f00000000c0)=[@text16={0x10, 0x0}], 0x1, 0x1, 0x0, 0x0) ioctl$KVM_TRANSLATE(0xffffffffffffffff, 0xc018ae85, &(0x7f0000000280)={0x0, 0x0, 0x0, 0x0, 0x3}) r5 = ioctl$KVM_CREATE_VCPU(r2, 0xae41, 0x1) syz_kvm_setup_cpu$x86(r3, r5, &(0x7f0000fe8000/0x18000)=nil, &(0x7f0000000040)=[@text16={0x10, &(0x7f0000000000)="f30f0966f00fb3b38a590f01cf0f01cb660fe3172ef30fc77129f4dde365650fc75b0036a20100", 0x27}], 0x1, 0x20, &(0x7f0000000100)=[@cstype0={0x4, 0x9}, @vmwrite={0x8, 0x0, 0x4, 0x0, 0x0, 0x0, 0x1}], 0x2) ioctl$KVM_SET_LAPIC(r4, 0x4400ae8f, &(0x7f0000000400)={"6cdd4237dd245c8404721efdc9c8dc1964125fa96fa42b761c6ec25b2bec0ba4c81036c93a40c8a4d4412a763b00040000000000003c5ca206c047ecee377abaece6b88378e38e06c5fc191f361d264ffa8b46485f02baee1ab6b8154252066178868d1ef4b53606000000000000007c21a984c2b9ca4bbb7a87165c0c1dbc75d7ea4df1001000000000694525952f44500a1f0db509c32cc7ace842c28f37f06e4ea9f1e5f0c6c379f9cc58bf69fcde317fad4825aa1b6a832d4e48cc41bb5a6baa41d614f6c8941bee805954a62d196a4e8d4bf6b21224b57f530d0000c1ff53bf79a1f5c5dc34b22645cbc11c4562d22db88d0edc5daee171cc04d96d9ec2db07478f347edbd6404923ad4a5672b1b285c7988c4ec0922c655ff600000000c00dc290d936d93236051fadfb4b95d02c0bda7ce38dabb7cd103fe4d0c9c963cd717a77f8df8d46099b1f580968af6afbbc19db161c6df3e7c9c71bc08a282fc2c142856b5e4caff4c0a4f72445ef10dcd2c569319d6e9bb2058d023f669a64fc7d9684b45b00000000364673dcfa9235ea5a2ff23c4bb5c5acb290e8976dcac779ff000000000000003d4e185afe28a774b99d3890bd37428617de4cdd6f53c419ce31054182fd098af7b7f1b1152c691611f897558d4b755cb783978d9859b0537b05b623dcb5c4ca9317471a40fa4998cca80e961efffb4e1aa25d8a17deef0c8694c4395fc99be3c3fe7aeb8af4929ce7d346ca62b25d48fda5d10146702f78b233b5208752726ed9f0c340d494b92d19cc930bb8a5f8b4da8f4603ac0c3b698384e17a570dc8524823ed15af4ecfabb4b2541d3c114b7bba1c21a845c9cf0d1cc24aba47e30f558b2246ad95ccf7d2f80cc0ab26f08336ea1a33b79cf35b898837016eb211a1734c7af076e15451e33519fc978f66df7df4557c91024a8dc130a28ef5f63ad07b39c8d23b85cf434e065e8a29a80047fe17dee6f6347b4951f97b5703dc78b1ca9d74ea6a9ae12ab367c0de2659cc38d2f33ddd86e0597d33361eada119b5132145fa4525c488c7fffd6ceda6e9a02ebd97ced6b0161f2cc84615ceb8b18883299c636e9e46724a9a0600a8bb02f3e489631d522019a35fe12a33caf9dd8768ddbc02a484c345c3eff254297b1dbb04989c3f9f3c7b3c985c39b1d313018068d3809bac8c657e39f4f692613e28387e955722908dd88b56163be8312ff47c5b6f280472935af74e97a5a8110a4d74496f4c8ec82ddb010100000000000001a047526865c888c9ff36056cc4ad258021e1581d43badaaec6cc5a2ef989de9801fed6d4be2bfcfe07a69c46bffbe9dd03970800000000000000d372bdd6d89dc1ecf63c23d506114d0fba2bd1c69e8f7e3fccdcda85ce975ec1381b1cec6ddaa76e186719d819164300"}) ioctl$KVM_SET_VAPIC_ADDR(r4, 0x4008ae93, &(0x7f0000000140)=0x4ffe) ioctl$KVM_RUN(r4, 0xae80, 0x0) 16:42:08 executing program 0: r0 = openat$bsg(0xffffffffffffff9c, &(0x7f0000000000), 0x100, 0x0) perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c0, 0x60208, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2001, 0x0, @perf_bp={0x0}, 0x0, 0x8, 0x0, 0x5, 0x0, 0x0, 0x1}, 0x0, 0xffffffffffffffff, r0, 0x0) splice(0xffffffffffffffff, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x8) r1 = socket$inet_udp(0x2, 0x2, 0x0) setsockopt$SO_BINDTODEVICE(r1, 0x1, 0x19, &(0x7f0000000080)='ip_vti0\x00', 0x10) connect$inet(r1, &(0x7f0000000100)={0x2, 0x0, @rand_addr=0x80000001}, 0x10) r2 = bpf$BPF_LINK_CREATE(0x1c, &(0x7f00000000c0)={r0, 0xffffffffffffffff, 0x1e}, 0x10) r3 = socket$nl_crypto(0x10, 0x3, 0x15) splice(r3, &(0x7f0000000040)=0x1, r2, &(0x7f0000000140)=0x7, 0x5, 0x0) sendmmsg(r1, &(0x7f0000007fc0), 0x400000000000075, 0x0) 16:42:08 executing program 0: open(&(0x7f0000000340)='./file0\x00', 0x30042, 0x4) r0 = perf_event_open(&(0x7f0000000080)={0x3, 0x80, 0xfe, 0xfd, 0x0, 0xfe, 0x0, 0x317d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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={&(0x7f0000000380), 0x8}, 0x0, 0x0, 0x0, 0x0, 0x1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) pread64(0xffffffffffffffff, 0x0, 0xfffffffffffffdce, 0x0) r1 = perf_event_open(&(0x7f000025c000)={0x400000001, 0x80, 0x2005, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8c1b1, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xbfffffffffffffff, r0, 0x0) mmap(&(0x7f0000ffd000/0x3000)=nil, 0x3000, 0x0, 0x11, 0xffffffffffffffff, 0x0) ioctl$PIO_FONTRESET(0xffffffffffffffff, 0x4b6d, 0x0) ioctl$PERF_EVENT_IOC_SET_OUTPUT(r1, 0x2405, 0xffffffffffffffff) r2 = perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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) mmap(&(0x7f0000ffc000/0x3000)=nil, 0x3000, 0x0, 0x11, r2, 0x0) r3 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r3, &(0x7f0000000040)={0x2, 0x4e23, @multicast1}, 0x10) sendto$inet(r3, 0x0, 0x10b, 0x200007fe, &(0x7f0000000100)={0x2, 0x10004e23, @dev={0xac, 0x14, 0x14, 0xa}}, 0x10) ioctl$sock_inet_SIOCSIFADDR(r3, 0x8916, &(0x7f00000001c0)={'veth0_to_team\x00', {0x2, 0x0, @broadcast}}) ioctl$DRM_IOCTL_MODE_CREATE_LEASE(0xffffffffffffffff, 0xc01864c6, &(0x7f0000000140)={&(0x7f0000000000)=[0x0], 0x1, 0x80000, 0x0, 0xffffffffffffffff}) fsetxattr$trusted_overlay_upper(r1, &(0x7f0000000200), &(0x7f0000000240)={0x0, 0xfb, 0xd8, 0x2, 0x4, "355604263cbf4da01db79eb479749994", "7dc448dde8ee0d00da674ff17a4521ecb4163f41fe8865e11bf38b3aac0f1fde1d7669586f29ed7f53f4666d4543e784e9e788b2bc4bbf8a2ceb4292817282bc6f291af9c3e53e231fff2dddaa477b53d818cb05b558704f75cfff95f178208495aa5e11c4392cad519871c9008e640639c53b51f0eaedfeb89ac9b0adc0263766a648249e75753a1029ee5169a920ae5a639a41c5c016e11fce4d0dee42defdd3548f6e070a43062f1c91a736d25f324b6f1fd764ca521325dfcdf1d9df7b5d5345b7"}, 0xd8, 0x0) bind$inet(r4, &(0x7f0000000180)={0x2, 0x4e22, @multicast2}, 0x10) sendto$inet(r3, &(0x7f0000d7cfcb), 0xffffffffffffffef, 0x0, 0x0, 0x53) 16:42:08 executing program 1: setitimer(0x1, &(0x7f0000000000)={{}, {0x0, 0x2710}}, 0x0) perf_event_open(&(0x7f00000005c0)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) sendmsg$nl_route(0xffffffffffffffff, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000200)={&(0x7f0000000340)=ANY=[@ANYBLOB="3c00000010001fff0000248f1c872d2b02005bee", @ANYRES32=0x0, @ANYBLOB="ff7f000000000000140012800a00010076786c616e0000000400028008000a002615a3053e8c1d"], 0x3c}, 0x1, 0x8000a0ffffffff}, 0x0) r0 = socket(0x10, 0x80002, 0x0) write$binfmt_elf64(r0, &(0x7f0000000ec0)={{0x7f, 0x45, 0x4c, 0x46, 0x1f, 0x1, 0x1, 0x6, 0x6, 0x2, 0x3, 0x1, 0x3a7, 0x40, 0x2d4, 0x50, 0x5, 0x38, 0x1, 0x0, 0x8, 0x4}, [{0x2, 0xffff, 0x3, 0x7bc9, 0x7fffffff, 0x3d, 0x3, 0x400000}, {0x2, 0xfffffefb, 0x8000, 0x9, 0x4, 0x1000, 0x7d88, 0x4}], "8f400355654c0c68f06b59dc8aef950dcd4ff89e1c087e2ec54d3f2ed28fff6b5e76772d650dc1dd666d1d6a743192e432b59b1d4330e2231f1d68f0b76018c94b53327b35ea26b9e2e437f6c17cd27752e6b01342ab4528c66f90bda831f2dbad4776d413157420bbe8ff56fb1348cfd4193f24c9607a887f2b3cc94e75232eb32319bbba25c11f59432f0888a7b74a88a6e396b2a5377895b31542d53d2ba51e35323f0c6ba1090e64c518eb62", ['\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00']}, 0x85e) sendmmsg$alg(r0, &(0x7f00000000c0), 0x492492492492627, 0x1200000000000000) sendmsg$nl_route(0xffffffffffffffff, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0xf0087d6fee1cfa3b}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=ANY=[@ANYBLOB="140000001a0000012dbd703f00dbdf2500000000"], 0x14}, 0x1, 0x0, 0x0, 0x200480c0}, 0x20000000) setsockopt$IPT_SO_SET_REPLACE(0xffffffffffffffff, 0x0, 0x40, &(0x7f0000000700)=@raw={'raw\x00', 0x8, 0x3, 0x358, 0x1bc, 0x4, 0xd0e0000, 0x0, 0x100, 0x2c4, 0x1d8, 0x190, 0x2c4, 0x1d8, 0x3, 0x0, {[{{@ip={@multicast1, @multicast1, 0x0, 0x0, 'veth0_macvtap\x00', '\x00', {}, {}, 0x1}, 0x0, 0x154, 0x1bc, 0x0, {}, [@common=@icmp={{0x24}, {0x0, "a7a9"}}, @common=@unspec=@string={{0xc0}, {0x0, 0x0, 'kmp\x00', "6c61f7e3e1b9071d98834ab52538fd99560d10aa92e5296b18342127f4a71a30630339e42457afd72c19ed1d1bb702c1fbbb671386fa9b474adee4d13720eb259a5b6a762d914391501889a991a4a6baa089858172ccb658d65ebb923a3bc688efd09b000b7941ca0c9a3328058704a591e4fa5d1d37102c755c5ccc45f00c0c", 0x35}}]}, @unspec=@CT2={0x68, 'CT\x00', 0x2, {0x1, 0x0, 0x0, 0x0, 'snmp\x00', 'syz0\x00'}}}, {{@ip={@initdev={0xac, 0x1e, 0x0, 0x0}, @broadcast, 0x0, 0x0, 'veth1_to_batadv\x00', 'geneve0\x00'}, 0x0, 0xc0, 0x108, 0x0, {}, [@common=@addrtype={{0x2c}}, @common=@ttl={{0x24}}]}, @unspec=@CT0={0x48, 'CT\x00', 0x0, {0x0, 0x0, 0x0, 0x0, 'pptp\x00'}}}], {{'\x00', 0x0, 0x70, 0x94}, {0x24}}}}, 0x3b4) ioctl$INCFS_IOC_CREATE_FILE(r0, 0xc058671e, &(0x7f00000004c0)={{}, {0x64}, 0x42, 0x0, 0x0, &(0x7f0000000300)='./file0\x00', &(0x7f0000000380)='./file0\x00', &(0x7f00000003c0)="06f985ebd865f56e4e20c2392696a70e1e7b2ff503fb69f03fa5896eddf52b173dcebafa614e068f746fa97e9bb77997a916a5bf2901b2f111c0ad39995268277ee1b6f1ad37c532ffd2b7d6b11cff99e55f8129a9c9c9b9128711ed8bd8baaef8f4d814adbf483d40ec762284716c6c2a3da0ab2b74435fe1f6e8ead0dd0e47426fe089ef9becedd7f8e7f37ef2c024a5a25b3b4c11f35c22d5d5430c2ab94fc3516059c433f70c13e76b4a19156dc38b9d0be62735e2ec1d06cd62537d7e971fbf2f3ed20f077b121cfebf4ae5263740b69a867c960d47019a32389af550661adfaa9f5fafeae71fedcfa59b91593fd5404a64708c97", 0xf7, 0x0, &(0x7f0000000b00)={0x2, 0x11d, {0x1, 0xc, 0x32, "a7014b7de99b736e9bb982899887ccb9f2cb344296c84c8bacb6c4474f569e345352789287c98d52f6e8913edb54e42598b5", 0xde, "5e80bd1f4b2138ea0444e31967cf0902b4e6ef95ecdfe34a5ecaca942071a72576fb35f04f2db19fc3319b6cf3c4965a377fb932cb2aa86c16c0e8b661a09574b57c9b3b61dee361172edf899b7cccf41e909610668413ac5bf64e7613da7ba7cf6a4e8d003bbb8e3e260031cc6881e5eeacd7402bea0d31331462cf21ccfec04548d600643fbdb55cef96432496d4e5ae118642cf0696eae6b213471714ec97a281e80acd4c1c3209c38b204ceca5dd9a4e27b2fb2f0ebc169ac95c33ba778a67c3c5ccab8d85e6a06d9f513828e9481a686756a08852b2a8ee5aea58e4"}, 0x2e, "56f9b564c654b2da7b56dd7567cbd02c1b0071375bbb0e587174fb6e86091573de975e1797c5e8394941221b4010"}, 0x157}) getitimer(0x1, &(0x7f0000000140)) bind$alg(0xffffffffffffffff, &(0x7f0000000280)={0x26, 'rng\x00', 0x0, 0x0, 'ansi_cprng\x00'}, 0x58) openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) bpf$PROG_LOAD(0x5, &(0x7f0000000440)={0x1d, 0x6, &(0x7f0000000340)=ANY=[], &(0x7f0000000080)='GPL\x00', 0x6, 0xbf, &(0x7f0000000e00)=""/191, 0x40f00, 0x0, '\x00', 0x0, 0x24, 0xffffffffffffffff, 0x6, 0x0, 0x0, 0x10, 0x0}, 0x78) r1 = dup(0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX(0xffffffffffffffff, 0x8933, &(0x7f0000000640)={'vcan0\x00'}) getitimer(0x0, &(0x7f0000000100)) getpeername$packet(r1, &(0x7f0000000000)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000040)=0xa) ioctl$sock_inet6_SIOCADDRT(0xffffffffffffffff, 0x890b, &(0x7f0000000240)={@empty, @ipv4={'\x00', '\xff\xff', @multicast1}, @initdev={0xfe, 0x88, '\x00', 0xfc, 0x0}, 0x0, 0x0, 0x0, 0x0, 0x9, 0x24c20082, r2}) sendmsg$ETHTOOL_MSG_TSINFO_GET(0xffffffffffffffff, &(0x7f0000001800)={&(0x7f00000001c0)={0x10, 0x0, 0x0, 0x20}, 0xc, &(0x7f00000006c0)={&(0x7f0000000c80)=ANY=[@ANYBLOB="a6000000", @ANYRES16=0x0, @ANYBLOB="00022bbd7000ffdbdf2519000000400001801400020076657468305f746f5f68737200000000080003000300000008000300020000000800030002000000080003000500000008000100", @ANYRES32=0x0, @ANYBLOB="44000180080003000200000008000100", @ANYRES32=0x0, @ANYBLOB="140002006d6163766c616e31000000000000000008000109402c3ff59e0b7568db57c1bf79980523285ab5ab9e829ffaadea78e585628064d71f3b4194ae0fd82412b09d98106aaed1cc43fa891da604b2feb4e9004028cb84ec5dc7e4588c416102cef6671b2a495f1a4255d3b5cfbaef76173c8575fb07257e9befac82fc3599934a73d7d397ea53f4d1950326c503e34e685c680400eeae70e0680ddcf69aebee4638add0fafad394335a7b76f3f1b4", @ANYRES32=r2, @ANYBLOB="140002007866726d3000000000000000000000002800018008000100", @ANYRES32=0x0, @ANYBLOB="08000100", @ANYRES32=0x0, @ANYBLOB="140002007465616d3000"/20], 0xc0}, 0x1, 0x0, 0x0, 0x4000040}, 0x400c040) getitimer(0x0, &(0x7f0000000180)) 16:42:08 executing program 0: prctl$PR_SET_UNALIGN(0x6, 0x2) syz_mount_image$vfat(&(0x7f00000002c0), &(0x7f0000000340)='./file0\x00', 0x0, 0x2, &(0x7f0000000200)=[{&(0x7f0000010000)="601c6d6b646f736617e43c00088020000200000004f8000020004000000000000000000001", 0x25}, {0x0, 0x0, 0x200000000010ffd}], 0x0, &(0x7f0000000240)=ANY=[]) chdir(&(0x7f0000000240)='./file0\x00') open(&(0x7f0000000080)='./file0\x00', 0x4142, 0x2) r0 = open(&(0x7f0000000300)='./file0\x00', 0x0, 0x0) getdents(r0, &(0x7f00000003c0)=""/161, 0xa1) r1 = perf_event_open(&(0x7f000001d000)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r2 = open(&(0x7f00000001c0)='./file0\x00', 0x0, 0x0) r3 = open(&(0x7f0000000000)='./file0\x00', 0x141002, 0x44) write$cgroup_int(0xffffffffffffffff, &(0x7f0000000040)=0x1f, 0x12) ioctl$BTRFS_IOC_SCRUB(r1, 0xc400941b, &(0x7f0000000480)={0x0, 0x100000000}) write$binfmt_elf64(r3, &(0x7f0000000180)=ANY=[], 0x82) r4 = syz_open_procfs(0xffffffffffffffff, &(0x7f00000000c0)='ns\x00') ioctl$BTRFS_IOC_BALANCE_PROGRESS(r4, 0x84009422, &(0x7f0000000c80)={0x0, 0x0, {0x0, @struct, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @struct}, {0x0, @struct}, {0x0, @usage, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @struct}}) r5 = open(&(0x7f00000001c0)='./file0\x00', 0x0, 0x0) write$binfmt_elf64(0xffffffffffffffff, &(0x7f0000000180)=ANY=[], 0x82) unlink(&(0x7f0000001540)='./file0\x00') sendfile(0xffffffffffffffff, r5, 0x0, 0xa198) sendfile(r3, r2, 0x0, 0xa198) 16:42:08 executing program 1: socketpair(0x1, 0x0, 0x9, &(0x7f0000000480)={0xffffffffffffffff, 0xffffffffffffffff}) sendmsg(r0, &(0x7f0000000240)={&(0x7f0000000040)=@ipx={0x4, 0x7f, 0x8, "2563d59c56f3", 0x5}, 0x80, &(0x7f0000000200)=[{&(0x7f00000000c0)="763dd519ff5d5071f279bdf24c077ae2754cd04727310da5f33cce81a0f36f7443fd30af888fc13f998a5939eb545b3bc6931eaa5e8a6d1e0703c0d608aeed7434a642243f950499e7614e8028673021a3ecf03c701d7ea0f6d9e43a4a91b1d7376c60b16f79cbcf9319460a73a7f4f05a76579394133b0dd1728708156f795c5417c789", 0x84}, {&(0x7f0000000180)="50ba3f82c94e8efb243c6528ef00cf376e3a265eed48f275ecbf7594f96efd91fb4628b2083b8ee7288b0648f02ac72684d6b1a72cf9c386c9", 0x39}, {&(0x7f00000001c0)="269fdc8e1ef1c37f60b8", 0xa}], 0x3, &(0x7f00000004c0)=[{0xa8, 0x113, 0x2, "ccceca078d4552ab866e80e00149d169f10266e37d977bcae4d53ca36f639754289f805c349b339b0c3c1d62e680e4ddc97eb5d61813888056ffb3c34a1eb4f6630aecffdb9a145d53b816d23113e5207cc41fab68d8509bbef0292094e467f34005d86df455e9b00b042fc00ad1f6263f016bb7bec6994656e0bc4fffb26bb3a54809460e35d4a1a0d93db1454a25e237ab1ea21ef239"}, {0x1010, 0xff, 0x3f, "2976afe0d08e94190a0e4232500d76b4976baef6e7613a61a7ab23a3ae1117cc7553fe088bcd845705cf251cab07c7fb25e80fd7aebbcda73ef78bcedb5b0c84b181d9dd12a7cb17896e34de96d73e457feadd54b4640e44d4b0b3a30b7d42fda48df89a13ea25c53af96d249fec3cb794f8224514642639aecc6064d5e2ec4aa8082392a5b888a95f12d392fa574f18e0f0111a8318dac597d28610aa4d9cbf363cb3806e1c7b892188bd5b0246a58461da2873d9c30065f389553a5370fb7a41225a83167f1996bfcc9ad978f20ac88f9cc47a4c86a85b2216ba0fa3973f603d3b34046e60563d0dc0f22c29a5f15083288481a4e8c70a4b563987f463d79f8e1761f069e9c2e6dbca3d9f88e848f03a653c42ff7bec1e86281646f2261525a20c9f55390ca0d065419285f12e3a7ffd97f6ebf8c73ea1d6a5c5fe01e55159acfc207b38602b47720e8aa414e6cfb378a2dc4f35a63cde53973fa6669fecadbedc3ef41b3d38227d246bf326d5ccd0f8c9c95dc203eaf4fca93493828d352e2c81b797da0dd223caa9138816dd1d7a32d19429da96e350d0e3e984392651139fa9298f25aab7b754b5c4498f0b05a409e611308614bf70bed7805428d011ac11a72dd3fa4843e1673c5bbf2c55d7def7d99e2567ecbbbc062264ef01177267fc2acf608689a30a41a3fa98d8214d167851c4b55b6e1319882c75e88f3392f12b1e3de2d45dfe9a3c5f3c5903b88383086668fcae5912e27bc03131df8dc0b6e48f4eed4e03aaac29581f3c86f492cde468a6e6ab1ac9f0d018ac452a3a38808d326b988bd205f0e620caa835ad04f3779f355ab58f7ab6eb873c3901b0c5f92a2782adddc9bf46ed96ca8fb3dd5384186dd32656569fdfcda1c819043da24224f6d1542b475befc322c6df9b4a885a173b586653a8b5111b5578efe42362cffc0cafa7d0a5ae6dbe04c27f5b776cd0fd7cfedef433ee8b680759d0c7d208a9320281251aabd9fa692bfc20416488a5a434ec41382081f1adc8a130a119a080e71a6b44def0951bcfd9b55f47512f53580e455278614e3addc7b3a5e575e184522cd233d1d6f735a24688772f35b8f3cc539116a5d5c3f224919a8fcafe32c4a663e97e7cc8efd2af1699a923ea555052a90a9a73f75eccc2e367c2d3c554d009196d14460158d7b1c245d5ea1c8abca912b3108153dd50471fa7be0c0d4c920bd98f9e43777655812827c42149a0ff5e676a8128cae8466f03ddbcb6c902f590b8c20c33f62604206026ba483fbda0d91ae1ca1c6ae831958920c8c5eca3345637b691c67fef271fa5fa8dd5b3d7db72d85ce44d0c840204fdaa281f47252aad3c701a1c2c566cb0d3fb7fa694a20073fb5f4429049fd6a39ebf7fad7693b4265cccc64f0a444c9bc050b70ebf93d3517b4446dac14166ffb85eee869865cefd829d6afd3018a3f0a21142b0ea19ea6a645c58479146b60d229bb14840e2c99afa278b5fe8b62a2f7f51c6e5a2dd2a9d4488516b3885f5f414059bc09651527a210990231701a070bd7b40e421dccc21cdcec8835a1be00426abd5097c0db5dae6f4886e80ee19b08379ab778f9055f873d63ef8565af215b2590652e2ff858fac55b985d277119f8e4063b14897e75e379e6d27fce7f71dcda551f481c04bd245b36d9c225acf5260315675c9e01bd38c916c214035daaf5bdffb3d9bac0102f4863aae0d537298ce8d5e0672cb3e978063c770bb0c240d78ec00bc48d7c6f745508b8b84f463f86a7d5ac935d1aaf07fc21f6f041c5fa213af34db718f90df002315ec892fff6ac138ba66f268634bfc60929eebbb80ab4973d915b8944becec8a7703208bb0e20943dc15d1e687fe863b5face1da64f2d0b0f2e08622c44509896741015454cfa9734cedf0eaaa60c07481f27252df68236260b5c6a52ef9f401a09e7a8fbd268d9eda0ac170da096cfd995e317212ab4a1343aaaa5336b8e2f25306e8280908af5c7df1a732522e9946c8b0e49f39f4075114290518a000cb4ce56f7fd498b963a3906e7e3d695d865634c17973a2effa1e3d63c25bebf4632bd5e39796b603d6200045de9b0a686d76ae049653c375768b432808685cf65a8d96bd97c02d843432353f7ae8b0e1d90f6df673b689ed193242476c6a27e1a710899e5e2c3b059ca185e8b24c01693be57022708b33fd15ea58028b1d159fbc167cbef5586c53a6c8196eb8b907474c30b37ca3f72f4ea288f052a9860de3ca4d8b6af02d76254387bfb273597340895064288367530d2d98f9e453bfe82cfe2a71b10a1642827966134bcfb01093564d4831e5319ce0c13ee71aec8b0ad431f75c82155ca192fc11f9e687d4f17b40345d8b8bde1d1d0d4b1c1443f9ad73372a6ae0b2840ff77047363505d23a6dce93cf3f8a60d8bf6438ac0d7c34174f510fc4b5b093232668a596cdf317545fcba1232b3e8aac695ddd73e245632ab7bd27fb817ba7f351b5d93c8bbfefc79395c7b492a58edefa2a8527b6ffc5bbf69547ab8f514309e91e6fa80c27873eb4731332cad439dc97e498df2095b34ff6ef76937d75e223028b73f0cacec9b59603838638ca1965e440a68562457eb04c98d8bc387006ef99ccfd51262353768ca6eabc90864fcf8ad478623041043974639f3ced5783d11546e7feeb4db60ae48d90c95d6d8bc18bf5537bccdf1a9dfc1dcd5169bc9514a6239d54b8017389911090a33d5c794e7143eff17f084b1afa04a8765edfe0adc6915a390dfeed596de8b81cdd3392ec335ad0fdfcda33cb2f6e6f324acf4786655d3f436e7d563e844dea6df627c23e6d39ac4f40202acf37511ea70c5447925bc5dacf1a159791c3fd86d7df21b59cfaa3ca0241a460f093df7a3734663d48419dbaf4a6f36922424cca092402f33203085cd36a67137ca1df48f7ca618b3db3b8e4ddbdbca01cbc6c9e7a2ad138589a8ece9cf9332ac00f2399411ef8f79e991776e6ff4bf560895c05ce2feefaf308cc0f44be914b351e9d30891bbdc1546c2b5a60157c436d7559d3c1ad788b80e7ff9ee98a086356c6fa0a4ebeb5d9df68530fc13385e662ea2dd049f460ebe4b62f14f0fd3e0e5754de9cfa946bd39e92f902a265d87b8ba34a68d0f9c533eedb5e8a3e8ccce71a5898596a27f3751466996e1bcdacebc6217cb7a0187b6c2748a4455930f9872a6f7ba96c8252c9543b7f3392d61512a6106bafa933ea7165a0a7e2ef1214c20bc8ee68678a6330ac0c41d9ff0714dfcebf27aebac1943ffcac794ac770da0bb87351107fb9b726199ba99f29c681bb724743037436540df59a912bc72221e657dae36820f6d2c48a0e73ca5a5ce9fabe55d6d72ce6acd6f2c81f3e2ce6c406ecf5d007951f73f8e41277741b6c46cfffa832d0fa5d549a5939050a7bf6c9cb395debed5137909c8d0c5af069b753bdf95949814219d71bbe1f0fd97106b23633fac3e908bafb4f85b1b4803a1451b59bfe3f9b2c80e33b5d730a5c33e46912f0ee428756287c974834c35d768c42d7cba7e861b7d7b2b4010ab9143afbe84ae7e4efce205dad8f124be6f8fd5ba483183bff1fe7c9fca13b972b70b29a222f0cabb8e20e89139838f7fae0efeeff6e30f3810a459a1c506407dd3fd5da3bdf0e3d2e59f98a091aa45aebbcb845c6198f055ebf07a77bf6935347f9e04af150f2c465ea0fc87de669ba756046dcbab2aa5561bb4741ab6ebe2ed8760cfebcd98d9ed00d0b9323f517908214e4204fe64838c0d92c9812a5fbec6f4adf837fc371dff12a9a5be9924d111de2c83796e688a5fc6617226fe9361cdaf7e99de214cc1cf28a9f3b1176b5d595f5d8bcfc13c08f009119f7b5ef5852c1f83fcb6086d4382ec8b6ea4238a788ce6b72af27d78749c20335cfb4fd7e48d3ade77fef989ec5b1361f6cb1911c55197a48c0e24a3515b439c280499246415fd6f63c69fbd8f7d7fab4529c9b33359aced68b16add3571389dbd4bd01739681386cbcd51ac6c84deb31390f31b6fd75f90c82c502008bf4cf7174f63163489f45edb2ccf1880bafca425970d0321386dad0f55c98605e740f1efa39e386109c64725a9ec57b98bdc846ab72587b0007d87e20dd8a98b54d8bcf9fd220a191db4a84bf2c085a9a493f93e4be2c40a58b9911603ff20ab4e26560ee69de2cde3ce505e91deec06c0d1c5ce9e7faf7aae63454d398a16aa3f41f714c11033ed413c2dc9cc3e809919796b18cef9901cfc7dd64869b602f060829260b849b71ac9349613b7b61347237143bc56c4209d9393d653b3ce8f1e846f350f7876fb12b2e8b81fbf61545f8febdf3bed0ce44fac299eb47f204fa1793047a978df90f3d92cdb2409d069c16df6ab1586b053637f4f7c5af94a0c1ae2904c3e4ee113b6f12b0f5f4ccade6f059152c1f04097c49419da19136e52c882b96943efaac675d843975f225694319408299319271da80f18c5272c8cfb9fda3036262fbd6605940dcb2b900ecc7c60e4615d8ba777a8d4e948f4bd8bc0eb85950e60edb527f889e6ce303b131b6709ff22eded4d299a13f82c1bf9bc8432127555e0758a528d020f33310ac26403ab1ffb294412994c1e9f8e22b830c21c96bc42ec431eb86711aa660e4490d3f2130a3850f9dd2ad8f8f5b80f821030731d84e36aaaea35ee4d123da48500905e473e62e616d3c44472106477e0eb7a5458917b4a9ad282006f302654bcdc63d28df49eebdd03582dda8047dda1724505f1a14396555ea4e0ae4dc76b447326673e5497174760a6654ea5a70d73f01c29b291c9576b24b4bdb2037d90a8d0edd0482dfe831da2de2022b5ac48c9ff8c156a21c56563306085cb95d49288c8f9706e8d43c7293b2d4d5534c5f77bc0177bb9680bb0c091dc01ad33b465c3d61c7be839ba957de0d6506626e61409b12902a80beec68c25be33606b2dd6085176001ea6d01d060d4a630a89f14109a45db8dc5809f84b4e3bb6f0b6db70f34dea66a08fea8edf07290120a2c079fd654c222879091eeeec9b1ea7494449ee7e16f154d34381ea5a64d441825f672e9baadf903e4324065ab115809fda30b6617483ddc3ba4a342aff8e8e3588801acfdcc46510554735842e215260a3ff83b4c97887355d9a5a75fc487474a17b39d391bad673641f9e3283694df6b5567ec84fac0581cda6644f7450e750c7fcb0e87267008fd77762be96b74cfde9a62923c0ea0c15474c25c693dfd547e0cddc94e3ec10bacb92a83cf21e68548412b25a3f1d1d0c3a0bf15856701b774cd7d4269eaf35417daa403466bea3fd76087a9de2bd1ad19ef7fd99ddbd4c25925a62f3e1403054dd0fda7c02de60d5a5914fd620ce9d4db595afc2f700a039bb890cb429600baef0c843f70fa2e7eed30b9d18dc46115b56f65c0876bf06d3654e0662a03976aac3c90c3ce766e384c35a39929f45ff9b678736af96dfa51ec29271788e0b3010affd58ec820138e443cd10eec1efde9d615f24505d27171a70361fc427d6fd6aa008848064395aa229268bda31e8e939697ae36286f589b27e9641e92ca84d80dc6888f65fd3910db574c914bb005baf7ba48abadc714784db8b287e39b28b4fab9c9acaa7322d9cb33541030c1240b7d203035ea230b41f61f802de73e1aed6639520a61618739907f5a8c1f6e6dd23d49b4d2e54897440463007f6a35cded03702285e2f995320c82b235c744fdd842bf64af7b9681336cd21515741ea26a8fe76378bc4944454af7f6f29300"}], 0x10b8}, 0x4) socket(0x18, 0x80000, 0x7ff) r1 = openat$full(0xffffffffffffff9c, &(0x7f0000000280), 0x1, 0x0) sendmsg$kcm(r1, &(0x7f0000004800)={&(0x7f00000002c0)=@l2tp6={0xa, 0x0, 0x1f, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01', 0xe31, 0x2}, 0x80, &(0x7f0000000400)=[{&(0x7f0000001580)="796809fb5e05bef2e9b1aaf8f0471fda2a4095e31225d00ea58e7ac503bcf6ef4606b546ea436b57cba40fc8a52e964b5cbaa1957b226b9d2272c5d6fc5a488079563e33507b66cfa6bf7cb10837874de09199dc044a5e92010b0e6a138a8ec3ed1fb845f4fe1e6b0f7e8ea061297032bb6df17fd08d2bdd285a4c7604586c7f0377975d0c0527a79737c8cd7e49506fd693b85c8de1b290766a4ab4749e3d5a1875df66f63d8e0bf62261c5cc8cc3df4e143eea4b00748850a9926d4333d1621bc97497f7b90745ef650a4ffde9dfbd01b912c73a60dc87553276094a31fc8fb534fe67d7aaf733655f0f80f7ce9c7880cbc8f0c5170ccb313bd569245d92500c7966615a33f45e8b9639f3375dc7306c142199c7a19cbfadd9be2e3761424e5818704eb5a0ea32235bfde0868a28e75c7c5b95ac154603c277e09f8c74a40483a8f0442ea516ca96d8eb3941f6c743d26680664bd85c1ad1b1bf5240d0579adc25cd6bebf0695b7bd82001b0195c003595221942377c8d42b97e16e8676c06dcdeff593c73acb971bef1fbac2cc8c51a2b61fb7b9fcfab80a5fd505ce4478980b1eb05eed991b84a6e259260226551d3652e91eddad8b7bff1db2b727700e6b9194793fa7bc19893cdcac2a22d57dca312e9f5c5dff82133559f5d5a5e4a67f791386d5359ce4959937b2adb307a93d3b998ffe641e0c52168cf3206d9c731aa8c4d7a268d5c0aa373fa3918a0f31383784c7c77ce5196c81b7d9c6cf3a60c75b70c178b5ba2b75b121fa9bfddd79eeb38463c1a17582f5225782ea12a479a8aa713348d744134082ef47d04f573c312d005c12ca25cd1aa3013198f675f40abdb62de6c09cb46cb7ca9b09a5fab82da7208e091bcff0ee9f59e24bda609a307eadb0d5cad8f4732518123447eb3c8c17d737b7ba810ce2c3795ee55f4ad411b595eb277e26f756bfc560588e431281a198df04f4c6b93c359d8391deee653708bab22900c46e7354e913d55e2a9bc53aa9817212659eaf2e043ce1a0fac5b543a6ff6faed868f58fc231da7aace20fbafeec64e05e945b4a447f0c9188a9209b3208f3c754cd7e7822e9cbfc9b91545e976997b9a15acb335e13e6de9020fddf81044357f1440fcd36a7b864bb1a7c5887e467768e2f7e9d11b6adabc6c8dd3ea9f1de7114bbd8e62a66ffd3da2c8665398d94c9a3f736fdd9818da97467f3c78325ff42000e867e3244b765797cc55cd75297f08c9781f8aaae111dcad039a4bc1be807bee2269e7d524aee58e662062808822a3b051bf12f10d98e9833670b1c2a2209272a7a61870d6e41d377fa79cbfa98bd3fc41262a4e96d6df7e0e4de88479e0b8a7e66ce45a885279ee1be893a4ed590d9989a1b3657aa5c1e9869a5204d58bcde0caa8e3dbf0fae3d4c786b636eb95c9980734564c7f01ee344ed2e7b5dc9fe0be34b3d936a7122e6a5df837450e69152d0cc8c3aea014c0af732f8d7c71143d32a97a7ef8836cc4c6a521c7edd5232da048969c30c4dad0b3a939fef5d2a045b13c8a65fbf69b555040476be9865fc7d66c255e95ac49c56f4c54b4cebe66a9a4e2e76a17b1b8ceaac9f889f4aa2e45b7c903e580903f1d630d8361e4018421bf248a3f336abee87a993ce087dbd5d8ab4148e215764ef680180d33970efc64d8b980b38ff6030cac95077673ee447d631cd8ba31003e445ee35a097a2bb3561ac8bdd0dae8f58162598055c91535dfc791dc0a08182f5b1df506c4a0019be955cbda22d7aaf8588aaa040ece7f7d9c9b0c013ed230e5a724f020e468adce053f04038b5cd46333164f6760d704290b74828d8b125395f881dae9a459d61ab0fd635b5a000382bd7c031dc7a49d976e272489be4c1393191f1be091bde8c3aabdf944b9b9d76fa8f1ae5828c444d88a8a65e0d255c50e26e759f367fa26fcab9fbeef53fb547603dbb536cb4d49587b565818c8a8849bbbdd88c108cd2a294285b49c6e6006dcf1c5299502a85c696619a9f5a5a90e272a754e84dbfe6fed21963aa4ee5212b4f0bee66ba50de4a83bd8489718cc6a8d498be90d3ad5670f4566cb00fc06a857d510b4b0cf33fa347ccf395268b1ebc5a385fda541144a9124023178b22fb7febdc13d58864cc3a44c3a14decc3070937c8ffb5cc6b0ef12ef4342257214b74e1d27cc8ce08ef381cb46662e522132b4e2416338ecd9b7bdd0f2e066e71465cd84146a6e8e92b3e3b4399e17c0d4a6c56c441755219d306a7738d00864af46f668e0a6d1167d53b15cb1f24f9139bbc5a4f7c3950d04642496be3e3f177967f37884e0903976643b2ab868819ef40f1425760a42b23c62878b25d0d6104c15496260ff4fafdef058ca8b1c50cc323bd78f9afe278bd548a21aa2a40ef19c4463776abdb96e625d37c48dbb99399b9bd8233d139b3a64738d4d1ec0b2aeca85383813847202e503adc70e69b0818c45c5bbe2941695d1b81bf4a0597886d26fd43f3dc1de2d1dea233c654b138e297dad7ed6cf71f09548277d05bbc86ec2347c40119771cfb5f56c760c1bfc567252fbad0082d6070b41499b940336093b17b4163cc2b901010e978462ceeb6fff44c1eb7a1a2e0e8f2d9c388014c1ef6acdff5016482523a11acc06843a0eda9594ee1b58018b39c44c58f160b57dab659ceedcf35f236c122e7098194bc9526a0f6075536d85ea0f9015398d13c282a176cc912894d2e750d4d0aeb0ae8e2224df2e697d41900c97a19a15c3d0d50aa4a2e3c83df327ecd0aed32d80837664b6aa6b4bd05e24b4945e09d6827c0f948d119fb3d973dee883bdefe3a537885b33654016c0d58c3f2d0f46337babd7118868368ae47897bef13a1e349d96ff2294fa9a4a8dc19ddc9c0b0bb977093a65a1dd6e6c6542757ed43e8400c59cd495d94f7e08291fd14637c43ad2410d1802feca280c61b15209013fbe18d5e66be7f400ba3914e203cd4c933299b6da801a27fd018328d2a17bd1347ad74c5ee0f25ffe498f4b720fd513b30a0f48a9ac2392e4b216e7e5e1192d45179e578e089fde1a7f30402b4bfd24d0ff62798033deb7389475e0c1fc179df2444ed7a4d4962867e311a87eb66f17bb4c097fb8133d691a480f104f580e5f49fd4c0713610ec56a46db8bd2012c51f545916bc09af0ccaa23ef2c60979b19d088c13e041a03a3a23716bd1b261b4b0b4814b47c48d5707dc7a1150f846b3085d9d14fcc770a4c5ff7d1890c046c079455c1d9ac879c67f8710507472fff39d4cf98751042d5017901ac7f007cd9f2628ba2c0784b9e1b1187918c9b21b74ae48c493cf18ea448c4850ba1774723c11d345f724d6d3e57c840f7fbf20f21b86fd098e4c969aa98d57cd8529ac336c3f9b2809315cda226db3e5a26bd42c4ca7f2a162b44001f768d91b398beeded5b76e1aba28d9743b69231bcf2fa2d4d0bbb54613065ef332279230e8f0fd08b453a2ac56299943f6328b7f95acda25889e3c1d1438d93a8d25835a0109b881c5ab83a5e0185bfc7abb4463a3aaf3f135ac18e5edd351205002d1f775cb14ba72b2e0915d50186bc7a703360aa8f0276ef1cb9f8c3429f6cb59fe744e3a61c1c0dca9a9da124d61bad302735c4b0f9d41adac1d6444f103e47d24342632cfcc45e42aa521585a4d0e7a02cda205de90096e14531d949d37f035b27476619db4fc6901807f51303160d7f4e6a843936385de052d1f572700139f113ceb999ceac2cc32947a21e2f0a870641e11ac718977447f9771d67aaa6f2a4e46879f803798905526b234347ffea9e9af264eac7ee2c1a8fb6920e758c4471cc459ef6c779e03e550b3cb17f173124fc4ce1318aa1c0bf127724438bf33dacb7026c69a3b50c94f3097bf0b1258c846e1d86f1b5b562715792ec09249de12ae5876685ac64e3592407de1013ca3d94a2003858c8e899707de1baaa97af235d81dbde60ff19313b2539b1d6800886fdaef7933bb47c660b17a2b003339c85f30bb308c5dc4bc95f6c2d96df40dce86ac16fa3fbc71594e604e956308948721eb7eaf64678350bdef6f9ae211e44fccbfd3d57eb850bd49f6267d46d1e4f750550d77788a53dcdb2a22b7e7d0ed7f9aaf61a15e8990880fc5b9e58e4f4308389b3c1e296a10bf900eab9ef6806c5b87a3570049baf4e5e154f8e5db1e890c370a93c6aab0d890c61790104ff4dcc558468c837ad187fe8b1d63ad4a55b17ecadfc4fe6a4674d9a723fa58df1e6b2cf7c07debfae2e6d3536aa1f4e7b0f27b31e3706db73de112c431df91f844ddb3012e7d88193d3b81f38ba546cce43354461a3320f08e40e23c435e07a4fe9fbd7db57dba881b889fdf20c68c7447f5261bc9ebe931c570e34a169182870cade50cc2e456347d9360c57be4962a9e4400908e21e20eea2f2449dfcd9eadcec04b9a67e617af8bc6851c5d7ba3c4d8dd3e4e410e0e3730892d66f3d048caa89cb809d3b1487705dc0188f88e77b8fbb55aa3ded5a4611adf74a2b4e7124fdb5dbd1af64d31ecb9737ec3f31c402c3e80a21e0c29c8adfea76df761d45a260c8f60f12da2d75a0e46a6a5e336f74750186be68532261065a444311f9785904afe31e2e8f1616ff3cdc9593ea5c0d3798d856b4e580d6c328b87387a1ce62967bfac54e119cf0a3620b2bbbfaaf089411914cfc5785ce490cb3f67543f606ece5745a40ae846399aaa5cd353b5923064327a78fdec3454b37c41df0fc8758786a0cd7cfda24b049d2b9808c3356214d0dab09365394cb0facbd8f315f9c5a757422d5ac081a77e9d73c63c17eb783828b10613a815dc27912eea476fe8891bc5614d192dba31b97f06e9ded12ed08c0470fbf8b5043da63bb262085bc1fc6bb6ca4c06cac90560d2741de4e15a4a1ad4528f9889a5a199701a216e339e0e52008e4d51f1d19880feabf1642def1b2c0b03efc5fea51b61bdeb11d0c8ab1ec824cfa31b582680bfa0eda419fb0515d4d34326dd1ef71adb80a35dc7f4ddac514fd50528c25e91c861286cdc316fe804b263f6a6f8a7b47fe2d6e6ca5bdffae55616716b5c48f33e7c9f565cdaf189c6204d122568f9429cae745180ddbc84b09b813a4af6d9e7174b96cfac80f4a03689f1d2a0ed6b5988f5afffd9d8552db6f283dbef10ed4279ec8cbf54a86cc6a9eabb88478de17235cf7fa0098a2f9066d7d63ebb9162adf7b020fe1b1dfc5cd100fb7d16f516ec073a6240f07053a5dd29f98dbedd1b38bb39ac87edecf1ec8abfc75aca28acd7ef9006bdfda2800818db1ffce78ea1453d6005268ee9d752d73f4ecc9e500008d90a1c12e53476a9c3b8c30db377471c213dcf741a6f40540a8d8f7381e10c97ab8f258068f10d44e132806e2d1a50e3d44eff7750e434f9dad1e1f301429afc806fcf1fdeb08b95f48413552459dff1c2c6997cc9f143274afdb20d069d726958d2c0c075e46081c4b462300b16ca69465a67cd9036ae900e3e10fc7892f43629a2c2df49c9672e07f62656b3babc759fa9a86bbf74c8ee7ec00743a1576dd1d3452bf4039418cb84f1205f832fd41b0ce02c5303cf2c5ff4a9425f2ca7c5c76163f2000dd39383e371de787ab9401b7932c27b1425d27886b7da9ce2f819cc3377029f9de7b29943dcdd222b4bd02b75536632d5d92ac820d9e133950d6ac8d65c5a4c967772e328388c57fa4891b987dff3fae41414f2be34a4bbc2c7a4ed57d3afc7cfdc5bac1ac4c9863e5ae67d6a2f9d0a71b34b182943b228f7c2cbfa53e", 0x1000}, {&(0x7f0000002580)="aeee2970a692f43e4d2eb1beb3c51234dbddba7a0f873d953c96531afbde86a4565100b4c0aa0cd553d2e221a3686dabb7afa455517eb3f4ef231a5e9f9b83fc26dd30fdfe33349bec724bc97420faf10b9b17bd06bfccd4f6b7f2c58769072b79f6fbe349541729fea5aac4e629b78df052ddefbd21355c88c6260c97131bd20c053dcfb75d38d46068eed030833ae810273da0dd5548f65e612d9012932ac436953896b0a93b9adc04a93a8b0366747faae5c740f5524b00cce15eaf5036fbcf57991a00708acc507bb5279075a656a82d443f423b5935d1134a8f3fa20e47b47b9f21ca7b25398ddf05026f46b8db4b1c8e66be22f83aedb32d60d60dd9abd01bb63f33930a9b79907f95a69150f479241b9d64935bda3e4ebc426074f4667b467af6063f627509ad5966f6f21f2d985c92a88db8e22be61c4d9b13fc6efdbc8cfeb77e5761859afd605f4e97109140757bde1b1d6449c59b3a52c6661ee5fac4fa60ff3c111171f5d41f2e1f36a73fab6babbf69248001253a38f0f33015d3f86e2835e021e6c82e5b8cb314ec1e3df50621b1c624c204a3ca88fc5e78d77f8308bc0342c184a125ba272b984e2211c57d259725e35111b922dd8d4b44a0b50c6335da46ee8448427caf61748172ee9456e3ae26635449adf1cc67b076838fe06b7c5d2ac304cad2cbdebc665351a4db040a9f734a55bb29a33d73993f965775b1cb349045adf7f06a8396393b363d7c9ec3de47cd5b71261ee55a4b5ab76ca8569f252a1300635ae63941a02335a7ca715e4051fb8eef5883d6a1f36f1cf3531d3ff5251bc8d94df2ef95e4a48a326e0e93f3a1e7deb159a39f475572bf806ae52170105cb177775aee18d99afac3b43e09e73dd14da8c510cffdb5c38df9405f2b55cc3f7753e346dea05e9ee8c5774ec0a7e8d5110ae38dfa27361012fb6df20454e5621034506d3ea9f64f847297410f7cd017b73b94eb419133c3c7190da8c679ae4ee2f7bb7d090744d834f292fb20570fa2774b6f4e14c27c478d772b630e40e7fbc3bc377d2250a29987abcc8148d2a5202165f763dd71e62b8ae7dd72b4b3da0d265964642f40da0dbf413c3cf1c186db4579d84e19d3cd350a8dd6969f3468141ed6274eaf5b01a102e4b0e799db7f60e413aee926dc50e7d7b146eb3bda668b896ef55bf31d59cfba3981b9dc62ed60087b07aec9fd6e8f74a6e8ae4227fd3c616f30ef49309749ebe39c074ab5ccea9b0033b9ba630c3f15403daa454949b2dbfb012c07c11ce25ce98be9ece438f72593a07e5adb0f5b5b75c32fcd18086d6f0e6a42dc9137c85188774b0e22b82f28ac6fa234a4c8dc49486cf7404b8de288ad0fb31960c7db037284b868309d2f500732f36efc385aab2d61bb300079f66ba5a6fb0129af9a85827d4d15d565a9006786c07980c879190ab389858b9329c147201f8f75c0083c4f64020ad9972c1ee07b42f27a847ac2cca4721738b00a2487f688af8e553f239fe4ba45c698bd5dcbc8f4b560d18430e3502d44c39e832ab6df8ca68c2fa18cb2b5518baf24bb46b21232ce8d5df0262fea4ded6ca79b58f9e58a440338a4ccf145ac8c8af559ae878d164a948b4fb5933a3b2d75c8cd4df6e66dfb5b8642e6e0b19beb9745d8a2347ed8cdfb3039d5b007cade12ff00d1728690133e7f9a8dc98457226effe61ec8b10a893104f648bb6e99bc1e7f6aa79f065dba0d3fc29ffe8776de7e1ddb8a4dbedfb0cf2455d443d2b00e34701483334e1094cc9b201f237b216219d68a004e33a1223839c196f37482a1fa3775de50d5c56a70cf4cecb04bc30555a24b65553262b0c23987214af82b7cb9287923da5e84493653b86c55c7c5ca27db275593d60b4b2cd6e2b74f03f2fa2dc15c799549ea4458f95830fd6598ffeae3c0e9211abcfe8cb7ba8969256a0465bc4a14aa174172a99a1c32636cdc0f7448ed143147ff5e12384332a387e4e1f59e132fd6d53c714b358e34667bd417acd6ace1fce00c494b425df32ccced755122ce47988f72f527cbeb73576ae32ccc73087cd8204f8d82cdf3407677c67e20ab60554fb7fb3b217bf0dae5c3b94e89081b6adb59c1c1c74c5402dca9ccbf2831f8d68c7ac6a1cdb1813e5f2cbf94472b95a823b2a9eca428f696e25248396a8645996b910f335a018b4a0d3e82a55a2960224df2096a324c199558a88c0e93372bf975094cc3789e3cfaa502605c19e8788156cdcc808290ffe5ce10f8c5431d46cdfc8fd834fac65b64359d18c75fd7c2c30056c26b0dd11363e487eb249313a5070940aa32be95f40aee6c2f439b92db2a90ed09bcf7235de9d6d68314bf7e6c750ab9f78eb3525ce3175dcdaa79b2fbdff8ca8b9c42d066728494c097b6300063c088869979edcf10a97d579c990c688159cb5eff5218f11b5da55850d467cb0162626552c6269ae48523045073795ae7e366018fc67031841420f02f165656115148541d47093234b47794640400d32c556547c1d1078731462a0ad19348fc082eb4c6e86b3eb6c01a3975b63851a50e4b761a4037514a46b8a6fba024c5d0ff29abad16a9f4ec171dce860a2b6ec279b754b91be7cd7280cc551194cc2e6baccf6662991ca2b02260ef72119bce1e95009db1106ebc5c4ed9b83e13ffd5b51298c6c0333b5abdc4afa78c40c7df78fb396bf16d6c46b63f0219e8e86c15b6b5891437400faf90b3b09ba0abf0e7d4004b150423649509ace60958fb6cd52c9128e30ee3969b0063d71c94aa7b7619227e7c871351337738361382bd59e42113989a3e079a6f4a558839b5cc98c17bfc4961c1788b09593d6c6a04f9ef87a930bd20d74dc554a497ffe8389d05c33752f25e92a05fa5fc5f01a2ede586d3476cbcc75b6e8cbd7adf9b2a57d7449bc4d4297d4248b55e7f2d37e0b8956299a7f5c646b13cbb272b2f0972f485a93f30ab59eb6c7462fef7c8c1ea8dae3c24454ff37df587cc690cd1ac8cea58c062d68f5f795206c212399375a929dd97e1678a2610d10b11f9066a8d5b5d993d5ff80205a130f38054ef166c3bb62078f3d8ed04862e690ba9405c41637602d1e5960c835595b9d10e955ec3a861e3c836b4d08f2349ffeabffa3f49ffd0b7d22e992de7eb4e1cb5aaffe5eac24128be217e226328af45a8463e65a566571e4f340fb100a257352bf858212b0c4e754a053686b640f074cae8ec709b3a157eacea67a1fa48bd1a1d2bc6282cc080eecd0627f8db79f80c8e2fb6a5dd583e86f2ee54a0381bc7ad867ed9d884f47a2b3e109c26378fd0086f504304503b312c0fbc818a5bc8d578adecab4050faa10bdcff5181f4ae08b47e9533ab40554e92af10519ab43b3fc78f549b53fcb75e7da0bc6b04442661be4578d253cdea60622e3defb2004150085d5b40bf1089fc815f0e5f21adb3b8d9e76c6c0de4f246e18e3b6c8f41bea116367d290db252f742313d926673e5efb15c8131f54e36bafdb1e7ccb46e4033b8bb460ed3f78812d08d874131f3a81f8a76736eae8c77030907361cb88e54951b8b5e85407e8e4ec33306ea98c638e366e5bbab09bccbb73e5c1e05819bbb64540ad495d37af3358153d87c9085092b53b61d8f9e45c06bfb65e629a574628c49400567ecb96015986a1401ed3b7623611dd1d4611139c013ecba0de588f8075b12c98eaf6e553520b4b8ec3eaa33159acd5184ab288897a7cf145144e0874e685a7bf5344d2d3bd465f67c0e620fa9cc840933377d538ea31864919482866f171cc4a50a338580c2fbd533b6f8b27e0c30888b4931050ea5c18fbab80c1a271bd7de352df772a18206d48b600d37466e80434fd5999cabb8a508cdf1dfc6ecb1c49514a79f771352de1972f3c53f4c45b1c2b19b2f55224f2f868a47d3239b9fde6689dbea42977cfcdf24213ebdbda0c4ccbbc7a3f59120a9ca126dee5cf1b4757a1a6fb21eaf807510ef94a5e5ba4e140413dfd24aab07b0ec05637bd326e1feb503796187e8291de3098ccd24a7348f7e6a0d52107f65cc7ac6029092ac4e5a76f2ff6d60af0a182340c326786cd244fe3a29e983d3e10b1b5ae787684d32c6947ab06ca97764adf60c2cbdd893dc971021d28c8cb42ec2ba97b4292abd304b5ee1b72bf87ecdb3b58bc824528edf6760c8f64665b1907f7d608e7ece2b2bf9dcc8db44d311eaa41311ae6714cfa6b00a8a758346055092576e409b4dfed5c21b964b8df7194b74100d11184084312997e8e192ffd9428fcecc73351548a9a1f181c1242cd6815d8fa738fa8bfd820b4b736ece312426b8696f66e0dfd4f41deed96d1a9b37c25d3b308553dd0e4e35a77068a56c1b616741c55ed5d99e769522d80b67e51a398ef21ef90b9a5d9c546d648ff16590f0603a9b97e0623f339315bee99ba1d3b36bb6128d3a73f9910a057fafcb249e0b291da5dc7f8acd77a6d9d1b41c1f0527ba88abdff1b3bc03505533c071d7a4dc4ad69b818f4a22d3e2fffdda32a2241f42c4a7d32b4c8cdb021fbff3f1eb0b6b87c09a13c12baea0a8f510374b7b8666486cbb0bc19369f87d7e88f163db7ae0fff657f136b57d2921a53fd8a3bf1a6b470f65d150451983dff552149e1c9a32b006a490978757a1f5cfa11c6712c2d418c284c525b32279322c3bb3c633d198111847b45222a6d56141796be16fb42bfa43ca7c9d274d54376dc3730ac553ddcb2b2d0f4c3f8ed2e34a4e0fdfb9befa7ad9358a9e221e4f3846be08608a354abf1939f11ca63a3c03de484fd288e28dcf845bd9549e0304ff4fdc62de2cc27d7d7d2400e92c276f0b247432cd7aa4141b19b24ac239d9e27cbab8a4ffc726b613c0eb27b31894bab953cf94475a01c2bf546368a5367eb2514c0c50eab207f19909c63766d79be651f41f2c53a0f6238fc784c08b2efef39fe21efabb1e5d9181a25443730fc6308cf82ef49ada3f27d60b2314cac992143a4278cb6457eddd25dfc48ffb0d7665e1c1ad7d0c1de94ee73bcec9e32666bf01bec5e88119a241517951029351df1b55fb077f86d81e76ab22c6aec921c857e0ebb6fdb1e6c04783698365ca9cfc0f6fceb8516a2411c8edd83c454fd071b86acc2be00eb8fb4ec9474c6aa0e7ccc041ba08e334370c93d96651337d1a294588764c1681f7af9af63feb3cb9299221f2d9bcf6fe16ef20b8ad0377def77a5c167b8c1a9ee9dc0c56e178872360b06f0454c6208a1900b5a832b9f7c110b5e9271de3c0fad84a62fc5beb43cbe46a12c71035a7f2be6572a8ac9601aa6068a5ecd1a3eb51f2ac1f4134a4044b59a5a4cc71973b19c14518192d8246f62f121685bfb8a0cc3fb78afe728cb25eec9d7413371dab6d897730a2cdb2efdc88e97885a1b49f681789700f814e8ff591c60fb411f61064087febad0d841296fd495c99deec6b5a00b81d6d0214fc64464be9fd1fc35abccc510856e83bd3abe31fdc04c2e2576d0556c1ce9268d3cda77267870be992f2d18d14104d0c721ec260feec7c6dcf1605cf1dab211aa35524ef8a8702e22d863522a9dec0bc8863067dca8eb64cc7bb52f3bb4be6bc4fb76cca5ea7648a6bd35de357e68b6b16a942b0e8b6c35c27abbf64bfcee124d69efb4db8c7706db649dc651ae6573540e1cee96a61a37314d4b43be2f0ccac7f2dd1cf74c960037066f606c839f37f663e253b215f851596033f7759d80554355e8beacb6a545400facd0176de62db32e9dd9eefc11f87075d757a1039680418c7776e3a6ca4cd08", 0x1000}, {&(0x7f0000000340)="18389442dabdf38465f2d30cb22ec199008e0151f8225c2dd654c8d287469a288f299017dec6f75a852c75ea28b2aaa977e71b7836e12249019db2", 0x3b}, {&(0x7f0000003580)="57543dfd9d5b4bf9346674264df46bab9512df8d6250a0c4fddeb6faf4fcf3a7347c7a4072d0e3c51d7bcf763dff9414477ca513622686256016ed984707b7ebcd1be193872b0c202825342bd2449923ceabac9e33f60cfe7602f1a2bea6905eb7523d261f14a1f0c841d52f1387eeadf8775c59d294ee6974efdb431e9a712ac4d4f490f3448a77a82ee6ef557aa25942025ca9b17ba3c6ee94407625a59fb003f51f8b92fd1646137411e94e154ed84530fdd2caa5a61753f065fff6c77ac5c2e723bcd06aaf78301c5a0c108f1ffbec7e7c4ddc988e33639751d7890f257373dab32e104748283473b3960d699fc7fd252701b54376ca636b6ebc492158b229db4b44990a54beca9acea25251a805fec863bf4c2d50ddc0431b851d5d58732b81c0ed1275e69d0d597895e65f57f46052e97d556f3429100779ee3a98bc60664fd38e4e36d26a443c1baf7b9e75bc428ee973fc5bf9b49290ad401465376ab1e2bcfaaaa614cf5e74ef6e0f8ebd962ed5fd5e41c36ac6e053c8d711410e24d0a2551c155af7f5e73e7e918fe556c41e7f1fda4d43fcf74207d54a7ac04d003d99e9e814c825e576d64b03d24c505f14c3c301af689c1293cb3b8257045e2b3e601655070b877500bd5109730a9b2e01a5d8f06950978148a4e5bb1080f51601b4b870cc43d6b36e84f6d6ed1f1265ebccb2b98246a6d31200de07eb0d646dc8730389dce72c5469532c8d44517ece2c3a15b449b2d2cb2d050772705a9106401600f70226eb44622635ef92cf8c1a0d2b0fc23e0a9743cbe4ae41676ea5f11cef7b7a9433352b849534efd9634a670add36ee068517f4b346d9cdee6913cc10808c87cf48552d1a06b6fa347f11cc7d90701e4a4a6a12ae156fe36b0335f112a9166f2e24888842b0ca06d7a55555a076b5b8439b7f570bd4d7c59946d123dfff13a7065963251d7632a88f14e41cabea371cde21c69be868780aaa63ab07b151e9e3165159645469fa4f0945b257a29ab9e8e9f575fb65dc0070a3e4355f02f635cb34f4c740af2e943b36b3da38185e5d6aeb6f09c448affa1c7b8cd0165a0b5844b7998cb94824ea2c1d3ae6aa9dc645ce2f83ff8044ce532355be1741b650f6e51ef82a02e88712170290567d85bd63dd8f905a4edbb4fdbffeb74300f4c05a200a8732cbb77e7bbbab0635a21744f030bd0bfe9997f2527d10321573435522cff95b44e28f81e92b1e966f1195743fd8b41f261570368cd3588df23c4e3e7d829331e8786b26aa5643c2f89543fc266bde634e988fbb9f049f9305bca4740404ee1505c493268452630f0313b2c9721002000ef5b5cab7470ec67f95ff68e4e2c2f3f02510d7d7889867fad9ddafb02ba680173ab81d410c90186982f9f8b7ce43e1ea5c3ae36e9056f9a853df22d1820f31ec094785790ffc83b318d1024772331055809a94b2cd68ccece4d91e0c08ad53ac208584a641317b65250ab41c4cd9b6f9ff3e96d7c62ef1ed18e68e406035b67973a6ce432298f8a658313e2d30206544c9d3d28aeadf111c2ecca67adc66b05a44cc958666c80f73fe161acdcd18e95f67ecc48096ce8e0142ad580a6b82cb2671e896f45986af9db028956b42ffa063893ca6251ea3e4a700685d00bc8c2a75b35c1a6812c4e9b41585be76bb9e148fd32ec3aa7967e9fb109ada630b89050ab90b6df372bc76dc13933e504158572d28fb6cc5ecc62093fc266f862f2d2c059e3b7fbb428cce590d82f31edf4f2f0859ea822419b2e66d0af9afb0fb6ac338f53111a807d6271c8853f2c9d7dc725609807a2e0823e0a05e02091e2593faac3de9139e5d3113d49d36c301235906b8008980d3b087e3d208c0c39d05424eb25edb3f067bab6451f00e1c5a7554fdf729a13b0979d57330bfb78ea8189f2a2a8d78cdee0677af27763925eb3176f26aa369b6c2a3a0afb911c45ce9fd511869a4363fe8d655e6d0b792a43e2964accd0ef9faaef7eadd2c236e8c73fbd35aee3f3d396524d5e6e49bc1c27d0a43bff62c31d8d51419fa8ccb5975ef33c79cad26c68041baac7d5d3e66bcaa5c66cde8993af49911092c887188d31605617f6d9e5f883f1d79b95ce13aa4f11a6015a471c5e6d5fe0484639d09a95efd429ec798148987c3acb8a2117ffeb39e107088cc1cb5640c17da3bce51c502ccd8ea680cd438c13ccea2769fc6e6ece119831fbc14c09c36c42bedb14ce7eea7a47140701dcb8c64c8f166cc017792e0e72cabec4249cf5d7453b83012e09f69a640073eaf1a4a05fd888b02c1fe01db29f5abc5212b9b57d263930094462d98842212ef270ff8f31f06d4c3c5e0a9c2b34a17a73a0d0516c742feb745d30574e0dd2074dc3c1d47ef90355e619bbc93611823c112c7244435f214b1423b9fe4ba9e04c2c2b83e9e238df8a2e62743081d27049aeb47171049adbf0b9670282c288d3fd0302f4e20c1a7ddb107f31615a5c508a94485a6e30221b9c53f3b617e44d6c9018b2ef99ae7b899e85c8065fd11d172f65cbf03eeada8c83dece2093da41a29933a0f282183f4edcf0ca1075b23051363789924875c629f9c0f4d15190d1e215b3cd00229041e386fa56bc63ed6adca2bf242e43e4a36fc5f7cb173fca42022dcfeea51a68591dc0b22dcb87cdcfd4a88b8dd236de69de78d0cdf2494d5d53294d9bf88cc6aa701cac49669879f3c229c70fbc080d7f20e948762e6eb1166a8f3e74189b07b18330dd3a0485971d707c1afe6b6f3ba204fecec09b45cbd8ba59c8f01ce9bf45c684ed62e6c16d725426d79845bde4ddd9ebcffcf24942087cb3ad9d31d6df6196452b0d59a8cd9f59c39cbde2638fdedca4c3d7aeee970940545e3aaa97cc9e6bd7a88bd45a53e3a02fbd9614212947384f35e4bb32d9abff838769e79af6c0ae62ef9973f700b8cb36388d321314e0c6576a223a769da90a373ecb8b79e41b944da410167762fb290e64211ce06ad68bb4219046909dd9e45dfb5790591f6ed477b5e2f50836d2cec3f9163f76980c05f2dd024a8906744091ec07919f1105c3dae74f8c03d18f592475475f64df857594db1b23d0df8e0ad4068fc5f89713ebe0f0c1943cd18bc53ea3cb69efd04334845ed720aef9a7915b6dcfaebb37c452310eaeee5dd516950c6c82a58a1ff875dfd9404c7f138ea156a7d71787be422a1639da892d8de382f0648dfeae4b0f5d0aa25b5497a6afa6a7976e82516c9324b2be7fa0e4f019455170d07efdf6ede98ffb628a1004442fdc4b318ff65a08c166a1aa254d1549e59e37f8eaec35c2b167d9e22c467fe4a5de492d6f3e2d82cbd6c69b8394c2ee33ae8f8929bb9c0fb7f8315a27fac4cf8b41b143babb6bf475117c27f017ada4f95a29fb868b239bf2a345e676df49e96c0274fb9857a5d6e8f6ccfd87fcc957aa881b7e5017654b0f94dfc8912ce5c3951ce17569ffb6b31c7feb977f114bac30b9f824d3baabf6d9e3ac17f16e7ed3b9851d58e5c238fe03e6a22a5efe6ece401ce93ff67d25163d230f00e82bbb384fd2a8651f7c34800512193fe8b662e5b8785653ef2506df3b728c68394a33e872b1647d19065fce303a44b6e0ebb5172bb195f2cdbe037181e38359c57ccdba730e419dca3e33cd72d6f2e223e792586b076490ff64d433e4916393e3675581fd933b79dfca5dcc17ec65239af9e5d9a8328c2b90ff0d0a378fae758a2a9e034291d92a10e659f7d7607405b47bde64ff38d7c574d402a433ab06276ac9c3ad3880b401967d4bd1fed24cc9dd8788152fa48fa70ebd486c2e4329076415a5c39ed94396e844330988b3a4e63004181ec2093e0e65d4d632674e1022280ceb300a3c01988de329807e9fc6a12038313da7b2ab5cdf7dde4ee0e0f8fca35562af602c148adf1782e8f124728b14c9bb046cb51a07c9ff01ba14e03d3d10c8447db9cef82c5c7638e2b03c3420951ad60917267cce6cf95994529f017555da934672898134bdf57255a2909261a7aa9352b6df90f717da26b99d4c173f51476633bf02de8c28adb70e5a2e6bfcb1715ad87252113a181ac9bad6ca37b9bb31998c713f910e8cfd8231ccf60f5f5a7a43d364b372482817d43387d2c2fe25c8b00e414a7a67cbdedcc41ad5552b748013b94b6089aefdcc400d49c8c469005d6c3de368d1fee53c400432f4eebc9c3703e9621e627d527443faf1ca0dcce0f4d39350835ce8c9c1d94b53d3761049d5b1e48a24278813b18f1c33c4864d706a21ad401cae43a47544b735bdde70f96cbd1d277baa74a24462827dc0ed03a80a8d40114e2a83f770a21e39f087ac4e6c647527b1e3cbe6f87d12c66c44359f03ee9f9e348f629095e76d7af4b96063b4a8e3536bc987b1d31bbf88a1a17a9d62d2d3256f44a0735c5a3bdba67bfff5c42d2eac0556bda13f7cf270d686a546f559cd89d6df3a4077e8f9e51b7118a56058b54e07226ecc806f1415404fd4cc1834b6e1b6513c765bd5470a7ab4f6d5b8111b05b5db69dca002c1557e794882ca02014c86da59694b8857f9aefc5f62f62704606f9462edf2467793e16a68d73a4a467b4b487353ac7c1b5b65cfc238cf69c2dc3848c1cccc761cf65a0ad0ea0d82ea654e25bdf56f837dfe708e53c5088f5141cfc3bcf0ece1630a5eb53286af304bf67b1292b8e54deb4622a72d17c0195f595f5c8068cdb3195c5a22afb939ac7ea1394a71bf0088ebb29d1d647dd041964239815ed07ed4d84e63f16cc5c664091f77f6a89f44bc0ce3fb3cb64448673f884f670eaf75066f1c08e39cb83a31e6ed9421b333ea123d2ea5071bb02cfe70e406a53c239a0c3b98f680d6f348b6db4ecf4bd0643ee611a4b7b1f77f5f6afb9672ad6906ad15628321ba163e4bebd02de432040783ae5cffc16b3ab9eda274636db0f27422f65f222168a790fc729844017e21607024036da330c4e31b0daf09ed83609b37e003ee1e63f58af8cdbb0d46901490a99080f25b758f50fdb6ce5afefd137a357cdd46b2e99ea1313672ba13bea8f940f12467e90b51698a88a25a58e875170cd03fa543ef8821eb6369d2b6381652321906fcc26a7c856b1e2692d8b16e233e2cbcb038da9dde9f7d81a2f08d35d415361a861cd4eac972d39b84b9fc98ecf1d739ddc10ee4b0d198888db2c35e8f5193406f93b531f92cbf6998d16008abb0fce89972ea962faebc8cb5637945c21af777304256f49b9c2c1a3708570db37ffe6ec356225f5a4222905adb2310c550d8e1190f21afda6b7a97d58491e33374861f338666b22013ab3c5b3297f16a5d2cdb7aa34a1e17f9b1b0af66703aa1df844953bd77fced17c1ff555b1a09cc607efa7ea31549adac13c360e8a06cb4a37ae60f6b940859630f03552548566f029d667c33124c84d845a6e25e86ac9b3fb88515d241e28ba3d0f3ed92dc4c1183182ba5751628479bbe3fa21b8804e2c85f1f5107a3447a08558374c886b6ddb6ac2b3d3e9c9f966de0bf5166ad8e12b58830794b5f6b8a09beda06a74ca57e2aed1d6c74fe26a4da20f1d7da433c1c326aff9a82436e6b95ab5092e3431f19249cbf75b6d7586671350ec636c249b4a6e345db21af2cbaff953b822da0e6427f8cd26a000c7697c181badfb1d9c295dbcfe4fa0c9be9ea1c52583c0737d5dd55b1a4c44a9226df2e849f43006ebb9b6698b5c20b7a3d56dec4f08feb46d47987e138f105a4e75c5803686202c420a6d1d3021c28b95385997c31a7a2fcb7f053006ab77aa", 0x1000}, {&(0x7f0000000380)="be762610617cc896561bf97e4eaa348f76089b8507fe71cbf432638469724fd8952dae170f367740197063a096a91111546bb86323028ae7359416ad687043230d6a07271ec00fc5a83f2de26cd4dc0dcd0aad3001f96cf13e9f019849cb8f", 0x5f}, {&(0x7f0000004580)="922ef1c53b24e6a92614c0d20020843f3b81ff0956e353967c1f4fed8d989cc3e294451764d45e15ce84044b5f7e3f2e7ff436c966eeac17952b01c789f9e9b29e57ec68de819b95aa378e4cd48304a1f6da3005914291c2f88af3e95169975fb299c0fe386ca4e5b17aed0c1d59bbb4a02bc4630d692ddc90828f005c972e90c08d6e90a4467f6b48f23550f398ee85e33951389717fc2fc014dd893bf002141c64986203c766233e12e2cc66191383294f9078219b640dc52d1f3029d0ab80ff", 0xc1}], 0x6, &(0x7f0000004680)=[{0xe0, 0x107, 0x6, "f78b8260b7abfd7e2fc05a95f43183d24e8b7a4369ee4dc296958acfedee06731342bd5cad85b0399b10035e07352161673b2f959bcaad687a8ffc26b67186cc70699abff2b3de6ca6a0007777454bbb047e61f3024d36dbd449a6f654978d12f0d4106b00b2f2cf9611e8b74efeb13e893545eacd18f5be72b3ab4a22b96725e6891c1322444b8d52715df919f99a7692221e9b0df2c9b8f18a6b1dc1daa3ab1fa08de7cab29082379c401ff0747331a9a8170c4f60ae7b9d8b8eaa745ab056eae6b39a9cd3b79d13a60b49"}, {0x90, 0x10e, 0x2, "9554164bcf8ad27b2a011585d48fe2f5385ee2b368e8344fbf4f6307b4303b492e8a27c12d7dd1f49d1620b47fb36fd04a9a7d9e9ac78979fdc4027eabaea2c1191aae5183e62a2d8b1b966905a90ee9f37dc8410c3434cc4dc5ea39531fd8751b0655958e52093cc4976902c137940c96a19add146699064a1cfa"}], 0x170}, 0x4004001) socketpair(0x1e, 0x4, 0x0, &(0x7f0000000000)) 16:42:08 executing program 0: r0 = getpgid(0x0) r1 = perf_event_open(&(0x7f0000000700)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, r0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) perf_event_open(&(0x7f0000000300)={0x5, 0x80, 0x8, 0x3, 0x6b, 0x4, 0x0, 0x8, 0x80000, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x6, 0x1, @perf_config_ext={0xfffffffffffffff8, 0xfffffffffffffffc}, 0x0, 0x3, 0x4f, 0x2, 0x4, 0x8000, 0x3f, 0x0, 0x0, 0x0, 0xfffffffffffffffe}, 0x0, 0x3, r1, 0x3) ppoll(0x0, 0x0, 0x0, 0x0, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) r3 = socket(0x10, 0x3, 0x0) r4 = socket$netlink(0x10, 0x3, 0x0) r5 = socket(0x10, 0x803, 0x0) sendmsg$NBD_CMD_DISCONNECT(r5, &(0x7f00000001c0)={0x0, 0x0, &(0x7f0000000180)={0x0}}, 0x0) getsockname$packet(r5, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)=0x14) sendmsg$nl_route(r4, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000080)=ANY=[@ANYBLOB="480000001000050700"/20, @ANYRES32=r6, @ANYBLOB="0000000000000000280012000900010076657468"], 0x48}}, 0x0) sendmsg$nl_route_sched(r3, &(0x7f00000002c0)={0x0, 0x0, &(0x7f0000000280)={&(0x7f0000000240)=@newqdisc={0x30, 0x24, 0xf0b, 0x0, 0x0, {0x0, 0x0, 0x0, r6, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_ingress={0xc}]}, 0x30}}, 0x0) sendmsg$nl_route_sched(r2, &(0x7f0000000140)={0x0, 0x0, &(0x7f0000000180)={&(0x7f0000000800)=ANY=[@ANYBLOB="4c0000002c00270d08000000ff03000000000000", @ANYRES32=r6, @ANYBLOB="00000000000000000c000000080001007533320020000200140005"], 0x4c}}, 0x0) 16:42:09 executing program 1: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x380000f, 0x12, r0, 0x0) preadv(r0, &(0x7f0000000280), 0x18, 0xd9f, 0x0) r1 = socket$nl_route(0x10, 0x3, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) r3 = socket$netlink(0x10, 0x3, 0x0) write$tcp_congestion(r0, &(0x7f00000002c0)='illinois\x00', 0x9) r4 = socket(0x10, 0x803, 0x0) sendmsg$nl_route_sched(r4, &(0x7f0000000480)={0x0, 0x0, &(0x7f0000000440)={0x0}}, 0x0) getsockname$packet(r4, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)=0x14) sendmsg$nl_route(r3, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000340)=ANY=[@ANYBLOB="480000001000050700"/20, @ANYRES32=r5, @ANYBLOB="0000000000000000280012000c00010076657468"], 0x48}}, 0x0) sendmsg$nl_route(r2, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000100)={&(0x7f0000000180)=ANY=[@ANYBLOB="20000000140001040000000000000000021f0000", @ANYRES32=r5, @ANYBLOB="08000200a0"], 0x20}}, 0x0) r6 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r6, &(0x7f0000000080)=""/196, 0xc4) getdents64(r6, 0x0, 0x0) mknodat$null(r0, &(0x7f0000000280)='./file0\x00', 0x0, 0x103) preadv(r6, &(0x7f0000000240)=[{&(0x7f00000001c0)=""/39, 0x27}], 0x1, 0x3, 0x9) sendmsg$nl_route(r1, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000000c0)=@newlink={0x20, 0x10, 0x411, 0x0, 0x0, {0x0, 0x0, 0x0, r5, 0x6861}}, 0x20}}, 0x0) 16:42:09 executing program 0: syz_mount_image$vfat(&(0x7f0000000000), &(0x7f0000000080)='./file0\x00', 0x8, 0x0, &(0x7f0000000600), 0x0, &(0x7f0000000180)=ANY=[]) chdir(&(0x7f0000000040)='./file0\x00') creat(0x0, 0x0) creat(0x0, 0x0) perf_event_open(&(0x7f0000001340)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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 = open(&(0x7f0000000100)='./file0\x00', 0x40c2, 0x0) r1 = open$dir(&(0x7f00000000c0)='./file0\x00', 0x0, 0x0) write(r0, &(0x7f0000000600)="34fd98aa1d0e7adec937a5f331a75f487934f50242a0751944936972896c29a5068c8ecba1aa0a4e2a631b5180e1fbde79f4502dc4c4a1fba9dcd9ed83e639aefa1b87631c33d1a82cb0c0035676ddfeb0fe7984d7519b0f839d497fc9d64ef14d1de22220ff2623df4950134b9fb734a52adad95f131cce3672a9d7d7b400d2c62810b5f20351639330948107bf8d4534a03ac389455c54d8eb4d609b3e858b7213b38eb01f0eeaba3739ae927916e28da6a79a3fd5e32d30ab30bf959d4596e5ffbff6789a650b9e7d248d1ba849012336a4f3ef8fab07a8f5b81bb0bc45b2174538315ca12b7c723b2157562564a8a1f19d28179f8c565448e0e921b8c3e6fc4adaafa8b929ad077f633325b6a6f71a586cabc4883e03e19315f946b277858593a7367e232202fe9ad656c6768a1517da7f0498b48cb078e929fb11db0cc551f754bffc4859dd89a396915cc809b07d448573098409ea21371056f67ef4114ec10547f498d24513fe594308bf022868ad21e85bba811942fdc45161a1a8a7fe00d5c6b05ed7954f631bbd12a5c9a5cfa5965e0595de608b04ebe02b3fcbf3b9f57807a1a7ad8528992e2ec65949da2f4a0478dfd3ae52639c15d8aeaa351da6d393b58c772168fae604d097fef4d6b9360eb169a0b0ee70cdc22435a003e68698f61b3b63b1f51011bc8f4ef944c1de821785f670124a1c6ed18335d63412", 0x200) sendfile(r0, r1, 0x0, 0xef85) r2 = open(&(0x7f0000000040)='./file0\x00', 0x141042, 0x0) sendfile(r2, r0, 0x0, 0xffffff38) 16:42:09 executing program 3: r0 = open(&(0x7f0000000040)='./bus\x00', 0x0, 0x0) r1 = creat(&(0x7f0000000080)='./bus\x00', 0x0) ftruncate(r1, 0x1) lseek(r1, 0x1200, 0x0) r2 = getpgid(0x0) ioctl$SECCOMP_IOCTL_NOTIF_RECV(r0, 0xc0502100, &(0x7f00000001c0)={0x0}) ioctl$SECCOMP_IOCTL_NOTIF_ADDFD(0xffffffffffffffff, 0x40182103, &(0x7f00000000c0)={r3, 0x0, 0xffffffffffffffff, 0x4}) r4 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r4, &(0x7f0000000080)=""/196, 0xc4) getdents64(r4, 0x0, 0x0) ioctl$SECCOMP_IOCTL_NOTIF_ADDFD(0xffffffffffffffff, 0x40182103, &(0x7f00000000c0)={r3, 0x0, r4, 0x2, 0x80000}) perf_event_open(&(0x7f0000000700)={0x3, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50d, 0x4020, 0x2, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x400000, 0x0, 0x0, 0x0, 0x0, 0xfffffffffffffffc}, r2, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) tkill(0x0, 0x2c) r5 = open(&(0x7f0000000000)='./bus\x00', 0x0, 0x0) sendfile(r1, r5, 0x0, 0x8400fffffffa) fallocate(r1, 0x3, 0x0, 0x100000fe) ioctl$TIOCL_SELLOADLUT(0xffffffffffffffff, 0x541c, 0x0) r6 = signalfd4(r5, &(0x7f0000000180)={[0x200]}, 0x8, 0x80000) getdents(r6, &(0x7f00000001c0), 0x0) creat(&(0x7f0000000100)='./bus\x00', 0x40) 16:42:09 executing program 5: r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000001c0)='cgroup.controllers\x00', 0x275a, 0x0) write$binfmt_script(r0, &(0x7f0000000280)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x2, 0x28011, r0, 0x0) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f00000000c0), 0xffffffffffffffff) preadv(r0, &(0x7f0000002f80)=[{&(0x7f0000000e00)=""/248, 0xf8}, {&(0x7f0000000f00)=""/121, 0x79}, {&(0x7f0000000f80)=""/4096, 0x1000}, {&(0x7f0000001f80)=""/4096, 0x1000}], 0x4, 0x5, 0x9) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r2, 0x8933, &(0x7f0000000100)={'wlan1\x00'}) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000200)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_SET_STATION(0xffffffffffffffff, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000000)={0x2c, r1, 0x1, 0x0, 0xfffffffc, {{}, {@val={0x8, 0x3, r3}, @void}}, [@NL80211_ATTR_MAC={0xa}, @NL80211_ATTR_STA_WME={0x4}]}, 0x2c}}, 0x0) r4 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000080)='cgroup.controllers\x00', 0xb00000000065808, 0x0) r5 = socket$nl_generic(0x10, 0x3, 0x10) socketpair$tipc(0x1e, 0x5, 0x0, &(0x7f0000000180)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$TUNSETLINK(r6, 0x8912, 0x400308) sendmsg$MPTCP_PM_CMD_GET_ADDR(r5, &(0x7f0000003100)={&(0x7f0000002fc0)={0x10, 0x0, 0x0, 0x8000}, 0xc, &(0x7f00000030c0)={&(0x7f0000003000)={0x94, 0x0, 0x400, 0x70bd2b, 0x25dfdbfc, {}, [@MPTCP_PM_ATTR_ADDR={0x24, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0xff}, @MPTCP_PM_ADDR_ATTR_PORT={0x6, 0x5, 0x4e24}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x1}, @MPTCP_PM_ADDR_ATTR_PORT={0x6, 0x5, 0x4e21}]}, @MPTCP_PM_ATTR_SUBFLOWS={0x8, 0x3, 0x5}, @MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_PORT={0x6, 0x5, 0x4e24}, @MPTCP_PM_ADDR_ATTR_ADDR4={0x8, 0x3, @local}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0xa}, @MPTCP_PM_ADDR_ATTR_ADDR4={0x8, 0x3, @loopback}, @MPTCP_PM_ADDR_ATTR_ADDR4={0x8, 0x3, @local}, @MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @empty}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8, 0x2, 0x6}, @MPTCP_PM_ATTR_ADDR={0x4}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8, 0x2, 0x3}]}, 0x94}, 0x1, 0x0, 0x0, 0x8000}, 0x8000) sendfile(r5, r4, 0x0, 0x10000a006) r7 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r7, &(0x7f0000000080)=""/196, 0xc4) getdents64(r7, 0x0, 0x0) write$binfmt_elf64(r7, &(0x7f0000000240)={{0x7f, 0x45, 0x4c, 0x46, 0xad, 0x2, 0x7, 0x9, 0x3282, 0x2, 0x3e, 0x0, 0x69, 0x40, 0x29d, 0x9, 0x4, 0x38, 0x1, 0x8, 0x7fff, 0x2}, [{0x6474e551, 0x7, 0x400, 0x1ff, 0x40, 0x2, 0xef}, {0x70000003, 0x10001, 0x81, 0xfff, 0x5, 0x20, 0x8, 0x6}], "244672d1a52f29445076ea0f61a3ae7a6b7fcccf1d28011ab0d144fb69a0238b7ab5028ea48b89bfe2f5f2ea4d6ebbbcfbde8d9d71659eb4bfdb03dd5eef1c2785d63686cce138fbd2064ca01790c601d94617e3d6b3337af8db337daa99d3cf2fa1837e370c0cd3a2238a943c13c572097ea460a187075bb5502271327447e9324a7095de707a1b5baa6a01ae6b5ee5f4e4b3de8b8fa82f516245df501cddc220133d562390e83a751b6fd505d6c2f90e086f9a2bbb041dbb26faa8efb1254592d1e6e174440d0f4bc1ad60e56e23df7638344bc775b89d5c0d966846d9c8d7e34394689c3557647dc29977dda29b57dae99e6a07ce2268defc8394cba855", ['\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00']}, 0xbaf) 16:42:09 executing program 0: r0 = openat(0xffffffffffffffff, &(0x7f00000002c0)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) getsockopt$inet_IP_IPSEC_POLICY(r0, 0x0, 0x10, &(0x7f00000000c0)={{{@in6=@dev, @in6=@dev, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, {{@in=@multicast1}, 0x0, @in6=@initdev}}, &(0x7f00000001c0)=0xe8) getsockopt$inet6_IPV6_XFRM_POLICY(r0, 0x29, 0x23, &(0x7f0000000300)={{{@in6=@mcast1, @in6=@private1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, {{@in6=@remote}, 0x0, @in6=@remote}}, &(0x7f0000000200)=0xe8) write$FUSE_DIRENTPLUS(r0, &(0x7f0000000400)={0x150, 0x0, 0x0, [{{0x1, 0x2, 0x1, 0x4, 0x2, 0xfffff000, {0x6, 0x1, 0x7, 0x101, 0x81, 0x5, 0x401, 0x7ff, 0x7, 0x4000, 0x8000, r1, 0xffffffffffffffff, 0x1f, 0x10000}}, {0x2, 0x10001, 0x4, 0x10000, '@\']&'}}, {{0x5, 0x0, 0x6, 0x85, 0xfffffffc, 0x8d, {0x6, 0x7, 0x400, 0xffffffff9dcd3451, 0x100000001, 0x9, 0x4, 0x1, 0x1, 0x1000, 0x1a5e, r2, 0xee00, 0x7, 0x64d7}}, {0x0, 0x0, 0x4, 0x9, 'hfs\x00'}}]}, 0x150) preadv(r0, &(0x7f0000000280), 0x18, 0xd9f, 0x0) syz_mount_image$hfs(&(0x7f0000000000), &(0x7f0000000080)='./file0\x00', 0x0, 0x4a, &(0x7f0000000580), 0x10000, &(0x7f0000000040)) 16:42:09 executing program 1: perf_event_open(0x0, 0x0, 0x0, 0xffffffffffffffff, 0x0) r0 = openat$nvme_fabrics(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) perf_event_open(&(0x7f0000000580)={0x3, 0x80, 0x6, 0x0, 0x9, 0x0, 0x0, 0xfff, 0x3810c, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0xffff, 0x1, @perf_config_ext={0xb5a8, 0x3b}, 0x4000, 0x7, 0xc93, 0x5, 0x1ff, 0xa6, 0x100, 0x0, 0x8fdd}, 0xffffffffffffffff, 0x5, r0, 0x0) perf_event_open(0x0, 0x0, 0x0, 0xffffffffffffffff, 0x0) recvmsg$unix(0xffffffffffffffff, &(0x7f0000000300)={&(0x7f0000000380), 0x6e, &(0x7f0000000040), 0x0, &(0x7f0000000400)=[@rights={{0x1c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}, @rights={{0x1c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}, @cred={{0x1c}}, @cred={{0x1c}}, @cred={{0x1c}}], 0xa0}, 0x40000020) syz_kvm_setup_cpu$x86(0xffffffffffffffff, r1, &(0x7f00002fd000/0x18000)=nil, &(0x7f0000000540)=[@text16={0x10, &(0x7f00000004c0)="646465f20f5f07c05b008166b80500000066b927b700000f01d9d0f866b9030100c00f320f35baf80c66b8727c768f66efbafc0cec26262e3ef0814251c5006766c74424000d0000006766c744240211fc3f106766c744240600000000670f01142466b8438e95b90f23d00f21f86635200000020f23f8", 0x77}], 0x1, 0x2c, &(0x7f0000000580), 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x0, 0x10, 0xffffffffffffffff, 0x0) lsetxattr$system_posix_acl(&(0x7f0000000140)='./file0\x00', &(0x7f00000002c0)='system.posix_acl_default\x00', &(0x7f0000000880)=ANY=[@ANYBLOB="02000000010001000000000002000000", @ANYRES32=0x0, @ANYBLOB="02000200", @ANYRES32, @ANYBLOB="02000000", @ANYRES16, @ANYBLOB="040000000000000008000600", @ANYRES16, @ANYBLOB='\b\x00\x00\x00', @ANYRESHEX=0x0, @ANYBLOB="082a83862adf2187400ea433ce1a8428000200061e05005fa155008b28d90688fdf02e92b8ea", @ANYRES32=0x0, @ANYBLOB="08000300e73217024775058ec039db7b968061e8ad8c3c19442b494040adfeae3cc8b193d8d4286e7b3b6e8abbe16d25d3bb0fed8c15ac066cb540ea85907e7a599532c2105d26b4efc3d76764fff6f5d5a03a56976ee4619e7a996e26f867e3629ae418414b4470a90ebf98e4076fc55efc91a3c2e815f8c2b56e7cade6c9286f07d295000000000000000000000000000096e695c12d699f690588a83636e6c01bb0850ab02ac40c446535b4f5b4b0bc53b7d56adccde66afb8ee9982b4a7112d5d8a1909ea7149a02b5450b8ae7f8aba34b73bf86219d06e27817ab9def15b8927ed3d79938971b5ab65dae016361904c514d24eae432377e04d4944ff4481b678e0250f2d2569f9a0fedb096f53e23b3334c1b2fc99c732b8e3e792082154eb5530fe98261aa079859281cc134bff91af35246c17354fa3a3ada8574b814ebec261a8986579403bc6960c1953c84d12a877540b27fe9df2b3c555a1a45c8909f1ab9f09749a6c8627610cfb6b9393514a82bfc4faada24a6339cc4c487db97409aecb6839b1d13b54741ea06b26a70c6a3c9c3ba93", @ANYRESDEC, @ANYBLOB="b6f2bda99e9a778bc4fbbb3fdc279709fac24ec5de79bba72c1f27c09801c7ef20b35c9709ddc6e8916fb5eb64a4bed643bae727bc32cffd6489c989279865f2972083913e28d17438b001293bb7d1deb82135b8f892ae3e172e59ebbaab0999234dfcbff9cc77f31368162ba191b940f1", @ANYRES32, @ANYBLOB="08000100", @ANYBLOB="aedc7f2613c51df70339cc0923d24170dd2b1f3bc73c87951a10f9ac73b60681d51943a6f7394c8e2d662a01775afe", @ANYBLOB="10000200000000002000030000000000"], 0x6c, 0x2) r2 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r2, &(0x7f0000000080)=""/196, 0xc4) getdents64(r2, 0x0, 0x0) perf_event_open(&(0x7f0000000600)={0x5, 0x80, 0xff, 0x0, 0x8, 0x14, 0x0, 0x6, 0x80000, 0x2, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x9, 0x2, @perf_config_ext={0x0, 0x7}, 0x8040, 0x8d40, 0x1cd7, 0x9, 0x8001, 0x7a, 0x3, 0x0, 0x3ff, 0x0, 0x9}, 0x0, 0x5, r2, 0x0) r3 = bpf$PROG_LOAD(0x5, &(0x7f0000000200)={0xc, 0xe, &(0x7f0000001300)=ANY=[@ANYBLOB="b702000003000000bfa30000000000000703000000feffff7a0af0fff8ffffff79a4f0ff00000000b7060000ffffffff2d6405000000000065040400010000000404000001007d60b7030000000000006a0a00fe00010000850000000d000000b7000000000000009500000000000000496cf2827fb43a431ca711fcd0cdfa146ec56175037958e271f60d25b7937f02c8695e5a1b24df41dc10d1e8bf076d83923dd29c034055b67dafe6c8dc3d5d78c07fa1f7e655ce34e4d5b318e2ec0e0700897a74a0091ff110026e6d2ef831ab7ea0c34f17e3ad6ef3bb622003b538dfd8e012e79578e51bc53099e90fbdb2ca8eeb9c15ab3a14817ac61e4dd11183a13477bf7e060e3670ef0e789f93781965f172d96704902cbe7bc04b82d2789cb132b8667c21476619f28d9961b63e1a9cf6c2a660a16e9e184b751c51160fbce841f8a97be6148ba532e6ea09c346dfebd31a08b32808b80200000000009dd27080e71113610e10d858e8327ef01fb6c86adac12233f9a1fb9c2aec61ce63a3462fd50117b89a9ab359b4eea0c6e95767d42b4e54861d0227dbfd47d8576a3f7f3deadd7130856f756436303767d2e24f29e5dad9796edb697a6ea0180aabc18cae2ed4b4390af9a9ceafd07ed00b0000002cab554ad029a119ca3c972780870014601c3c975d5aec84222fff0d7216fdb0d3a0ec4be3e563112f4b39501aafe234870072858dc06e7c337642d3e5a815232f5e16c1b30c3a2a71bcffc2cc788bee1b47683db01a469398685211bbae0e7313bff5d4c391ddece00fc772dd6b4d4de2a41990f05ca3bdfc92c88c5b8dcdcc22ee17476d738992533ac2a9f5a699593f084419cae0b4183fb01c73f99857399537f5dc2acb72c7eae993fc9eb22d130665b6341da114f08cd0509d380578673f8b6e74ce23877a6b24db0e067345562942fa629fbef2461c96a08707671315c302fae29187d4f5c06a960fd37c10223fdae7ed04935c3c90d3add8eebc8619d73415e6adcda2130f5011e48455b588b90dfae158b94f50adab988dd8e12baf5cc9398c88607a08009c2977aab37d9a44cfc1c7b400000000cc0000fa47742f6c5b9c4b11e7d7262a1457c39495c826b956ba859ac8e3c177b91bd7d5ca1664fe2f3ced8468911806e8916dc15e21644db60c2499d5d16d7d915836ab26c169482008ef069dc42749289f854797f2f900c2a12d8c38a967c1bbe09315c29877a331bcc87dc3addb08141bdee5d27874b2f663ddeef0005b3d96c7aabf4df517d90bdc01e73835d5a3e1a9e90d76c1993e0799d4894ee7f8249dc1e3428d2129369ee1b85afa1a5be5f6eb2eea0d0df414b315f651c8412392191fa83ee830548f11e1038debd64cbe359454a3f2239cfe35f81b7aded448859968ff0e90500d0b07c0dd00490f167e6d5c1109681739dc33f75b20428d6474a0a91ee90b8de802c6b538622e6bbcb80f87b415263c401e64ed97116ee0c1fa9185bc68477b8521cb0c69a2f75409000000000000001d695c4559b82cabac3cccadc1e1c19af4e03020abf5ff0433d660f20898d2a045d009a0ffb20a77c9af2b80c05184a66d30bbea2ca45a4d6d6d1e6e79aef42355a500587b603306a5af8d867d80a07f10d82eafb030f16394e8af26e2c7a51b0d4e62e95196d5e3b854b1c8c768c001496fa99ce5b5040be959096ea948cfa8e7194123e918914a71ad5a8521fb956d05000000719b55b3abb6bba3d113a680a8d46fe074c83fbe378a3889e8145b2eaceab05ef932c6e4f8ef0ed0d818a7b76d839cf3c63ebb4380b168c38fa32e49563cfee3a7f0fc18bf8c2c418cef875fb49e2989177a1bcd1e30280bc586e79a5dd8076c248e7d6e97b3ce267dd4e27b6ef206660090bb2164474cef378f97ca33fccf363361dcdba10c1547053453d0c9aec91a24079b21d52fb5516bf0c28ef37aa76442f6083dc99cd61afaf6be45d7b00d3639f2f10ac2d5c759c3e5468f5874c24411d415b6b085fb73a2c7c3052e0e658ffeb4e863428a792bee94f6cd895424360e0464f9d7ea425f2fa6aac029d15af607ad83532ff181c985f54b39370c06e63055b4d6a36fa98a44e379d2bccf977c3e88538f406b598307c9912fb097601f3f88a2ca6fd1f9320cfe7fc8e9f7f15f02e177ce23f43a154b42e26f037e8a01377cbd3f509e6e54b7fc96d6a706008ed3e14a0c9ba9c2a589ac5d8ad67a65e9a44c576dc24452eaa9d819e2b04bdd1c000000000000000000000000000000005333c6099c12dcd92689192727a7267c47cf897853d160100b39b613faefe16bed1fc105cddd77ab929b837d54aa17fa9fbdc2bdc0e98ae2c3f23a6131e2879f0484ee3bfe30b92dd493be66c2242f8184733b80ba28e824910844df3108d5bb2f89049c5f6d63956995747639964217aacfe548bc869098aa8e07e51dbc9e2d4db3c5f79fd355222ec2a00cf7f2ccd6dd6d2d0908be79314221a5472f1318a9dfbec5a759579caf3262129b14e99040b5d91398e17df85c25ccae973eecc7d187168d5c9cd848d566cc175876410c02889c927da38d83314480b15e23138c5b877a72bd4cf74a299df4fbfc8e6ea96939f15d254d9033c5a45706bda78ab602000000000000000000000000000000000000000000fa80459bb5d3c2f325288c2cc2734810e7ef209f233ad097c30ba8c0f8555f8b304a1acfb009a7f2ee0d0380a2f2a8795172af094a2751c35f807949973491c5b22ad1e9d89d21d7f30e51f686b176eb732565750250ebcc9a40a6c909ec9293952e9ac5a81b9627c05dbd5228d6e28f88fda08e68d7318d27b2bc5c21eebca3727b168ce336813c6cf83956f1ddc7851142143f1ab078436f068f8e2819f21c5b3a74605a2d7420a2db49f7afa89f0b2b02b13fea020a6f100edadbf1d3a861174e87122b76f5cb7928bd85a93f5b68f5f76e1a08c19972040011ae3f69c9a5e09a8c2a806749da91d43fbeb6a39b8674aabdf02b16791862e49f78133cf4797a0e9c57abc2cc7b6d"], &(0x7f0000000340)='syzkaller\x00'}, 0x48) r4 = socket$packet(0x11, 0x3, 0x300) setsockopt$IPT_SO_SET_REPLACE(0xffffffffffffffff, 0x0, 0x40, &(0x7f0000000e40)=@mangle={'mangle\x00', 0x1f, 0x6, 0x41c, 0x1f0, 0x138, 0x138, 0xa4, 0x284, 0x388, 0x388, 0x388, 0x388, 0x388, 0x6, &(0x7f0000000280), {[{{@ip={@broadcast, @remote, 0xff, 0xffffff00, 'bridge0\x00', 'bond0\x00', {}, {}, 0x89, 0x1, 0x2}, 0x0, 0x70, 0xa4}, @common=@inet=@SET3={0x34, 'SET\x00', 0x3, {{0xff, 0x4, 0x5}, {0x4, 0x1, 0x2}, {0x0, 0x0, 0x1}, 0x2, 0x52a}}}, {{@ip={@broadcast, @empty, 0xff000000, 0xff, 'ip6gre0\x00', 'netpci0\x00', {0xff}, {}, 0xc, 0x4, 0x28}, 0x0, 0x70, 0x94}, @inet=@DSCP={0x24, 'DSCP\x00', 0x0, {0x14}}}, {{@uncond, 0x0, 0x94, 0xb8, 0x0, {}, [@inet=@rpfilter={{0x24}, {0x7}}]}, @unspec=@CHECKSUM={0x24}}, {{@uncond, 0x0, 0x70, 0x94}, @inet=@TOS={0x24, 'TOS\x00', 0x0, {0xff}}}, {{@uncond, 0x0, 0xe0, 0x104, 0x0, {}, [@common=@socket0={{0x20}}, @common=@osf={{0x50}, {'syz1\x00', 0x0, 0x8, 0x2}}]}, @unspec=@CHECKSUM={0x24}}], {{'\x00', 0x0, 0x70, 0x94}, {0x24}}}}, 0x478) setsockopt$packet_int(r4, 0x107, 0x7, &(0x7f0000000e00)=0x3, 0x4) r5 = syz_open_dev$tty1(0xc, 0x4, 0x1) ioctl$TCSETA(r5, 0x5434, 0x0) perf_event_open(&(0x7f0000000880)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) bpf$BPF_PROG_TEST_RUN(0xa, &(0x7f0000000080)={r3, 0x18000000000002a0, 0xfe, 0xf000, &(0x7f0000000100)="b9ff03006044238cb89e14f088a81bffffff00004000632977fbac141442e934a0a662079f4b4d2f87e5feca6aab845013f2325f1a3901050b038da1880b25181aa59d943be3f4aed50ea5a6b8686731cb89ef77123c899b699eeaa8eaa0073461119663906400f30c0600000000000059b6d3296e8ca31bce1d8392078b72f24996ae17dffc2e43c8174b54b620636894aaacf28ff62616363c70a440aec4014caf28c0adc043084617d7ecf41e9d134589d46e5dfc4ca5780d38cae870b9a1df48b238190da450296b0ac01496ace23eefc9d4246dd14afbf79a2283a0bb7e1d235f3df126c3acc240d75a058f6efa6d1f5f7ff4000000000000000000", 0x0, 0xfe, 0x60000000}, 0x2c) 16:42:09 executing program 3: perf_event_open(&(0x7f00000002c0)={0x2, 0x80, 0x5d, 0x3, 0x0, 0x33, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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}, 0xe000, 0x0, 0x0, 0x0, 0x16, 0x0, 0xb344}, 0x0, 0xfffffffffffffffd, 0xffffffffffffffff, 0x5) socket$vsock_stream(0x28, 0x1, 0x0) r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket$inet6_icmp_raw(0xa, 0x3, 0x3a) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f0000000000)={'macvlan0\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000001140)={&(0x7f0000000200)=@newlink={0x44, 0x10, 0x503, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x5203}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @ipvlan={{0xb}, {0x4}}}, @IFLA_LINK={0x8, 0x5, r2}, @IFLA_MASTER={0x8, 0xa, r2}]}, 0x44}}, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x2800004, 0x12, 0xffffffffffffffff, 0x0) r3 = accept(r0, &(0x7f0000000040)=@x25={0x9, @remote}, &(0x7f0000000140)=0x80) connect$vsock_stream(r3, &(0x7f0000000180)={0x28, 0x0, 0x2711, @my=0x0}, 0x10) setsockopt$SO_VM_SOCKETS_BUFFER_MAX_SIZE(0xffffffffffffffff, 0x28, 0x2, &(0x7f0000000f40)=0x40000000, 0x8) openat(0xffffffffffffffff, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) 16:42:09 executing program 5: lsetxattr$trusted_overlay_redirect(&(0x7f0000000040)='./file0\x00', &(0x7f0000000080), &(0x7f00000000c0)='./file0\x00', 0x8, 0x3) clone(0x8100, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) r0 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r0, &(0x7f0000000000)={0xa, 0x0, 0x0, @local, 0x4}, 0x1c) r1 = socket$nl_route(0x10, 0x3, 0x0) socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000180)={0xffffffffffffffff}) r3 = dup(r2) ioctl$sock_SIOCGIFINDEX(r3, 0x8933, &(0x7f0000000040)={'team_slave_1\x00', 0x0}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r5, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000100)={&(0x7f0000000200)=ANY=[@ANYBLOB="200000001000010400"/20, @ANYRES32=r4], 0x20}}, 0x0) sendmsg$nl_route(r1, &(0x7f00000002c0)={0x0, 0x0, &(0x7f0000000100)={&(0x7f00000003c0)=@newlink={0x20, 0x10, 0x1, 0x0, 0x0, {0x0, 0x0, 0x0, r4, 0x2c2b}}, 0x20}}, 0x0) r6 = socket$nl_route(0x10, 0x3, 0x0) socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000180)={0xffffffffffffffff}) r8 = dup(r7) ioctl$sock_SIOCGIFINDEX(r8, 0x8933, &(0x7f0000000040)={'team_slave_1\x00', 0x0}) r10 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r10, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000100)={&(0x7f0000000200)=ANY=[@ANYBLOB="200000001000010400"/20, @ANYRES32=r9], 0x20}}, 0x0) sendmsg$nl_route(r6, &(0x7f00000002c0)={0x0, 0x0, &(0x7f0000000100)={&(0x7f00000003c0)=@newlink={0x20, 0x10, 0x1, 0x0, 0x0, {0x0, 0x0, 0x0, r9, 0x2c2b}}, 0x20}}, 0x0) sendmsg$nl_route(r0, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)=@RTM_DELMDB={0x58, 0x55, 0x200, 0x70bd2b, 0x25dfdbff, {0x7, r4}, [@MDBA_SET_ENTRY={0x20, 0x1, {0x0, 0x1, 0x3, 0x2, {@in6_addr=@private2, 0x8edd}}}, @MDBA_SET_ENTRY={0x20, 0x1, {r9, 0x0, 0x1, 0x4, {@ip4=@rand_addr=0x64010100, 0x66f026ff0a6e7a6d}}}]}, 0x58}, 0x1, 0x0, 0x0, 0x40}, 0x4000000) connect$inet6(r0, &(0x7f0000000340)={0xa, 0x0, 0x0, @local, 0x4}, 0x1c) 16:42:09 executing program 1: r0 = syz_open_dev$midi(&(0x7f0000000000), 0x200, 0x0) r1 = syz_open_dev$media(&(0x7f00000005c0), 0x0, 0x0) r2 = openat$audio(0xffffffffffffff9c, &(0x7f0000000180), 0x0, 0x0) socket$inet6(0xa, 0x1, 0x1) r3 = epoll_create1(0x0) epoll_ctl$EPOLL_CTL_ADD(r3, 0x1, r1, &(0x7f0000000080)={0x15}) ioctl$int_in(r2, 0x800000c004500a, &(0x7f0000000300)) clock_gettime(0x0, &(0x7f0000000240)) close(r2) perf_event_open(&(0x7f000001d000)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) pselect6(0x40, &(0x7f00000001c0), 0x0, &(0x7f0000000140)={0x1ff}, 0x0, 0x0) r4 = syz_mount_image$bfs(&(0x7f0000000040), &(0x7f00000000c0)='./file0\x00', 0xffffffff9b037559, 0x4, &(0x7f0000000480)=[{&(0x7f0000000280)="bb1d384b7fcbf2fc5244c4280993942f87fabad8713234b392c83eabcd350a942d948713d79d9ae50a04fe1d5fad42b965820a03296bff1f9dee2c32fd9406c91df293dca2b5bdb29611ff03c27ffc9bf3cbb71cc6ecd51966d0eab07aad6b15de191f5ea4864d7cfbaa7ebef4c0261e607d274edcc5ef79a5", 0x79, 0x1}, {&(0x7f0000000340)="a683237b80719d1edc2953695665c47f21e81b54722a635fb70acfb2f0aff9cadbf06902d4ec3048c3b5a6c2fa4bfc9ec03464aa85923d772e65ab6711eaa445970fdf5eadae8adb44842a98c2438a6eb50e5ddd070f4969a271ea827bd52eb47c00f448e0c6601b083194eae022b8a9b867cff764c03e83014708ca12e3d7aab9028853a2ca9b1d953d98d671e81b", 0x8f, 0x8a7}, {&(0x7f0000000100)="b3afe52111cca8cfe696f73244e8349f9f1e16bc5d", 0x15, 0x1ff}, {&(0x7f0000000400)="0e367f07a72254291ad0792a31767908f4ce6b1af66b4c62b5ca00fdd87800f72fdf8ee88e4e53b2e8a79783a4ce9ee4fb4d06b4ebc650a94bf94190e390ba801e73df1d657e2a6e3fbbadeaca4d2c2fd63204b335a8743945da46f14bbd49d2e02314246e02e970", 0x68, 0x12c82aec}], 0x20, &(0x7f0000000600)={[{'^]/)$%)*($[/[-'}, {'&\'.\'&[@+/*{+'}, {')'}, {'+\\.\'\''}, {'/d\xff\x0f\x00\x00\x00\x00\x00\x00\x00IN\xa2\xa4\x0er;`4&\xa2\xc5\xf3\x0eE4M\x15F\xe2\xf8\xc3\xda\x9b\xdb\xe8E\xbej\x19\xb3\xd7p\x01\xd4\x86\xf9\xddr\x87+:\x06\xd4\xcc\xc9J\xed\xad\xedd\x88\xaes\xc0\xf1\xb6\xedX\xad\x04m\xca\xb24\xfb\xb1[,\x8e)\x1a\x8eo\f\xc2\x16\x8a),HSr\xf4M\xb5\xbf>\x8d\xdb\x05\xb6z\xf0\x1e\xfcNK\xf4\x95#U\b\xf8\x88\x8c\xf2\xe0\x0f%\t\xbd\xa1\xc1\f)\xf5S\x13\xf8\f\xd6\xc1\a\xb0u\x8e\xe7\xae$l\x11\x85\xab&\xe7t\x93F\x9c.\xa3_\xed\xda*\x92dYx\xbc\xde\x00\xa8\xc9\x16$W\xafF\x7f\xa7\x14\xa5\xd7O\xbd\x82\xb2\xcd\xa0P,X\xe6\xcf\x9c@\xa6\x14\x91\xda\x97\xdc\x8a\x12\xfd\"\x89\xd8\x03\xee\x8bQ zZ\xa19`\xb3\x16&\x1a6\xccI\xe88\xd6\t+\x18\x1f\xd1<\xdb\xb3N\xed\xf7\'\x8e>A\x1a8\xdeU\xa2\xfe-e\tW4F\x9b\x94\xf7\xaa\xdb\xf7\xda\xb1e;\xa0\xe7,\xfb.\xfd\x9a\x88\xe3qe'}, {'/dev/audio\x00'}, {'/'}, {'}(('}], [{@rootcontext={'rootcontext', 0x3d, 'staff_u'}}, {@dont_hash}]}) ioctl$SNDCTL_DSP_SETFMT(r2, 0xc0045005, &(0x7f0000000500)=0x5) splice(r4, &(0x7f0000000200)=0x8, r0, &(0x7f0000000580)=0x400, 0x2, 0x2) 16:42:09 executing program 3: openat$cgroup_ro(0xffffffffffffffff, &(0x7f0000000000)='cpu.stat\x00', 0x0, 0x0) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000000c0)='memory.events\x00', 0x26e1, 0x0) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000240)='cgroup.controllers\x00', 0x26e1, 0x0) r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000080)='cgroup.controllers\x00', 0x7a05, 0x1700) write$cgroup_int(r0, &(0x7f0000000200), 0x43400) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000100)='memory.events\x00', 0x100002, 0x0) write$cgroup_subtree(r1, &(0x7f0000002980)=ANY=[], 0x32600) bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f00000003c0)={0x18, 0x8, &(0x7f0000000440)=ANY=[@ANYBLOB="1800000000000000000000000400000078b10100080000002f08200004000000851000000000000018100000", @ANYRES32=r1], &(0x7f00000002c0)='syzkaller\x00', 0x1, 0xa, &(0x7f0000000300)=""/10, 0x40f00, 0x3, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, &(0x7f0000000340)={0x5, 0x3}, 0x8, 0x10, &(0x7f0000000380)={0x4, 0x1, 0x7, 0x7f}, 0x10}, 0x78) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000140)='memory.events\x00', 0x7a05, 0x1700) write$cgroup_int(r1, &(0x7f0000000040), 0x43) socket$kcm(0x29, 0x5, 0x0) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000180)='cgroup.controllers\x00', 0x100002, 0x0) perf_event_open(&(0x7f0000000480)={0x1, 0x80, 0x8, 0x0, 0x0, 0x0, 0x0, 0x203, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, @perf_config_ext={0x7, 0x7ff}, 0x4010c, 0x0, 0x40000}, 0x0, 0x6, 0xffffffffffffffff, 0x0) ioctl$PERF_EVENT_IOC_PERIOD(r2, 0xc028660f, &(0x7f00000005c0)=0x3fffffffe) 16:42:09 executing program 0: bpf$PROG_LOAD(0x5, &(0x7f00000054c0)={0x1a, 0x16, &(0x7f00000019c0)=ANY=[@ANYBLOB="61128c000000000061138c0000000000bf2000000000000015000000631500002d0301000000000095000000000000006916000000000000000fff07086706000002000000170300000ee60060bf050000000000004f650000000000006507f9ff01000000070700004c0000005f75000000000000bf54000000000000070400000400f9fead6201000000000095000000000000000500000000000000950000000000000032ed3c5be9529914953170d2d7ffffff8ecf264e0f84f9f17d3c30e3c7bdd2d17f2f1754558f2278af6d71d79a5e02814cb1d8a5d4601d15871637a0b9bdb7dd399703d6c4f6f3be4b369289aa6812b8e007e733a9a4f16d0a3e1282ee45a010fb94fc9de56c9d8a8b9c7f4f0e7004962523814261bd2b4a05000000c6c60bf70d742a81762bab8395fa66810b5b40d893ea8fe0185473d51b546c087431d7700000006e7c955cfa1f6ab689fde4de5f63ede20271a51445dc8da39e5b0ab7010001000000009af619e3cca4d69e0dee5eb106774a8f3e6916df85aaf34c4756ad3a6d9fee0000000000000000c8fb735fd552bdc206004aeb0743eb2dc819b6cf5c8ac86d8a297dff0445a1440045fb3cda32a673a6bb55d8c85f21dce431e56723888fb126a163f16fb2ad9bc1172ba7cbebe174aba210d702a018f9bbec63222d20cecac4d03723f1c932b3a6aa57f1ad2e99e0e67a993716dbf580469f11294b482af97787f296649a462e7ee4bcf8b07a10d6735154beb4000004000000000000000000000000bc00f674629709e7e78f4ddc211bc3ebf0bd9d42ca019d42871a41b907fcd6be2562671c050040a7afaab43176e65ec1118d46d1e827f3472f4445d253887b52d103bf4efa1769412e5b62001e03a651bb96589a7eab04871bc47287cd8d8c1aa3ef18d45200b7861bbd0000000000000000c59050647802cf86f1b4c3005f33d83f84e98a52fbbecd106425563d80bd0d0d703f37ca153f601a0199a53f2715a0a62a34b0c94cce699452050000000000000026a0f6a5480a55c22fe394ac000000000000000000040000000000437d57defb79ea6a58bc3eeed729a2f95e1d6a1fc3857fb51b324be00000000000000090867f577cdde2144d9d7a3b9bc45c54ab5c60837322fd5c713717188cb8426286fc55fc57cc3c6de4aa67babf350709e282a4f2bf59f46e20465eae865dbfd533b1cb2d540d0490cd5248715c74b6bd0248a9a0b417bbdfb5351defc6e34a961f3593920437bf3cbbc04600c64acad9a04ffe62875177b51d2f0c6d7194ca6789d2bec2d0846831455b8fcde5beaeca2c1335d8a49a92f9d2bef5f485c4b6f4cf710b7d4550e6f2d830dfcd9d47d50ea838bdf8901a719431a9d1ef918ec0ec79037cb61df16379e3bf2a1127c49407e8512e21080315e62559e8dd67dae85177d899d9e078f80585837f2f943b8820b19c75d243a78d8c2093c59cbc4c55f1578cff737502ea2d8dc5eee909928d0b9dc946dcb30692dcc8db84834cc7726429cb20603b5338184f9828aa802e37d3c4f259d616307d8aa46ca094049c0ddc1caaed5485b4ff030000182620bcba2316f9e6df0c8647f6ff0000000000000000386096e4a4ff86042f0b42027ff933d2dfe2d5baffacc9dc2411302a185ea454af5839be28b7d040c11d6be0fd63fa7f32b8ab6cd6a8b8bf1b7d3e4ffeca635d84c376b03a5867fdd9f8c2a6fa126c7dad3f9e939c92d63ab1cf2fbea26a604444f8c391c0d9b647a3be4885a055ce3879a91fb62ca97e6526286c14c80b6dc981c5ae6ebf0778ea01a3a44e01ab79bcccbb83266a1ce1a1dea83ebb89d07b35b1aa09ad2904040e7784e96cd66bda204d47b1c66d5a84e7c3de1d1062fd8a23d1b4e2313c177e76dbca599691164ade323ad4a17abe9eed5a83dc94947eb18976db8ba6d301fb65a3d8b5baa9bbec017646649fa99537aa453f3e6ba1d02697038563a16fabf3512acebeddb6c32a87455f351efc30260941825ba884d7db07e1212033409e62d7154cc68a7ee910e3d3470cdb781817f85373a647fd1b626035b666e224a66c0e47e15c6b836b324318507501a0f4b2cc9153167fd839a483615cbc2ad1a7d15291b950a9bcd7d06491e1a355e476365f6564ef3adb5ba1e4d9d5d217c02b000032f0a1feabff795ec68693c9dd842da76ccec5d5184e912af094c7ffe0625ef33ec6d7a5bc7817212ecdc2b82059750f019a418e218d20b6bf768a7db1f84727546f88add2f391d62b1313452553149a4634418de7eda7b2e682271c6e62f5dfaabba46560dfa410e1f334a5f60791b275368469ddc42f7712bff1689f2ffbf5268cc0572e23afd4c402b154ae94c1f65d7d4a79272945287c79b4b70183d2cde66c7225106afb4a1800d777372b2b43326821d5c1c78fda699c7484f3e5fc8bbce6fb3039569646b0de22c431d90c12d48e314d8a5ef4db14a110dac3f1ff502c4f7bd7f36f814ed92197feb8a27be301142cec8a6fd864f8f83fd7dd40296e5fb5678d93d0daee45c43bdb9bde9c1d1c988b909fdf78cfda5da3dc28792b10fb8f3f22ec6745c074f86f471489337a9a8d9ad7f310aa50c983b490f561bc420289b6aa0fc3f43f8a4548aa9c723ce466287760f919afbb94b0410ff060e08d3b5ee65e2c03347af666713096a422fbc70671ac08f9256ab0079c101a724136352af2a3909c0776d7e4b03b7c781610ad6d54547b1d6508f31e775d0eac1524c7b731fe8dc077f538b9dd67ae68a8571d9bfcd80948a3a24cdc173f059545e1cb20bf6b4229a84e52e459d9a024ea58cd677983393717a4bcdc75b43f4854ce23f18c6b7b2969f1487d0295e73e0d631736cfcf113951b5a6b2700b0307a3ebac4817d8f55d2d27c71df4415a09155e894a0e884500caad43a17aa85f304c23a187f0f0ab6da15c15254278d0cdbae04aa750811aeb152c095c4b5d430000000000000000000000000000b867b9c3ed000f1ae38ac364ffe8c98d4a7460733b72fcf4562b6c3451191c5d8b50e7448084cf79f251d4721878a33e080371902e4af367b21a037e390b2a745eba12c1d4c5975002451480dbe59fe55e6dad9548ee575dbf81c687ae81129af9"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x41100, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, &(0x7f0000000000)={0x0, 0xfffffffe}, 0x8, 0x10, &(0x7f0000000000)={0x2}, 0x10}, 0x78) pipe(&(0x7f0000000380)={0xffffffffffffffff, 0xffffffffffffffff}) sendmsg$nl_route(r0, &(0x7f0000000b80)={&(0x7f0000000280)={0x10, 0x0, 0x0, 0x800}, 0xc, &(0x7f0000000b40)={&(0x7f00000000c0)=ANY=[@ANYBLOB="240000006a00003219bd7000fedb685900002400000000000400090004000901041a0a0554258482aec5b2a89648e9bcc47c945d51715052"], 0x24}, 0x1, 0x0, 0x0, 0x45}, 0x8044) r1 = socket$packet(0x11, 0x2, 0x300) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f0000000180)={'bond0\x00', 0x0}) bind$packet(0xffffffffffffffff, &(0x7f0000000100)={0x11, 0x0, r2, 0x1, 0x0, 0x6, @local}, 0x14) socketpair$tipc(0x1e, 0x5, 0x0, &(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$TUNSETLINK(r3, 0x8912, 0x400308) sendmmsg(0xffffffffffffffff, &(0x7f00000001c0)=[{{&(0x7f0000000780)=@nfc={0x27, 0x1, 0x1, 0x4}, 0x80, &(0x7f0000000140), 0x0, &(0x7f00000004c0)=ANY=[@ANYRES16=r0], 0x350}}], 0x1, 0x4040000) socket$nl_route(0x10, 0x3, 0x0) r4 = socket(0x1, 0x803, 0x0) getsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f00000003c0), &(0x7f0000000400)=0xc) r5 = socket$inet6_udp(0xa, 0x2, 0x0) ioctl$sock_inet6_SIOCSIFADDR(r5, 0x8936, &(0x7f0000000240)={@initdev={0xfe, 0x88, '\x00', 0x1, 0x0}, 0x38, r2}) r6 = socket$tipc(0x1e, 0x2, 0x0) setsockopt$TIPC_GROUP_JOIN(r6, 0x10f, 0x87, &(0x7f0000000040)={0x42, 0x83f}, 0x10) setsockopt$TIPC_GROUP_LEAVE(r6, 0x10f, 0x88) sendmsg$GTP_CMD_DELPDP(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000480)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f0000000440)={&(0x7f00000008c0)=ANY=[], 0x50}, 0x1, 0x0, 0x0, 0x40080}, 0xe8d191e5f05d3c70) getsockname$packet(r4, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000002c0)=0x14) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000300)=@newlink={0x20, 0x10, 0x401}, 0x20}, 0x1, 0x0, 0x0, 0x8000}, 0x4c844) 16:42:09 executing program 3: recvmmsg$unix(0xffffffffffffffff, &(0x7f0000007000)=[{{&(0x7f0000000040), 0x6e, &(0x7f0000002340)=[{&(0x7f0000000180)=""/247, 0xf7}, {&(0x7f0000000280)=""/164, 0xa4}, {&(0x7f0000000340)=""/4096, 0x1000}, {&(0x7f0000001340)=""/4096, 0x1000}], 0x4, &(0x7f0000002380)=[@cred={{0x1c}}, @cred={{0x1c}}, @cred={{0x1c}}, @rights={{0x18, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff]}}, @cred={{0x1c}}], 0x98}}, {{&(0x7f0000002440), 0x6e, &(0x7f00000028c0)=[{&(0x7f00000024c0)=""/237, 0xed}, {&(0x7f00000025c0)=""/227, 0xe3}, {&(0x7f00000026c0)=""/229, 0xe5}, {&(0x7f00000027c0)=""/251, 0xfb}], 0x4, &(0x7f0000002900)=[@cred={{0x1c}}, @rights={{0x24, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}, @cred={{0x1c}}], 0x68}}, {{&(0x7f0000002980), 0x6e, &(0x7f0000003dc0)=[{&(0x7f0000002a00)=""/116, 0x74}, {&(0x7f0000002a80)=""/20, 0x14}, {&(0x7f0000002ac0)=""/253, 0xfd}, {&(0x7f0000002bc0)=""/97, 0x61}, {&(0x7f0000002c40)=""/66, 0x42}, {&(0x7f0000002cc0)=""/4096, 0x1000}, {&(0x7f0000003cc0)=""/62, 0x3e}, {&(0x7f0000003d00)=""/152, 0x98}], 0x8, &(0x7f0000003e40)=[@rights={{0x1c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}], 0x20}}, {{&(0x7f0000003e80), 0x6e, &(0x7f0000003fc0)=[{&(0x7f0000003f00)}, {&(0x7f0000003f40)=""/79, 0x4f}], 0x2, &(0x7f0000004000)=[@cred={{0x1c}}, @rights={{0x20, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}, @rights={{0x28, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}, @rights={{0x2c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}, @rights={{0x30, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}], 0xc8}}, {{&(0x7f0000004100), 0x6e, &(0x7f0000004200)=[{&(0x7f0000004180)=""/95, 0x5f}], 0x1}}, {{0x0, 0x0, &(0x7f0000004500)=[{&(0x7f0000004240)=""/66, 0x42}, {&(0x7f00000042c0)=""/115, 0x73}, {&(0x7f0000004340)=""/145, 0x91}, {&(0x7f0000004400)=""/205, 0xcd}], 0x4, &(0x7f0000004540)=ANY=[@ANYBLOB="1c000000000000000100000002000000", @ANYRES32=0x0, @ANYRES32=0x0, @ANYRES32=0x0, @ANYBLOB="0000000020000000000000000100000001000000", @ANYRES32, @ANYRES32, @ANYRES32, @ANYRES32, @ANYBLOB="24000000000000000100000001000000", @ANYRES32, @ANYRES32, @ANYRES32, @ANYRES32, @ANYRES32, @ANYBLOB="000000001c000000000000000100000002000000", @ANYRES32=0x0, @ANYRES32=0x0, @ANYRES32=0x0, @ANYBLOB="000000001c000000000000000100000002000000", @ANYRES32=0x0, @ANYRES32=0x0, @ANYRES32=0x0, @ANYBLOB="00000000100000000000000001000000010000001c00000000fd383a027ec0cc80000000", @ANYRES32=0x0, @ANYRES32=0x0, @ANYRES32=0x0, @ANYBLOB="000000001c000000000000000100000002000000", @ANYRES32=0x0, @ANYRES32=0x0, @ANYRES32=0x0, @ANYBLOB='\x00\x00\x00\x00'], 0xf8}}, {{&(0x7f0000004640), 0x6e, &(0x7f00000048c0)=[{&(0x7f00000046c0)=""/38, 0x26}, {&(0x7f0000004700)=""/213, 0xd5}, {&(0x7f0000004800)=""/72, 0x48}, {&(0x7f0000004880)=""/42, 0x2a}], 0x4, &(0x7f0000004900)=[@rights={{0x14, 0x1, 0x1, [0xffffffffffffffff]}}, @cred={{0x1c}}, @rights={{0x28, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}, @rights={{0x2c, 0x1, 0x1, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff]}}], 0x90}}, {{0x0, 0x0, &(0x7f0000006b00)=[{&(0x7f00000049c0)=""/4096, 0x1000}, {&(0x7f00000059c0)=""/116, 0x74}, {&(0x7f0000005a40)=""/4096, 0x1000}, {&(0x7f0000006a40)=""/190, 0xbe}], 0x4}}, {{&(0x7f0000006b40)=@abs, 0x6e, &(0x7f0000006f80)=[{&(0x7f0000006bc0)=""/154, 0x9a}, {&(0x7f0000006c80)=""/188, 0xbc}, {&(0x7f0000006d40)=""/82, 0x52}, {&(0x7f0000006dc0)=""/214, 0xd6}, {&(0x7f0000006ec0)=""/143, 0x8f}], 0x5}}], 0x9, 0xc0002101, &(0x7f0000007240)) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f00000072c0), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_PMKSA(r0, &(0x7f00000073c0)={&(0x7f0000007280)={0x10, 0x0, 0x0, 0x10000}, 0xc, &(0x7f0000007380)={&(0x7f0000007300)={0x68, r1, 0x200, 0x70bd25, 0x25dfdbfe, {{}, {@void, @val={0xc, 0x99, {0x1, 0x63}}}}, [@NL80211_ATTR_PMK_REAUTH_THRESHOLD={0x5, 0x120, 0x31}, @NL80211_ATTR_SSID={0xa, 0x34, @default_ap_ssid}, @NL80211_ATTR_PMKID={0x14, 0x55, "9533883b903797c12347bb3fd8459dbd"}, @NL80211_ATTR_PMK_LIFETIME={0x8, 0x11f, 0x1}, @NL80211_ATTR_PMK_LIFETIME={0x8, 0x11f, 0x1}, @NL80211_ATTR_PMK_LIFETIME={0x8, 0x11f, 0x5}, @NL80211_ATTR_PMK_REAUTH_THRESHOLD={0x5, 0x120, 0x23}]}, 0x68}}, 0x20000040) openat$dsp(0xffffffffffffff9c, &(0x7f0000000000), 0x200001, 0x0) perf_event_open(&(0x7f0000000100)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r2 = socket$packet(0x11, 0x2, 0x300) setsockopt$packet_tx_ring(r2, 0x107, 0x5, &(0x7f00000000c0)=@req3={0x8000, 0x6, 0x8000, 0x6}, 0x1c) mmap(&(0x7f0000000000/0x2000)=nil, 0x30000, 0x2, 0x11, r2, 0x0) sendmsg$nl_route(0xffffffffffffffff, 0x0, 0x0) 16:42:09 executing program 1: r0 = perf_event_open(&(0x7f000001d000)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) sched_setscheduler(0x0, 0x0, 0x0) r1 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r1, &(0x7f0000d84000)={0xa, 0x2}, 0x1c) setsockopt$inet6_int(r1, 0x29, 0x43, &(0x7f0000000000)=0x1, 0x4) r2 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r2, &(0x7f0000000080)=""/196, 0xc4) ioctl$LOOP_SET_CAPACITY(0xffffffffffffffff, 0x4c07) getdents64(r2, 0x0, 0x0) splice(r2, &(0x7f0000000040)=0x9, r0, &(0x7f00000000c0)=0x4, 0x0, 0x0) setsockopt$inet6_tcp_int(r1, 0x6, 0xa, &(0x7f0000000080)=0x8, 0x4) setsockopt$inet6_tcp_TCP_CONGESTION(r1, 0x6, 0xd, &(0x7f0000000180)='dctcp\x00', 0x6) 16:42:09 executing program 3: perf_event_open(&(0x7f000001d000)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = socket$inet_udp(0x2, 0x2, 0x0) bind$inet(r0, &(0x7f0000000100)={0x2, 0x0, @dev={0xac, 0x14, 0x14, 0x33}}, 0x10) setsockopt$sock_int(r0, 0x1, 0x6, &(0x7f0000000140)=0x32, 0x4) connect$inet(r0, &(0x7f0000000280)={0x2, 0x0, @broadcast}, 0x10) setsockopt$SO_TIMESTAMPING(r0, 0x1, 0x25, &(0x7f0000000040)=0xdda, 0x4) sendmmsg(r0, &(0x7f0000002040)=[{{&(0x7f0000000080)=@llc={0x1a, 0x6, 0x5, 0x2b, 0x5, 0x9, @local}, 0x80, &(0x7f0000000000)=[{&(0x7f0000000180)="74a27d4d309256ce8d34dcebdac29174d6fe3347a7aec712333c2f0414cad96fcd5543fc2a2f80ec08f44837f9e512bf947801c537bbb446b8cbda0e6498faf8b7a71609f3c31f19cd9daa70ecd7e4ff2e23bbd0e54df7e5ae5c2d9523ed22657248fa8e0b04", 0x66}, {&(0x7f00000002c0)="21cae31bb14420892e8bfba3b5c96b1334a753a00a96cd0a5f447cf5924878e2ec7ac8686d66d8e14d3e83db36652383f8b76dbe2c2a04e09b41e28fd27583366acb17cd80673f6390f3e755d711f4bd59b465bfb4abf868ae44e260e9e3cf73c915b91c782b10e92e5586ee8cfd4306e59df012e2f65ada311e6613499658e65708c152808940b1395918b6f228fae14d6c35f94dd3", 0x96}, {&(0x7f0000000200)="8e7ac2cd1a56de9603293ba6756bb6949d7dbdbcef0e0e0b740b814eae979d09eff1c6a9fb76b2f223379eb82e96cd2ea7f90300bb9b7bfd22ff96b856d7c3e822db0ab377b2df4a", 0x48}], 0x3}}, {{&(0x7f0000000380)=@ethernet={0x6, @link_local={0x1, 0x80, 0xc2, 0x0, 0x0, 0x3}}, 0x80, &(0x7f0000000840)=[{&(0x7f0000000400)="42335487510bbe02ec2392e17a9e586595d69c8e60b08ea97855e6c15941557c0bb9ec863b9d3baf9f52fd6b21082337ad", 0x31}, {&(0x7f0000000440)="fecc778cdcd0fc6c0dea89fe921813acdb05e05f190ebea0b3bb8f789006e869dd2539fec5f8fd5e70912323f810132e92bad99a0497bd26a8e6ac07a137ce00f79a701f026718e75c22b39f8c0273c38f725cb37a693dd2d0915e1b28445378263a9edc06f682ce929c1939e687b903c5bc51c03e1249520ac62f8b8715962f07a2a824ab4254afebbaa49669bc0bb17d41ff07bf7eedfa579fcc638ad734b57322bac5c1c3ffd72da6e23114066c6d96bbf7b6cc92765a59d5d1eb05734778cc91d480cc1851fd8c1ad081ac0eeb3a43fa20e6beb41bb2a4f8f37ef4d4a82a868452", 0xe3}, {&(0x7f0000000540)="35c61daaa36c306f466ae3a3acb9d9f941eeb6a1794e621e7880fe3d63726b5399b536fc1788cfa79acb8a15d56b50fce9c909b85b75d5771741d097d5c5ad10f46dfde151b366b26b5ab1d8b44402b9d293803b753ed53c319c5d1eb67c50ce03d05b4f3a4d123805d85f3b1766b24adffbd3d7eb1c0df2da5510cef637eadf8dc1ca87fe1d4753493313671c2eaf7c79b8385db4e6ba4ec71d93b8a3a7974f0707acbf2cee40320effde4c85080e8e12c77901", 0xb4}, {&(0x7f0000000600)="94cdf4e0d2c7ee94bdc2f3dff490", 0xe}, {&(0x7f0000000640)="320fe79188cd0f581ce62f356835b19e471ea7efd4ada9f48c58a7c60aca39d93e04c15a0b974ee76f309390430b272279a2cfe078dea3aec329bd190474cda36c46337576190fac2be8b840e142245e0513988a9cafba9594bdecd8a10f07b8f53c6820186d26e2067800824f2c0c9548179f414134b7756c05d1adea9ea929fe", 0x81}, {&(0x7f0000000700)="99c2e93ff16f0b5646e68a0341cc0b40812d99e87a2cd5d5b781f7c1c36c3a98cd55cf4d3a25d97e87e7ef261b04a4d7c8f437afb7ede65cd57d34209fb65af12d0f46a980417d5a008f232fbc26594d66e226addbea4a5b81acf6cd7c59d86d53a83f5476afee58c6cd260e3206994e6b876f27756eea2ca000c282585c673c864158d29092853e0fb92399f958", 0x8e}, {&(0x7f00000007c0)="8fc49226ae82486f4fbc6ba10cdaf9b012c0f347971ed75192e0cf0945a7697fb6daa3975bea3826adc833d3f7e3cee8375c91a81ac9897c8f4c0159e068ed3b38dc0e84588f9b71f64891cc9bcf8f41694230efee93bdc4a7834e30c2cd3da1e58677df9293d103fb3bf8d08b12", 0x6e}], 0x7, &(0x7f00000008c0)=[{0x18, 0x11c, 0x3ff, "0f19afc27656"}, {0xe8, 0x10d, 0x9, "31ce4e241a9f7042c1a99d0b39a968037021f006578f89f2a6197a4218f02078c0a642d1aaf44b61704d30b6da1f3a167d22ce0d67428f8a6dfe0d91689bf9415b25bf9a57e92769d9778eeaa3774325d1ff28a5d9052ce69242b0b51ed24f224846d548aef39dd7692b5d747121e5945b1a835b570c6ccc0dc067b41d0c3e4a5e0c372e299d838935c57ea04862c7faf3574bc592c4efcfe7922c718d45ec6b105c5ef835429527b3caabbd7cf51f85880f5968c3107e114071f1bb4b90f8f4b38ef7d023948faf738ba33dea5ecf8997b49e88fd80c1"}, {0x10, 0x10a, 0x1c}, {0xe0, 0x0, 0x5, "aeacfce52b0339f981de9787f964b803f8a107be4ffbf1e7d55be406b00c67b4f0ba99c309705e2bd295adaae2c20a311bafe103f3701d13edd8a192e75aaefa8e5d264a6e90e07ad4f2b4aefee7f29f1a11a922d369b5976a845b95ae803a2b5016261631dd419219ac94a47245e3baf0b168ff508710940021308b690aa4eccd893d09a41b527dce9254325a586cba1aa12611b51a137e87c893255a2749dbcae82894ba8ee424f61add61a21927e09dd977e84b1e18eca0f7f56836feb4e1b4ba5b553cfd5ebbb89bf28f"}, {0x30, 0x10a, 0x3, "128c5d0ad75bc5e08180ddb7a777fbfd478d8f359c8a6c3cb6fddda566a86e"}], 0x220}}, {{&(0x7f0000000b00)=@caif=@util={0x25, "5b9c90af93645092ab4984a55ef0ac7e"}, 0x80, &(0x7f0000001b80)=[{&(0x7f0000000b80)="57c7c56fa89285fbdabf0075359c95117cfa965ac1f13979a1f7b396f176a9e4e0a92c80ce17e17a03577be884a790a9fb4275d5f76c580cbe64b352105a97ccb66e250f9b6f53cb2876a24ef33268be2020c2d196df0b68d8a9cb4da8db60072747f56555f7e0025b6e3d417d7e8c22f3228aef57dea01ef2c74906ac22950d464ae34b76c646c93003a16210338cf4301f48dfc382560e11369133eb8fe4d50c434e5455e5cd4c5ff454ef8dbd9f23c3ab7611f0f71e1886893719eb1c8631d703a12a85ab515890041dec64c20efae3e0cc8e22761ff9291798c27afe8ebe2716b3af2a27e411186b62090d8419c5d798bdf33498f4589c719927cd29d59bfe74adf0a47fc73b86a477292cd1b71ae3e0d61fd86ba3030c1a31f130802d8e062f898e2be585c929158257d3dcd4786d775eca08cb98a3cdf57454bd747586506f654cb222890da75dd03ef0dc0944c99c9a294894f03263af700607f62b0ac6df6fbdc27eb5664cdf59d7b45ccc1ba0ea5165c480ca75b00651004cae9a3c04f715fa0c6acc78bf85afa3b5a6b1f23490b9732cf09a387dde018954b04e9d9e53f2b1955aecda69a7e4126e16dffafb22752b95e7ff7ae004669ad347ae508cc2fbfe2284f7404811f342bed8e9106ee0a8bc7c0379e4acc25e76581edcb021f496e7a1a1fde78c4f71bf0b55c976e6bcd042934f1dffee790e7c31ee21f23cc0e4db0b2038ec4e05a798dbaede90f653b1aa4e5f38622d1594c81741203dcceda7f53264c8addb68e01173b05ee4357e2b87d5b874bb66b482bf0dd1b97adf15e664fa719922aac85110e46c07d9d7e31bafd158817aba25cc2500eb39610b8f0b42bcce90cbf16324a5a39c08a7055c3931affcf7575eff754b4d5d41acc5cc6b1f7da6facecd2beed5a8dd57967f79cd0d6664778add73d7bffe4d7367615aa054e27fbcc3af1f2df4bbbd6f6fbe60248991a0c3c58334f48ceecf1d0741f088ca2276ea5ae91e45e419606aa27317b252ddc2a3e90791189f6553e62f5a512c1e83c3ccaae74e246faae5130dcf6ad45969f7af0f1e1e835c4ef02ad5ba34112527619b7df443699b39d012e49eb3d2d5d22a39bf75861e93b462e0b593977e3756a0b8c8674b02f98a253c041d987cc96c515df2c4732a5b0f016f86fae92d55aebac98c26c9be9043279691139c091bfdefca369344ef1e39ba08054e84d3bf2e9893081f314ff8f6b8061c42e1aee4ad5fd29de622555526d12b0fd78feb651635c6216ce056492722d6ae24239774eb1549c8c34180ab491d63a806e5c67f2ff0721ee8adb2c89b08913d03fb83e8e8d3b21f721f2634ebe6c7354e2e1ee70747070fa5dd0ca9e8bbeabef292564d4bedec9a603b1e9192b39d6f9a8911bebda93b626fb734cd4616451ac013c5580f1efb4989e9d7791ff983b160c21c6ab456d218b70330f1732eea26f82f60a70c26db7c815add3de3e7219fa699b1f45aca6a81d168c8dc6b9e724e963c54fa3acf84658bc5c25b1766d65df9b47f1d6b6a39ea42363336b0d8775543cb2bc0a4cbbab8063545ef7e6419d252f778153c36db183b3adccbcd184afe59002f221e66fbc11eb3f9663a17f5d20ae9d7e049760dad05c734c80685b6608d0216c01e8af02cd5efa0641be19db5c40b8792e68437f4911451651751f63b8c219497d7b16a2c44b4d3b2b4d5699ccc0f3d3fb6799fa48397c5c9d0f38ecd92885fcee3ff9e650e1b295a072967b08b5db2d3f346bbb9c64f10c66eea4a1ce867967823353418d64676331aba7da6746067a8d8cce1ab69b6de93368e684112844cad0b771c564dac8f1fc091352c1680f9821df781c59bc63ef79d4d8a94b659ec8eb7fdb47213e9082d2f51cecd9fc25bd7bd067a6cb3af356d402a73a6c7ce0de9151a7a5708c5938127dbad318a54f153214049aefb70d07fc09049b78624cd4b3f75f6519e5ace902eadcede96d73885c2d72f620d20ac848c761c136b86b34432a768d121302243c9750bb14abb58c57be81717f5937fe38bb173b052cd268582b0bbcb3881328b1f1f5645c05fe0c32f6bb9895e94adca6bbaf2ac7e7af4eb9f881686c6d8ecec9afb02655c7ded7503a9200b466564517dddd88cd322d29de93d0e7ffa46fa5ae4d2935001afe6c56996531cc6880f123babf781a2f849507c8beb54ca8feac97afec3b770316b53f51286c133595678daab5027bf6ccd45700991e200ba58d1ab3abc241dc817aa38f260232a47b64e44756c8fe1651b6af5b95003558b295566c3dbd468e338c23fe833315b39b707b01101a660eafcfe7afdbcca09d9adb366e230f05137192715aaf7c7ba67363a2fa0fb641aebd17255473cba27cf7bc4eb63d415c7eba41eae6b91ab085466d31c41cb4e7c757cfc9135a01e4c3b83fe48a584c5a8cae262bc5ec8f606144c00a46a1eaf45ef82ff2a2a2cd83d57fbe7e2618cfd95565b3d61ac361b4dfaa0f371505c9067733e0c00f3d6f6fae6ca7f321a929d975bb5b8222031a0934cac12abda0d1f719546be77d4c298d19a3bc3e8a447c391df37ffca1b2f6eeb9059bbbd08cb553fcfff4f53937895dc5db35da2425bdb857140c18b2bc257311081c7bcf557a58bb3413bdf6c0b3669a17ad009c21ce1ef490df436d765bab9341e5fe3ce04ee58b59143395b3e80deeb587799e53e18265a6d19f5fbc2589048d04a01f076e6493ec6d124c91d0ab0c295668cfd6e9b2776c28f79cfb4ef6a5d3dbbef5f099ce3d5d4ba3929c399719bd68eaeca7255a36ec99e3ddae49c8e1dba438e925d0aea751622d7b2af6750d4a57aad7248b5867d7545d6598c3af8eadc885efe74f783499a8de4ca7e574b6f3e6a687d01a64bbf38b9f4180bcc897aca5531a5cbe46bbde03868ddec6921c6d8cc320220cd7f5159762a315e202c7e64a67dda50c63e86cbd688e0a1f547d87cf3b7bf6e28d32d4502f8749fbffb41ae303b7bcf2efe570f29fe9aaabd9e2c6b65994f4658547279aad23388d2bf78b3b67c0044bed9399a897f222b2f4aa3fd995ea786751fc4088656c01d71d934633323e90dfd84f49fdd2386ddc212e91a7b85bd1594ae61e9fec384ec47516711d9dcf88d4f0042e0b849cad20a7b93b2a47fcb33727f1c9714a26c5b1ed328a2869fb070d33f9f6c439bfaa4ed753cd12125be82af42039c2bcdce796acf870fd41ba9d663a058f0cb8d1214b40a74afc7eb32143ce2286849f9767686acb2435aab33cc7e1cc7bccaef943658070d7812fbb56b73af4e209d9631d3f27d6ec67c3651b265bd015183a057099b78286546070ad7e61c99c42c82befceff0e7cbee441350d59c113946f6cf6a9aa5c5c0e14acd19668ab40f314a2f3a3e0a4b3f1740a76eb7ee9a31f17e94cb596cfb3b9b5ac3c4d69d113864a4ae9117c0a35ebaa22afdc5441e145c1ace56f9cf8d9206767ec4926fc5b62a09e6de0fd393b0d671dc62a048ef9dc86bcfbb56e8cc381a9bf8da7c980d361790ae858b3e9af3957383b98c27115fd170e0ec39092ca03b6cddc8972dadb9613f5e5235364687d3129ca5cced08d4c1f4ebd92a2d64ee9bd28a44fed963e86a9a41027e11472f9e26f4cef812b7e2a172bc10e7218240f2251d886fece666faa4d330c576c25007a458c055e9c571f84f469924c723e974ee7e0638e3334627dd2d91028655b0c4457c015b30b627a9f70116485f2f51346c45ba9b95d5cb2d5e019bf314701bf28716b285246aec770e36985b04e21771196075ed0947105b22dcb5f8d8d0a1b976ab8a025c68e7c14446a4d8ef3d97157a1052d1f38a210dd0b98d513a7ebdcd8245adc3e97eeeb4c5b3a37d3c3ff94a25b735b712c2996ffcf4a17bce9c82b41bdfb6b3b53396b63abbdecf2f3c33523df9f9d8503098b5928d52c66e6d5fc32479db4d8bcd8adce81d21651e50c20c902731532dd6079846e1332a923e3dca945fd94440ba1c31356d4c7d12c3ebae695a674e14a9cb850ecddbe30fc409e0a295f1c80f582901f449c1a60147e376c62707025986f13fc6c9b068acd6f7051dc5e2a791d4fed339f1e29b76351c9bf659b9e48498ff201f6d87c2fba289fd6738c3d763529fbbc2945aa2008c8317a7f38962d4440782a9e22816cacb5e4dc3ccc633ef5acbb1b22c782e203e17a9c34e92a69c20956a80413595c0bb2bdb29cae5efe22dd117dc3a533317fb60089b9cac3777f8af38e4fff2adc97b5639f1946e235143b31804c74e0d760a38dd78dfb554c4ee973b64ccd29e738ef7d57c3bbe3ef7658cb284e88621530074d642e90b4a1241f893c2c72cf4f8cf2633e9f3c77a42cb9f736701371bf7ca59d9c26edc725277d2acdfbbf98a1706595e3222e68e60747b3b65fa06e40fafff75be6b2c1f75c8ba6860467ef7ed881bf6136bf3f50b2e47e62aa0f4ddcd9a71ca8f62c3bb0a793f99153b70f3e3a6d34390c551cb9c673a72dc2f54a9453b94ae1bf0a8b0bdc94c438ff35ad0645194277068497228453d57c94207f039b3404dccc904a9663581a8df442eff83d1025c26c5aac25dc3c98d6b978995c412ef9820e3667bc4ae5b2f19772e68a333ede81e4d21d1a26370be6f7c5bf690e0ed70996782786b629ed6f5bac026de18c3ae8902e211bdacb0dc8209a5c2db0aa472e5cf0cb2c818725c6c123ac1a011cdf61bf0adf4c801f6bd4766456833f2194cea1eaada3ddb3a9b67097c06b87a7e75b8782192a5e92e0c68be8a28c74b5897572bfa37bef82a0ec8b8c074526e7324ee99b8b8ec00a4a38581ab9d47af95ab1d45be21cb12c78dc75dca861c0b64052a69a7047626aa750661b982b7cf553c9df714667567ec483fb712646d4e1c36440cb9b708e6cb408c509a5b1848c85a4f776aa2f91984042079abb3c631b95e12ae70967e6409bb99c1dfa535a06cf9b6dfa92e5b5de3e8faf35984374e0f57d0e4bbcace63691dc473192ff5264a95dba8b0f516aae619a1979325c2ee2eb03c5f9a71d3361451036ee8e164f5c187fc1ba87e325317311db89e657d07e5cd3dcbbeefdf9a304e97c04551bc001a6893c82824ed7839dabc39130fe48a2b0be05941fc1ef0f43f63b516f211f058f7556ecde6813d2593d93a5cfeb7be20d4d2166af19c4babaef64fd91475c645b50efae3cbfae594676bb275a46c6ee37e9fe5c000ec6b852f8fff79c25076e4277406dcf97c48d38a30ffecd189112d885f838674daf0a35143469c21136dc3daa1702b2f80c34f2b870b4887e4333edcc5436d75d140ffafa41457784e37fb48c0d56a7b0fbefd1ef709b5c34b08e3fdbe08aa459596cfbf184f9c9ec0ccfd2b47799478931aa7f8111f447e81894ebafd241bd83b5302af5ca888cdd9033bfb79410900a754def395326d6cb26652e84ca6de0541fce083c8a64d63786da006b1a347829e3aca49c5c528e984aae839b6b499cb885d36a8571830a4efd1fbc57262d2ad5fbdc7e9f924dbf40ad59ee1f937808a93311aa79c7efd38095b3106a3dfc8330a0ea717c031107a2542bd60a6bbefacccf0a2dbcdb11ba99686bace9c49bffddc2706ed380b05313dcfeb9da0969882e3aa553b48bb28b31ce1a885b459ba456c04ff6c0a03bbee908791b2745a29182f2567d5ad33a88f3779df5b228464398898cec60c6e9b7484b33d25b267d9e0a2b933047fb08c6d92a14581f5d26f20ad81de0e772ab309eddc02413701319d5f5f5b3449ab7a5cc649e49d3268c714", 0x1000}], 0x1, &(0x7f0000001bc0)=[{0xc0, 0x115, 0x1, "ead78865b00f77b575d7a20c1f5f09c8f6d53a6224e4da76212b85b188c470ea6c6e15e607588fbddef41d0fcf40c4e166aaaf756f77d740ea3ef3921e8137250dd4a5e3730eca57e1053feacc5c9bfda2b5b2ddaa62375f3be47b40ee286ed162cea8cd3a5c3ed70683cc7a40aa5028cee0dc2405cb5f14e1c0ff34c2929a27de46deeed06669a24ffe162295c6400b6d7c1abf083d2e76a5b9df723db57b9c1e4b569017b3f6bbe3"}, {0xe8, 0x103, 0x0, "8822d715fd1af87e41e28550a40ec85dc68631ecea68dab22c8e615528754464036c81157ec029a4057b47491051d32154134cc776b1b7a4b26330b160af8be33f91335e900526aae19fdd9855f16ffb378180aa86fadb21231466e64662cf07816a3823abf01c1e12733c6ad032e4fd2913c0eb51afb30cea7fe502308d0069ae025d75a75e893de9fd3fe502771ed380c8b718f6ce19fb792e0d7bfac267a4fcc44eb7a63cb5a842dca7f6aebe2d2adead9f5ce8e0f5da1219e46ce29783210400ef087763796104c299693a5bae227745"}, {0xc8, 0x1, 0x1, "ba5f8d7d4409ecc177bf788cf8104bd9afd9ac73dec23aa343595a65515565372f7327cb5e3e727136e35b9c04f214a09f5a84a3cc6e9cb8e895c801df6178abfb0168cbb86fbbd6067b48c51044007eb18d1f2c1f9ef62746defebfc0b34e0fbddd251001dd4e08632cffdc7c5fd7c8843816e8216ad86f60482e45d8663123b87c6ad2f5045dc3208d88fdf408a07a664fb70dd7cbc4f07211f18193e9ebae405b28dd1daec854f0eb0d1b1c44618cc24a15285e"}, {0xb0, 0x6, 0x3f, "47dbdc17b6ab571cc3e650b7722c0a3a1c1ad4675ad706467d9f17160a1b9399a44c093250e5ad51e046802ecb743b264100f91effd7b7285bc8af710fd8b133ef0db63818ce5167ac11d19f6f19aa80114193bd2ed6485c75612d3ed6baae110f1591ee1eb1631215bc290d1e90c176077aaa98d87e1dc25fb23c7829f8e0ffb33b44a300302e5210730edfcd32de159d5067e2da05821612e9"}, {0x110, 0x216, 0x81, "4a1650cb010578c13d40b6b38ba8108425007a23649b0c5beefe1f84d0eda22ab3967d74fa807e039bbfe06d38764c1ce9531d7ee5de6abb3922568bee95778c38caa33abfd0956f75a4945f80f8a34e3ecc7df4ec6f01dc4887ef29e535dd5b844967231554d2c85c879db0867840d74c37fed5fb11bb8753f7124bf32558f0db81e63cff90c3b80df5830098b93b5f2c825f5975a4d4435d6ec55d60f4115807957487f685b3b8c5ce2ee6e84de0db1f4d9931804e7dd68f4b646b8bf19e510924ed94e8d9f0bdb4eed7ffa73e242ea196f0b614e27b0769b30f3cf77ec6214ba5b284a60277f9c1f47330b8324f0affb47a83ec3da31b9470ce9b"}, {0x20, 0x10e, 0xb60, "9c46361e06fc484da07b88fb752d441f"}], 0x450}}], 0x3, 0x60004050) 16:42:09 executing program 0: r0 = socket$kcm(0x11, 0x200000000000002, 0x300) perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x8, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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) bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, 0x0, 0x0) socket$kcm(0xa, 0x5, 0x0) r1 = bpf$PROG_LOAD(0x5, &(0x7f0000001dc0)={0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0xaa) socket$kcm(0x2, 0x3, 0x2) perf_event_open(&(0x7f0000000300)={0x1, 0x70, 0x9, 0x0, 0x7, 0x1, 0x0, 0x3, 0x2, 0xe51296f258ae052b, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x3, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x60, 0x2, 0x0, 0x4000, 0xffffffff00000001, 0xcf48, 0x9, 0x1, 0xfffffffe, 0x84ce}, 0x0, 0xc, 0xffffffffffffffff, 0x0) sendmsg$kcm(r0, &(0x7f0000000a80)={&(0x7f0000000540)=@l2={0x1f, 0x1, @any, 0xffff, 0x2}, 0x80, &(0x7f00000008c0)=[{&(0x7f0000000980)="58bdd2299d0189e061187433e596141cfe9ba57668594f2070e8f70bb1e9945aa023f53b0dcaca11cdc0c36e81d1e1d0b27766c79aada4c87c20240a9f875ec15b20366f7b16f93f881f6e3208243fa205a0f6d9374c0913354753a772db39a1410bb48f23309b6e0488d81c33489503c59e605ebeeb3add2c259ac672868469d44c02200064a64c89ef6c1d83b6e96279582011fb1c0df34724c94069cca52831c4709bf4c2314947f587665c868001c60493b7fd37631cf2638ea8685b6f1aa91ae3686d27a935965b9aae47302f1a1e5911519b53", 0xd6}, {&(0x7f0000000d00)="bea8c0c631259e30dd14e7ccad58431b99ada6e319304dc5d4f425e4a2da9d3a77c72f886cae92c84ca89af27167020fa89efc2ac3510331f8ffe552f4be1aa518ff5552bc23d5587b0b738e3b2d2d384aa39ebe2f158460dfc6bfb5dadfa3b815d84b29a8a8af04ec8e03d25b18e0c56792ffeb151c412872c3f8255db19c0cf830ad00949e3cbad9033b8e90b59ee5e6f1e461d459358a20b04c1ce288b360be966338427e14c2189a96f6010070c617bf64a749ff7821d08121ce2ebc302f283b1a3433fb82b22b6a43497657cdc39bc43215113b6c1e801fbb54959e22977f3c9306512d3972e0ff417fe3ede585ba97280d57e87ed49a541a6fd1c035da3c1b08d04217ade4e1e08a9183f725113bba8ea9240571d4c63b24c6a19af1335e0816f4ac9c59fd30b5c47f0fc2a6c7594cc89a9db52dc21abb789f58b8ae769d767fdf6f46986606c653e6422136a5aa9e4107727f320a5168e3fbda033fec502c883d1ab34dc23e0ed50c346e3b19181b2de76d9a12487934134b947925b43886e71ae6eb74fffa9c61faae3e13b4802c164315b09dd85f4f6b94ddb02686ddf2a3cef52ffa58805bbd17e7f45573232c17341912318c28e034439bc97c90eb215eec060a5a98573ffc38c86e44509e5b443f73d60122a804a28f538a8d141643360d4eb37c77d20f43ebef04a2ab6f9b6fdc9c54f2d7d33fbd2dbac1190a1f8009ae92c0bdcad6ba547e161e4a2447599ebeb9a5910505f2dca69f773e49db7c235a4e4c3735456230e7f7ebe1e6bbc4659c75ad625d91e7b3fbe32bb5095601b5230ab75e48a683289f488e4f09114bbdaf0f8a65f2785861a7438967f44d6a65722c10af0f1f393490541e1ed89af70fa26e687821b763f277e7d1a8b3e047a39996ff635ff0132685b39689ce5335b0ab6be91d6cfedfee56b8c9e32bb4d67fd266ea0818e3d2dea7c20be8702a7bb0d2e37a90d91e3f1197f78aac6a4c6f55c0ddc9171d1a2cb2905c7c8ee323ea0c74084732cd5c50645aea647a3d814b5bd8deb090da25e3923245f16f7306fba40b67833d9c271e2c2673a2646141d3d3b15ab1160b726936be2d2a8730ca842753ad0be18d4bf889833a464e7260628ed2ba3c58bc70483c52fd6c3ada0e0d913596bb6ab75500b6c5861a8260234fcbb7c9ae20435dd26697e8c8b06fa17e0f0c0c888bf99cc0f2fa607d698c25191b00c7bc6e46d202e9e59e689aa2afdc148a789de5764b44ffd62a45527ce1b0ecbb3ec865a8d77be301398e9901ffa8e1414fc4c17d1b68b27f3d610c2644d21520f10450243252c63178ef6e8ecaf5ddf15199f45a81c6ceb9aa01f8399cb2b9cb85303ccee7f44c450632a3c4867957c25bf01190522e77460a8231c7690a05f35f7d462d69be4a1398fd19fb6a978f70887b88f02a917870e26b784c65a9c99a3b61dbbef8e535131ac916888d5908edc48c3d3feba7add288aabb735129712d5e08a339cc483151f17f97eccea4a202a8bb5f00c013d88fdc8a81511d451be0e813333cc799eca5c929c6f2fc922b670cbc86f3831aff215802d3d0efaa2da2ccc95362b3f03f0918aaa2b1e6c4d8d5a658c27339afa8885cddb2761ed33663d6afd32ad87b2cf7c20c2c0e40474d6268a125f68f8b76c62dee97ef03b4ccecf8ae0c67004407fb0d8d6b1e71028224aa57f6c87c94f909badfe4bbf83067090201a81493b65723d8c9da9231ab552733fe52f431da6b3417aee5840c2913edc1be4f01a478b32add935084fc1ab570dd7cea440c581403dc7c29cdd1e96af65b91946cc308393a7bcbdba2c7167cad14cb3bfafe0a7c2c9ec73462f7e21ae5b6dcaa586c9d380a4e168ede5d5e9d7a7490d5008931a21bb66cbd1838297d80b2399585e453451d814cfe874cc250836326af5b5bf4bf5f482e8a08c6d044861923c7f95db9d92d4ce0329e5517fddaadad579e5b3d737a50661c021374969212fe1433bc7501a6f597b7c084b008cd1e4167292b8f41b212446c505d0bff161189e483c9f6235f8ede5e386e13c1d87484a7a828f33e6779771990388d0349e1189dc9ca657a9772558193970cbae0a7e778f458938d82692a46bc421e6793ef99a72a6f14dca5c2b0b0e52ced6b62b2833c6b6957f8f18ce9b99557113aa7752da01d97d3898cf24a0af3c3afdabc8f4fec153391c2e43c7305775581e201de519a23ee4a4f825f418cbbdb4fa575d6c76cfc86e4e4428c7fddf7e96252fdf7bbbe3ebed3453b18d06727b0c89a06fb3b29bf175cc32889f9986430165c8ce53fe4a8409107da295eb61762cebd09125662b2a00b8b61d7075384c7c7445ce250e624e78c8f65fae753eaa7b6773f4e71ffd5469504de3176e8d5059f90f0e0527e2fc317350bdcd93768e288730bd3977c679dc9187c6162ae4de39bb58da2c7e75b9968fc57111c2800541063a9a2a48cd67873eed67425cba066ce70918f7b125070848a4f8e963887048f80cf34159036b6e6db099459a0b49af9da6311beeb3caf7152057ef7082b98d936e4fe6cf61cb190dc446cd70603242bb8dcbe386480cc8bb59aad17063623aaa915003145cbfd5a7f673144c698e5ef3c673426c811753a0fc1d5dd04da129fd3307ae200cb96d3d721b7419d39111abef5988fa8edc850973ff4649b607bacc37157203ae2b2bdbea6a25ec0aefa7cb474e5bcafcf50d815da7865e6b1e36441b9ecb751705589a845d1b7008c1425362a79e4f7e3288cb2852a30fd35975623f41790adda2382777e3a66e1fd39270f8c2e9a90d92177f7645c94000465e176633bf96642980de24cbd2e1f3c74eba375a8b7d8484c7a1ae36e2ce54f516f9b8ed3f7a43de0b2379c93fbe6969303a691581999592dd94569e7f2920fc75bd14ee7b8671430eed8cc7c988840b99b2318fd9c35c1822b284f99ee6a9e10de0b60c4362cbc14590d1ec5f4d348548a3e99afa75bb5e0daff4118e22af3865052efea709132686d2b9bab8f735bec4c46495e1aff979e205fc96cc13561e8ebd64d4585a5db7f8a34d3b3f9dcf1e15daea1c3f143292d02401de72f199cfda0f28a3b52b936b3351aa25a565dcf1436623975abf60f449bc5c11539dfb054af2b3165a3a30e40ecb43b7fc2952e4bf4e20934fc38ed6b2b5da1dcf07e44cbf73021e3914d31e5acd9cf6bb018c7cba93d58b4221d4dcf2873dc341019c6f2ec2bf1e7a78c1edd50584c5a5701ebefe1607ce05226675415be1375cb64c81e060e7929d58136234555a7cc964075ab7de87416cf13017c2d45eae8a598dd501c45c5bc8973ae3571029c74648ed16d80709bdbd6879c419ea89cb4fe7bd7d8d55a73ae3fde119bbbe3949bb897c4ec60b363aed5ad40a3bb72a993b3ba0b34223145b55437b1277b64cca072c4598ca1c89486a90571663425e2eab92f009b8a73afd209bd4183ac6a7161aec8fe8b3a0726b004632e70c2f7f0805e30706ee866dc1b75768de21bbc7c02b372f0ca12a5c4c10e906c5fd82ba8a01b2310db0e653a296edfebaa29d100ff9d9e78c0806b15de93609e0afb8751355162fc2c0d632a10059273d7776d4494349c2eec2816a4d6de8bb5ab90d6827c578c984212d6770c8e2c4aeacc93f87957c89def2d933d14baafa3ae1aa9b23bcc9ba55721e1246d7c11ac0f5f79021907e20dc8f492ed7c94d1bf294f5570c95ab4e041090f44928013674e783b3c989a940eda7e66b38c47990bebe125cb872ec85f1fbeaf9b1b15eadd2e7c88ef421bf473a7573b2ee1eb15badd50cafeba0b11d43897028ccbb2661acb7453ebd6be02848bd92322562ebe9e1b83ee82548ba14f4edd29f1974236cc9b9b5da280f3b91cbcb531c4f71b0c15ae42e5293e38145bdba160eb4966ea0ff794acdfa27d0c056e8ab0292c6d980ceeea46b92f193a9b19b30ba66797c914d3259ee1a7932177328e47d8d50715d60e9c38837d73e4f1de175a7c4879edcca260cc55451186d88d251b0a73457b9775486d70e8f89b9494204f77cf61eb945087e915635494674f947a95468bcae1d4823cad1333ced4f9f4e6799508b3af0f819bafc8ca45a3c1a185ef96b9e7687d0d8cb107fc63b315e9f890890e7ebc514088f162c7a373dd0832c66a2f17660a74667095daf84590ec1df7b754994a2bdfed3f6349dd7e55a932dd63524fa8b8731107ea5296da59e54cd2623440595aff188a3aeb508db00241d7c74483d9870e45f1563bfeee3feefbe6182ecc3490130e869c0392a0fda436e6944fd851431c779798d27da78fe1398332eaae1cb9585ca867f717c6d520dabcabcbc539d6cb151e3fd703905f986b624d4c94f8f1cb193b37f063af0483db1b8ad8e54ca4cd086d71682261e7f25f4579523125c147486c0e86715c1400352d0a3000f590d7d91f67c551c074b3be8b9ad9fea25842c6d0e2b062bafd0f98bc5820be5e40e6041807546388b69819917ec203d23411050609cf9a53e1a9270d4a38b12dd7fbf3c4befd6dfb94be2ca0437cdb26c68476807877e7c13922da998c8914c39a8050b69917291e8864edc55d76b99e21f4afa9a27f607059c099d91afb402b3a80ca9fb8024a6f4b5f9d5cedb122b2550ffe870c4aaea6467a1cdcd12ee9a9845b11c991add8cb38ff300199fb69a3c696084e559a560881b3048fb1f088c99fa8dab134084666a4ff1271fee19761d5346d9512f8f4c046915d627d5a61423ad7f457744c4c3f51656f248275e8dce151acabea7d6e90eb971b8cb2125f1f100700778649228a0f20a69dc4d344d31b2eb880b2893d834fbb8b9492b0af0d3e90c54444c6a240d2578ce13645ed60be0c3c492a8d2df0add2a38dd6f95a791aa281edfea5642f733120f66e36cd01b5c11156195264bc8f0e53722b0d5db0a802328ab3464ce0b5209b70a240382444362f1880dfbbeabf0d54847e45df37abada6b7a60533765a525122e899b7926cc3712c665c7628777d25088c04182d26bc809361058f3f926372d3316b791489719a74126f2c2d746add9354e8a32216d79ef2a0eb75b0eecd8666c4f149e3c8b732159c8496f668e5d6d9b681bb1e6f1b26c4d011e633ae417775904a8ff155495d905a06ed49e3884c04745bc62cf958e8457d6725fd72241a4e76612e19786cb0686f9d0ff8aae9dc52688a0d1b9e304cf758b5199c1cba1ed9e027a8a1d857ccfd35a876a6c4ae7316b91b92922ec779adb24cef14e30d181cdf071f1bc0630f90746f01792fa95e2b266f2c5dd98ee0781b6a13d86f4e9aee4b2aafb5f26fd3143b160149f04edcf491609f790a484e376de4677283d99fd24681171448b0b3af874059141f815f9b5b99c68f8d5f873029d3570ae6a31d6885682adfb29d3cf90b49c6c9616dfcff5d452e1395da27338c3b8db491622f3a0a0e87c416c6814072015ccf7188a6a062051c84639356ea18e7f3e1560642c48bd833112e6ea2320e7fb72dadca1e49a47af3134d6713ef3d32d12549148ae5ffddfe8cc301a63ee0d36fa6b177b4cc3eff2bcdc1521de470b604b3f8bc5bda34ffebe3500cc65ff04c765f2d791d9c34426ae379ccaf404981e7c70b33d3f68ba2f873e3db72632b20dcdbacff99ca2f3f272f23c0db95d997f91199d64623ff6a42478b910e920158ee6394fbe22c9efb37ee46b8b417dbdd56d3a17c2f123a7ec15e85479278c49ad41544266675cba0fb32b6ca9eb255eb6fcc454077ced2289b7c509eb5a1838e90e6", 0x1000}, {&(0x7f00000002c0)="4976e218d3e1e427f04057297be9fddd9e3f966a7349", 0x16}, {&(0x7f0000000640)="1248264dc2e5e6ae7fea453272bd7e2746a577b721c2aa8e3a1a978947d4c0bd468e0f6b5f7c0fcec8a4065acdaf0104379ebf4a901f9e4fb51d8e7d85e7dc255e6a5f469026a8decea3ff156461f4462955845e7337de79bd87e2f485f368ba6807ad6c99ce96115cef1e5bfe76d09770d78024a1a5efaee6c333c02dd65c094636cbcb4f5737475152cef1cccb20f0cb501e4f00c64d102c5d589f9cd3284a32e88fa4fb7528ae", 0xa8}, {&(0x7f0000001d00)="e178d88966481bf50b1eb2d5c253469d0f4613b6e9c051831a811593e92ecc10ef26fff444c4b4afb8225c43457deabcbb95c55a122256649e75a46b9e3dfe86740a3117d10c96670034b328627325980b42b5f9630641a01ac9c5f26effdf0f74bb98fc608c7abaa92661b72d3097ff8ee3256d05689fba9738805e062801a925e8cf05ea91", 0x86}], 0x5}, 0x4040091) ioctl$PERF_EVENT_IOC_SET_FILTER(0xffffffffffffffff, 0x8946, &(0x7f0000000080)) bpf$BPF_GET_PROG_INFO(0xf, &(0x7f0000000cc0)={r1, 0xc0, &(0x7f0000000c00)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ""/16, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000000ac0), 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000000b40)={0x0, 0x0, 0x3}, &(0x7f0000000b80)=0x3, 0x0, 0x0, 0x0, 0x0, 0x0}}, 0x10) r2 = socket$kcm(0x10, 0x2, 0x0) sendmsg$kcm(r2, &(0x7f0000000600)={0x0, 0x0, &(0x7f0000000140)=[{&(0x7f00000005c0)="2e00000010008188040f80ec59acbc0413a1f84810000000e3bd6efb440e09000e000a001000000002800000121f", 0x2e}], 0x1}, 0x0) ioctl$INCFS_IOC_CREATE_FILE(r2, 0xc058671e, &(0x7f00000004c0)={{}, {0x100000001}, 0x58, 0x0, 0x0, &(0x7f0000000040)='./file0\x00', &(0x7f0000000280)='./file0\x00', &(0x7f0000000380)="f0053ea3c979cc15d9a6471888ba26d7ce3439169d0ac16b3bfdeb72dae17594e26617a3c2b6e19ba2cc70103ecd8b79fd17d36244b5586994d1b0a991ba627efbe9dfa4988dbe5817f1ba0d8a1b0f357fbf53fc3698431535e8eb99cae1d778f4b7fc341fae2e578ae29f4cad17af45994fb11223387b3abfd0549f68d4", 0x7e, 0x0, &(0x7f0000000400)={0x2, 0x7f, {0x1, 0xc, 0x4a, "b8a0dbf14d38460ba0f4a6b8711afbadc8e6b58269c7349965ee8d0ebaf139370664998ba4a6bf6d22fbe77dc9c2867840e8a4c8caf5fce6e95dd44c36955e10dfd5ec98f0426f684ec8", 0x28, "b06ae0cf5a2b1fcb2a1fd4006b14497f30516ed004664746748dcde0e245824763d5cd5301ef2d77"}, 0x4, "8641b11f"}, 0x8f}) sendmsg$kcm(r2, &(0x7f00000001c0)={0x0, 0x7a00, &(0x7f0000000140)=[{&(0x7f00000000c0)="2e00000010008188040f80ecdb4cb9cca7480ef410000000e3bd6efb440009000e000a0014000000008000001201", 0x2e}], 0x1}, 0x0) bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x11, 0x3, &(0x7f0000000700)=ANY=[@ANYBLOB="18000000000000000000008000000000956300fff482b743704da1d0ecb22080e1ef4194d183ba866c1752b06547c4c5aefaed37f2b865be1d22f5229b78d4fe9472eb0310a346ba973a95992c0d74b23b94ffa570f2b5ecf26e52091117d2424a48e465db5840881ba07d21a7dc6e52b4059326cdc6b6c30fff545bfa55f2245ec18de65b004d2278c9feed6a12b5f1afdfc702c3629a78aef33b9f3dc845fc0de7a4cee70780c7694252029bc4de296ef7068d96c8c595868684658669f6461588c73c3873e0cb266c86f999aa1e51608974917d6cad2e0d628661e8a60b0806e40503c2a9732bfdabeb760616a7bd18d913b6cda9261a0abcc9dd8d98834493296bfd2c6e865187ae7a1284b0a975c721d353d34e3359a21218dd5790874ef27afb960d24053f1013403ffeee46a16938d25426ae5f88e6a4b05e9a7ea5aea1bd9354973b1b0a06adb1ce165144e03137c6eca7f3ddac1c26ab32a39739ce883dad2ad0e566394ff1618ce6b9f60f39f9b65a1b00", @ANYRESDEC=r2], &(0x7f0000000080)='syzkaller\x00', 0x0, 0xcf, &(0x7f00000000c0)=""/207, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) sendmsg$kcm(r2, &(0x7f0000000940)={&(0x7f0000000180)=@vsock={0x28, 0x0, 0x2710}, 0x80, &(0x7f00000000c0), 0x0, &(0x7f0000000200)=[{0x10, 0x112, 0x3}], 0x10}, 0x801) 16:42:09 executing program 1: r0 = socket$inet6(0xa, 0x2, 0x0) setsockopt$sock_int(r0, 0x1, 0x2000000000f, &(0x7f0000f10000)=0x80000001, 0x4) perf_event_open(&(0x7f0000000840)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50d, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffffffffffffffd}, 0x0, 0xff7fffffffffffff, 0xffffffffffffffff, 0x0) bind$inet6(r0, &(0x7f0000f13000)={0xa, 0x4e22}, 0x1c) sendmsg$nl_route(0xffffffffffffffff, 0x0, 0x0) r1 = socket$netlink(0x10, 0x3, 0x4) writev(r1, &(0x7f00000001c0)=[{&(0x7f0000000080)="580000001500add427323b472545b45602117fffffff81004e22000d00ff0028925aa80020007b00090080000efffeffe809000000ff0000f03ac7100003ffffffffffffffffffffffe7ee00000000000200000200000000", 0x58}], 0x1) 16:42:09 executing program 3: read$FUSE(0xffffffffffffffff, 0x0, 0x0) perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x18, 0x0, 0x6, 0x0, 0x1, 0x84, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, @perf_bp, 0x7823, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x1464000}, 0x0, 0xfdffffffffffffff, 0xffffffffffffffff, 0x0) getpid() ioctl$PERF_EVENT_IOC_SET_FILTER(0xffffffffffffffff, 0x40082406, &(0x7f0000000200)='&\x06+\x00') r0 = inotify_init() inotify_add_watch(r0, &(0x7f0000000000)='.\x00', 0x400017e) r1 = open(&(0x7f0000004400)='./file0\x00', 0x200c2, 0x0) inotify_rm_watch(r1, 0x0) write$binfmt_elf64(r1, &(0x7f0000000080)=ANY=[], 0x8) inotify_add_watch(r0, &(0x7f00000000c0)='./file0\x00', 0x990) sendfile(r1, r1, &(0x7f00000001c0), 0xa198) open$dir(&(0x7f0000000040)='./file0\x00', 0x8027e, 0x0) read$FUSE(r1, 0x0, 0x0) ioctl$KDSKBSENT(0xffffffffffffffff, 0x4b49, &(0x7f0000006580)={0x6, "e8253b9cc8c91d69dc0924f92795dfb3c02847148605e122e91f2093a75b3f4d51712c87ed95735792dab7138c58a3bc7683eb1716c33ed4ebf9cd47329a67b1583feb7356569ae9c7d598f715240dff19b4b4528af9cbfdf66ffddfde054000c1016deee56efdfe53e35279d8d7ea6ede16106616c9f3cebb1eddd6e41f76c636d275b9f79dbd6accf6a4f10e5477ee561472f38593fd516e86d6de9ba0059e50ebdf32b1f9dd7f61c25260984bab04cb230d3fcd5de13388929d13d41c8f53ce0cc2ca95b488f96971dd99e5fe192ef553a85c4818398ba5a0057919045ff49d6e23d0c7ce80b501b92822cc9d7a1258db97a745725f8cb298713bc67fe18ec614fe6fd806f1b713f7d079c8acd1e24967fb61791da653cb590212c0b6e0737f544be043cb01bf25320c9517f119b35a049dbbfa643c1cdefcb0200d5a5508061819a405e68dbdf45e80bb5c5ba28dc4bc99080b794e6b994db58ba08bd4d4b2ae5592a42cc734e1ce3b8e810f378d40e4440ffbf356a92e09216a912ae9a227d52f26a7b479b441c50dee9ebbb3e4a8170da96b27933c51fbb91b5113329a9e11d606e6e22fb6973d2b338c6b8b37ad5e1ae34e5ef7c59f6bea8df63785db1bf772a3669e2e9f9b08d0f8c111a68ebf41daf283684d298954bea392358fc6b6a06b1080138644d0b3c783b37a55d05a2784a264b384cae5f730ba52cd6f74"}) perf_event_open(&(0x7f0000004440)={0x2, 0x80, 0x3, 0x20, 0x7, 0x0, 0x0, 0x3, 0x40c, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x3, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x7, 0x0, @perf_config_ext={0x5, 0x6}, 0x5690, 0x7, 0x8000, 0x8, 0x8001, 0x8, 0x9, 0x0, 0x0, 0x0, 0xfffffffffffffffc}, 0x0, 0xf, r1, 0x3) r2 = syz_mount_image$msdos(&(0x7f0000000080), &(0x7f0000000100)='./file0\x00', 0x11, 0x2, &(0x7f0000000140)=[{0x0}, {&(0x7f0000001340)="883efae6d37489b5c07a3e0dd71530c31c864a6542e6acac411899ff08ba474cc3ebdff35cf8426fbd0f2b97e09a0ac72b83a796c4258b3897bd7cd18fe7995d9e851e15fd8645850ee308e7e601761252bc6dc3a48c0299a2e7660fc8eaf291c3354627e5c472d90a39b6f35bdfb5d63c27f6ad823ebe69c7e57432d26b822763c6022f714638c411241badb8017306fea744695686f833bbb408f84ca409bd67c4005766a3c3c4e5cc4df05e978810f2df3234bb789d9e361ca09a00c1589fe8cae6e45c9cc66ce507da9bfbee838c74e272bf809f2651808a2596187e8ee36471444281fd6ac99869813c22a93b753e437fc887cf8023a8d0293aebcfca8c2ffadf712b5ce00576374c3abaec18be73cc9e9f49afb3f016901fe222c6b59c13f5bed5e00226293e67259d75ec28c07241032b8a565cf6b132000baeb4d987a9bc0f90fe71fb0b12ed7fd517f1b081a68725818dd3868e2d1373cac96c647651a896a84c92ab3a413976df5d8d3bda96a074a59c2ce450269b5cea75bd259604f739cc313fb5614da6daea930c39fe7d80699cf77c33c35f318c04d52420cd1f31d5d32e4dcb5ec056315c72a2dca2f9781d901dc5e9bd73b48b957f200c56c80f6c7a712e074d5164c942530f8af51f5a0ece8b00b38255a8b8135b3c6b210513b415c6c1275bf46fc4cc1f6c9102d93b6736ec9bb24928b18c3abb3f1a54a5518db5a88e9421ed4277b949b4cba9fe26a6284fc00938cddf320ed929e338f5f3b88fc8e219e187d33c9c4804c5084c0a1e94f5355e7b8863bbe4b92ea9babd0e1105dd90dcc30e6a2fb93880a16ea108822cb9ae7df07fa8f78857eec938c0a16ef8f6168847096b204adffa3081fd9c0dd98ff83fec53da387e99a4d9fec67694d09ede9ba25f52323d8480845119ac8efef1bd774c1eca776ad12c6ad8839b9566233d0142a6681873064b3773898cf5796031e76e462766fa4664349fd83fa003558f9ff3f72aa7e67534f7487ebfbdefb83097ce33c6969baed637edbc22897f14c3c4c5a670557115ce426ac9497c0b9cbef5e210fd671070292af9c7da93ced9b05f971575a2ead243500c34d885492e462ccb3e8ddd777aa153b474e50b03c5152dee3fa77b2efc5cb5571b67b2392eef339a6bad6a551bd6e7297a904ca0925ffff7e4099fde8ef4a3e8fe3cd698d55db4849338a41a88020dd069807aad899ab3f427cce2b27570ad3c055e41b8a8aa069fd8294d431095974376bb72eddbb6227d547978ae6bc1644c3fc9a11f27fbd44dd4605de0f25e072d0d283d8d6fecc8893a9e9f8f5b82ae115fa91d2339aacc2e551932e2e06bc2891b2035410c0b6b28a7bc06c388813fcb3f4de53c2f3ae0c68e53141da39bcafb40b88bee2e6e91e5740db02aa8e8d4b46e25be81fb478624f633742b95369c629c9e1dab59681db6394159d9b34ccc2372e46bb093c26dd34ca00b210bde9a181ba052f77735937d2f07d031870597730e82b3960378988296f7bbd66b687ebb6acf7d79fa554b28092f798ac1acd8c164e1c7393b44a928a870435b1ea84949398cf17f266a7ea1c60bf1edce54ac0cf70fa9ca6d92d280d45adabbdb58a8a32fbeed099ac28b8e7314c59647d59de44e945067233a31abe1105d31dc157c215a50cf7eaf03bfe3b7041a956194cca9368f55f73beddd47323126f77e25ba6eb2cea11339c2f2d59a766311dd10ecbf2629f9c43a4bf8bf03e03ba068617f0641d41e841bcbdc4018c091999e27ece4a8ceb67caca6bbb0b0eb77825613c05750038be2bffd8a2c8c0fa77b77cda926ef91187ddc40d664dda03ca03ee8eca46212e7c03f33b664fef4878155022619d7d9900b270f03c744c6a37f07bef253959802c859c73e3ff2ec68d1a5aed24805e7db1a37ef385b267140e9b3eba59f9bf8b0a1e99bdcbe9d4a5b159f6eb57d21bfd51fc55335bd2fa4826c8f220820f202126ee09a8111285089d71891afc40ae2f71bf8cd5cf73bdd69e06c2fff17749b35e2c7233215b580eeeb2580fd7a5e31e9a5dc6388521b5c1ea3986e64352ab03dde91eee1051415e39b672c61c0ccf38649be4061cafee8b974a77454627b9817d57a5dc94d397b8ea761cdaebfd0e3f3457ff018b1a075a184f7a555fa0de55c25697430f54e4f7bd304052420006d27c58d8b2be046bef187e63956c54624d3248948687e21e463c4227eb32cf1484f16fa20f944b813112b1c20fe67d162c8be79b8f577d4f4f04c67db736078541afd10dfeb35726718fe0741106fe62293348255a5729d804bf4367f0e188406a84464566f285fa86c66f43a86d11e73b64d5559d165c4ffd50a72269517a3a69916e7781d1808e427f43f974c1a93875cf27143f66526b4672b8c45f164f93bd47026704bda86f8dc0c946ec9370650b1100f5b054f5e0d4aedf8447a5c45d37baa71646fb65feed1bff410cf917fb9fd200c49cfd4dfc47e014a4458a2f7cb003b10ab08aa5d96ac6abcdeee0810a062a2493ed3d0b5bb0a0218c44f8b8a62dd971247bc62277447f9f8bf73d7eea28161877f61c657a9d0ce98d2f97cef40e80e7081086c5f5d84cc26a285f5000fcc6ae2d76011054aacb0530904a63687de74653568a5634c77475f2833c3640437d9fb9a0c784419e28fcbb067ff01ffa06f7459b98312d9208adc2324712a6bc7e8771abb6d1ce72ac1691a535daaae7fdd5c5821152b687fddc964792ab0a56ef2dd25b70f0571b5cca212df51026ea194e2aa9f1cd7679e1a1732e58d5ca9ddbd0c032fe825e20e7b7b49eceaf7dc707764451834f3e17ada0f00656c5f58425b45f3759706e9c5e950a4d4d97477d5f6ee68400bb249a4eb30495ccd3d2caec85f42c1bd2b4b82d2eab9584d3afa453e06d191ef2dd45ea2707cf9793cc7416e86f44cd0770a10ae2559803fcb74ec40a2e94a60ae101e7843ec3574150616636b39cf41e7ee04e699d46155d8f3554b5afa890186a6cea355a804118c92ad48e8952bb6f5df1f7c4c844934318ccac464267b533735a1c8c92176ae23d42329b8ddd8db67769e4208904f15b97a82c208705e73802e1246e2678224c0726df89651d0f60a1cb5e6b93cc5f27fcaa37ed2c95b2a761d70bc0eb281c67495a224e9871c3c9c225cd59a254a6a9404ed41147b2b8f91914802b5011b0a5dae29c5d135aadc34c9ebec00a4180812f86e29d3620b7e7c2ddd05819dbe6861d069473ae4ce67c01974303021ad5509119dd538aa1d47b607581740b4f15f9dec0a55990b20effd77c156e7ebd93f4db772b3d2f5aaacbe49ca05bff4eb00f9c995f88a71bd29242d1268bc9c8e2d401542270e74e42cd89358c0c488dd71f53a969e8a2ecb3fbc91a8e667a5338e74692ac08fa4f7522b3cd8183cc05c38d7b3ed5144c6edd2fc0804399bc29e65ef0ce294abc0493738ec42c4e48d85502586e4649a688263be2dde6650e60db8ac9fe6d22efef634428264150fec002af7b6a39e19df419f4458ad3c6d76b282c51404177ea30b2f15bdac39f8be9775d55bec645bcfe84777bc53b21d085fc5b8dc8b861df24bd645b3a6b4517acfc8ae81eb4c4f8b7110f031f9801860eec0d703644cf2d901a5cf5e348b6316ae09fee6cfa9d86893432ac583d4602c9ee83b0e636f9bb14014d07751d0574c5838989012b8a6488db09584321aa994ce5f77cfc08360ca7c6f72c81842b21969cc5aeedda169cf320f785a66437a1dd6186c3a799d701c1ef8131b341863611f7056b5d8b0b5db746f5d3cebfe72bd0027adc3f38f3a8e269ce31b804725d037b36c056f4ece7a0130253cd2dc9946e35e447bd13f5f236909098cd1340e54f8994b59e7cf6759b5eb1362feb099582132b6c17a08c5943279d4e521775ee324d557e93dbdf4567e72a5b3ffb5c948d451ef581ef4d5ba43697589033519a02c1f3826d522d8eee855f3fa9a5ff1166d4f9352ffbd15aab6e82e60ed07339a26635679274dd30e169ec72c34cfb1ae80420eec27e32404f825d573c838d57c37fc9665d335a4458e75ddbc64527570556a3006bae61ab1c609dd738ab4b768fc2f2fe117fa682e323c89e6f94964606e73def7c4164c8717e817d171a6f76b7c7404779012a9900c1b70d4711b043ca16d27c968aba65f8833b82742aaf35dbdfaf142bc7d00f8b74ac9f5843de3b4fe77c8ae2c7ec2b2a6dac47efd966477b7d898da195c6e2a62269ab27339d942e36c03751a77745fabe128eb7a3b71f691f8e5a312beceb3662f81d91fbc39fc4913e23a7de97d3d8eb65ee878e4434f98fad7d4bcb85d581d019754ef531c2658d8be1ff80421cf222bd7570faa4cf241640537f1189d574afa41db9c5b7de51deb775a90a5f1df3e2b5b73652d8d4823569efa5182b20d4b6fe12825e5413542efd922ebf127ef1cd4288470b5cd453904ec1c530a728cc2b63bd7f3a214a629d332942d09d469d4029bbe725c6013696d59ada19d7fdfca41ae9aa5d2d39653b78268e62bc4e9a4dc93c2a5c9685c7539fd3a810ff334101db8eb42eb3ec1bc34cab1c51d487d682913e23837564d805865a650964ef4c21f342ac277b33a8f2413127889788c237541cfcad69af9b23a22db25cf52e9ce091e13eaecf8711d3ebcd9334d4df54f494a0120458c70afb51952884b637f6eb4f331c4112a26addc75a8141cdbc761278e6888fea814c0a432a6ef5f5dd6ba358ed607a9036d24f825803fb6accfd01fe06253fa3fa2bb74d4b51785fc6f52e3df5a292f75629a13aebcef263cf577c1f9e45e3e856e557a15af44c3e010450fcec3e361cc3b94cc57ebd969b52875f01729df263d3a097f4d5ae10118ea079b2ed08d230ae05677598190c6a17704a0b476d27b4e0a92e91d569d8a71525e8299f7151a39bec7a640b7219cc0ba3eee90439ff9543bf1ec16e1ab2d4b7bbaf1100c2b9c97c5c05f502abd9c1d66ddd9f0a6d1bae330af949ba324211a84a8944ab3ebcf133c66da038b86cc2fda1d873160bddd49b66b0f8078563345043f193ecf3f04fa8be8786446d04bfd0a593333f0c82988e2fe46b78f0582473eedfcd901a162418b80c3194c1d63bf09b8e3200812789f94660a9c383f0e6913fe52f8001e8df688b69daf519e95c28b26b1cc583f6c7e0e5c71e76b744c7f5af70e15e9387b65de47139a0eb36592023b1c66de6d30530d9f9a04480476c0ff23b6ccb4845d0b5a2681dade00d2e05616620f93fd1a6c2e37f472aa0443d4ece6e6c8d95c14b091fa6c0c0848c57a8d26870609ade26072c3b3c293c19328827179c684e6b4a07d0e248043eb8097207d55af83698baf01321a0cf2c73d7be8a88b739578a55036e831fc81cee80abf613c56ef7c542b89756315849a7a003ff8d572734bfc9e06eb35c046959fb1ae2e53fb760695527be34d1fb4dc1f40c0298e5df5677c64180611582f197d0f6ab42fcca4d83c5bf4c5a39e3f1b704c8d12d6f60af50beabdd222e3cf858c03b95c49541845", 0xf5b, 0x3}], 0xa14000, &(0x7f0000002340)=ANY=[@ANYBLOB='usefree,dots,dots,codepage=864,dgts,dots,defcontext=sys']) mkdirat(r2, 0x0, 0x0) inotify_add_watch(r0, &(0x7f0000006500)='./file0\x00', 0x3000000) 16:42:09 executing program 0: mkdir(&(0x7f0000000080)='./control\x00', 0x0) inotify_add_watch(0xffffffffffffffff, &(0x7f0000000180)='./control\x00', 0xa4000960) rmdir(&(0x7f0000000100)='./control\x00') r0 = syz_open_dev$loop(&(0x7f0000000880), 0x7f, 0x182) r1 = memfd_create(&(0x7f0000000240)='.^\xc5', 0x0) pread64(r0, 0x0, 0x0, 0x0) ioctl$PERF_EVENT_IOC_SET_FILTER(0xffffffffffffffff, 0x40042406, &(0x7f0000000280)='.^\xc5') getdents64(0xffffffffffffffff, 0x0, 0x0) r2 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r2, &(0x7f0000000080)=""/196, 0xc4) getdents64(r2, 0x0, 0x0) ioctl$LOOP_CHANGE_FD(0xffffffffffffffff, 0x4c06, r2) pwritev(r1, &(0x7f0000000800)=[{&(0x7f00000009c0)="1e53851521405f68000049445ab542cdcc1a7bda86e079a689acae17cc31c898eda6f288fe62aee7e0f6f80ee9a7bdb3165d5a3b77c2edf9cdc1e8b94e17bbfd0db295179f6c6f363c7dc9ddedc89517dcf5e2c8508c7f49d3a05548a74b82af6ffe2403d8625c706f", 0x69}, {&(0x7f0000000580)}, {&(0x7f0000000640)="c0f211a97042158562cba8e3e2c7f584b9525235f69f3fb99aad66", 0x1b}, {&(0x7f0000000740)}], 0x4, 0x81805, 0x0) sendfile(r0, r0, 0x0, 0x24000000) inotify_add_watch(0xffffffffffffffff, &(0x7f0000000200)='./control\x00', 0x10) ioctl$LOOP_CLR_FD(r0, 0x4c01) r3 = openat(0xffffffffffffffff, &(0x7f0000000000)='/proc/self/exe\x00', 0x480, 0x2) socket$inet_udp(0x2, 0x2, 0x0) preadv(r3, &(0x7f00000001c0)=[{0x0}], 0x1, 0x9, 0x1) ioctl$LOOP_SET_FD(r0, 0x4c00, r1) 16:42:10 executing program 3: perf_event_open(0x0, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = socket$inet(0x2, 0x4000000000000001, 0x0) ioctl$PERF_EVENT_IOC_PAUSE_OUTPUT(0xffffffffffffffff, 0x40042409, 0x0) setsockopt$inet_tcp_int(r0, 0x6, 0x80000000000002, &(0x7f0000000040)=0x76, 0x4) bind$inet(r0, &(0x7f0000000280)={0x2, 0x4e23, @multicast2}, 0x10) r1 = socket(0x11, 0x800000003, 0x8) socket$inet_icmp(0x2, 0x2, 0x1) bind(r1, &(0x7f0000000280)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e030a86df875f2e3ff5f163ee340b7679500800000000000000101013c5811039e0c775027ec8e66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5acc326d3a0dffc2c654"}, 0x80) setsockopt$SO_ATTACH_FILTER(r0, 0x1, 0x1a, &(0x7f0000000480)={0x1, &(0x7f0000000100)=[{0x6, 0x0, 0x0, 0xe7}]}, 0x10) r2 = syz_genetlink_get_family_id$wireguard(&(0x7f0000000140), r1) sendmsg$WG_CMD_GET_DEVICE(r1, &(0x7f0000000240)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x80000}, 0xc, &(0x7f0000000200)={&(0x7f0000000180)=ANY=[@ANYBLOB='D\x00\x00\x00', @ANYRES16=r2, @ANYBLOB="100a2bbd7000fdfbdf250000000008000100", @ANYRES32=0x0, @ANYBLOB="08000100", @ANYRES32=0x0, @ANYBLOB="08000700d300000008000100", @ANYRES32=0x0, @ANYBLOB="08000500000000000800050001000000"], 0x44}, 0x1, 0x0, 0x0, 0x10}, 0x20000000) r3 = openat$zero(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) r4 = perf_event_open(&(0x7f0000000700)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) preadv(r4, &(0x7f00000000c0), 0x0, 0x3, 0x0) perf_event_open(&(0x7f0000000340)={0x0, 0x80, 0xfd, 0xa3, 0x1f, 0x8, 0x0, 0x80000000, 0x44108, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, @perf_bp={&(0x7f0000000080), 0xd}, 0x8004, 0xfffffffffffffffd, 0x18, 0x2, 0x0, 0x3, 0x7, 0x0, 0x7, 0x0, 0x7}, 0xffffffffffffffff, 0x8, r3, 0x1) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x10, 0xffffffffffffffff, 0x0) preadv(0xffffffffffffffff, &(0x7f0000000280), 0x18, 0xd9f, 0x0) sendto$inet(r0, &(0x7f00000012c0)="0d268a927f1f6588b93e480b41ba3860ac5cf65ac618ded8974895abeaf4b4836af922b3f1e0b02bd60da03059bcecc7a95425a3a07e758044ab4ea6f7ae56d88fecf9141a7511bf746bec66ba", 0xfe6a, 0x20c49a, 0x0, 0x27) 16:42:09 executing program 1: r0 = syz_open_dev$tty1(0xc, 0x4, 0x1) r1 = openat(0xffffffffffffffff, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800007, 0x12, r1, 0x0) preadv(r1, &(0x7f0000001180)=[{&(0x7f0000000040)=""/224, 0xe7}, {&(0x7f00000012c0)=""/4095, 0x1000}], 0x10000000000001e6, 0x0, 0x0) r2 = dup(r0) mmap(&(0x7f0000249000/0x4000)=nil, 0x4000, 0x2000008, 0x30, r2, 0xb45c6000) 16:42:10 executing program 1: openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) socket$netlink(0x10, 0x3, 0x0) perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = socket$inet6(0xa, 0x3, 0x2) setsockopt$inet6_int(r0, 0x29, 0x21, &(0x7f0000000180)=0x101, 0x4) r1 = dup(r0) connect$inet6(r1, &(0x7f0000000040)={0xa, 0x4e25, 0x0, @empty}, 0x1c) getpeername$inet6(r1, 0x0, &(0x7f0000000140)) r2 = openat(0xffffffffffffffff, &(0x7f0000000040)='./file0\x00', 0x0, 0x100) r3 = socket$packet(0x11, 0x3, 0x300) vmsplice(0xffffffffffffffff, &(0x7f00000008c0)=[{&(0x7f00000007c0)="b969fc028a6f3a33e9748a2005dd98793ea791a6910d9dac483aaabe7aa8a7e4a534cb39d9b8ca11c868ae948f99623dd8624678785f2ef7508db43e17296c11082927a7e58f4a8c1f0ac52a150a30ae32361c1743d23fe8abf00c1e48da397c6f2246a3759b65a95bc550c762264c3ed67199aa78d458f5aaba31b43e18270108abf3ef6053ab88641f9304d41a470b2aad8221a8e54f1e07ba092a5c76bc9e7343ed3b5cfa9253525bdc67bfdcf729cf7d5b1505921b650a0c9530d3a881bc0cdecc0e1fc66f060a01aecacc", 0xcd}], 0x1, 0x3) preadv(0xffffffffffffffff, &(0x7f0000000280), 0x18, 0xd9f, 0x0) ioctl$sock_inet6_SIOCSIFADDR(0xffffffffffffffff, 0x8916, &(0x7f0000000080)={@initdev={0xfe, 0x88, '\x00', 0x1, 0x0}, 0x1b}) ioctl$sock_SIOCGIFINDEX(r3, 0x8933, &(0x7f0000000180)={'bond0\x00', 0x0}) bind$packet(0xffffffffffffffff, &(0x7f0000000100)={0x11, 0x0, r4, 0x1, 0x0, 0x6, @local}, 0x14) r5 = socket(0x1, 0x803, 0x0) ioctl$sock_inet6_SIOCSIFADDR(r2, 0x8936, &(0x7f0000000340)={@local, 0x44, r4}) getsockname$packet(r5, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000002c0)=0x14) r7 = socket(0x10, 0x8000000803, 0x0) sendmsg$nl_route(r7, &(0x7f0000000300)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000540)=ANY=[@ANYBLOB="3001000010000104000000000400000000000000", @ANYRES32=0x0, @ANYBLOB="202002000a2a04000001128009000100766c616e00000000f00002800600010006000000040004807c0004800c000100040000001f0000000c00010007000000010001000c000100fc030000e43900000c00010008000000090000000c000100ff070000730c00000c000100e7d10000050000000c000100a3ca0000010000000c00010002000080fcfffbff0c00010008000000aea100000c00010009000000bf890000640003800c00010009000000e52b00000c00010000000000080000000c00010009000000000000800c00010002000000080000000c00010005000000003000000c00010005000000d82e00000c000100010000000a0000000c0001004cad00000400000008000500", @ANYRES32=r4, @ANYBLOB='\b\x00\n\x00', @ANYRES32=r6, @ANYBLOB="e68d9028d26089ec16e88cb2fa6a39e3b5c04defd2df4b1399f1a48616b251048a4662ea56b2dcb231564c0a5424a6f5db3a90767b0754e480353bc47859004e25d81fcac91aa6ecba317d9885fc6581a96c0ec7ba3313db1b1eedc6304ef4814effec1a257f5a093f1902d1a021e987835d5490368a0a36"], 0x130}}, 0x0) 16:42:10 executing program 3: syz_mount_image$iso9660(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x0, 0x3, &(0x7f0000000140)=[{&(0x7f0000000240)="01434430303101004c494e55582020202020202020202020202020202020202020202020202020204344524f4d2020202020202020202020202020002020202020202020202020200000000000000000bf000000000000bf000000000000000000000000000000000000000000000000000000000000000001000001010000010008080018000000000000181400000000000000000000160000000022001c", 0x9f, 0x8000}, {&(0x7f0000000080)="0243443030310100004c0049004e0055005800200020002000200020002000200020002000200020004300440052004f004d002000200020002000200020002000200020002000200000000000000000bf000000000000bf252f", 0x5a, 0x8800}, {&(0x7f0000000200)="88001c0000000000c7d1ec9b000000040800780914092a1af9b7950001", 0x1d, 0xdfff}], 0x0, &(0x7f0000000040)) mount(&(0x7f00000001c0)=@nbd={'/dev/nbd', 0x0}, &(0x7f0000000300)='./file0\x00', &(0x7f0000000340)='ext4\x00', 0x208080, &(0x7f0000000380)='iso9660\x00') 16:42:10 executing program 0: perf_event_open(&(0x7f000001d000)={0x1, 0xfffffffffffffe9e, 0x0, 0xff, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20000001, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x9) r0 = getpid() r1 = socket$inet6_tcp(0xa, 0x1, 0x0) perf_event_open(&(0x7f0000000300)={0x3, 0x80, 0x1f, 0x1, 0xa0, 0x0, 0x0, 0x40, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x2, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0xc388, 0x4, @perf_config_ext={0x1, 0x9}, 0x200, 0x8, 0x7, 0x5, 0x6, 0x9, 0x101, 0x0, 0x2, 0x0, 0x3}, r0, 0xd, 0xffffffffffffffff, 0x2) ioctl$TIOCGPGRP(0xffffffffffffffff, 0x540f, 0x0) r2 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$VIDIOC_TRY_EXT_CTRLS(0xffffffffffffffff, 0xc0205649, 0x0) setsockopt$inet6_int(r1, 0x29, 0x43, &(0x7f0000000000)=0x1, 0x4) setsockopt$inet6_tcp_int(0xffffffffffffffff, 0x6, 0x0, &(0x7f0000000080)=0x8, 0x4) clone(0x12802100, &(0x7f0000000200)="47e9c38d59231a822568ecc03dbddf2e3b50edabfebff347101f161b5d4cce80967e6988fe2cdd33c1b17ce8c5d2a137971e80aaf97afe50b7c859254890c4361e314bb4b76c9a8be0bb95ed0ca575de89ae2aa337c4d0215cd433d67b828e3431b3dc0a6202fd4a368de72a89cf9437d1e3494c96077cf728ce6529239be06cf835313ffc95fc8ed4e60432aacb29ccfa518c3014f04ff1692ad2f624634515b28f7c0394454257a45e9e2a1f68ce897829542ccdeefa3bdaa48944b62252ee78bca216494b9d5f9b", &(0x7f00000000c0), &(0x7f0000000380), &(0x7f00000003c0)="dc0cedf8b16b03f6e78f323c6161663b0bbac8166c3b81f7877134c0c11f9aadac5b6f0cbd448006f84f9ad989b4b7410928d576c900003b64ef1c9d1b61313e9a54c360c482bb4c754b764d6243a95050ae8a8b630c126ba9e948588bf283828eceabe22a57a2ec2939afe1b010cfa820bf404d73987890ff24c5a3dd349aaaf9237a7186bab6788f184ec0893f1182fe7855e19bb3d54d59ad7d1eb1ddd8") setsockopt$inet6_tcp_TCP_CONGESTION(r1, 0x6, 0xd, &(0x7f0000000180)='dctcp\x00', 0x6) pipe2(&(0x7f0000000040), 0x4000) setpriority(0x2, 0x0, 0x1400000000000) syz_genetlink_get_family_id$nl80211(&(0x7f0000000100), r2) r3 = openat(0xffffffffffffffff, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r3, 0x0) preadv(r3, &(0x7f0000000280), 0x18, 0xd9f, 0x0) openat$cachefiles(0xffffffffffffff9c, &(0x7f0000000140), 0x2822c0, 0x0) openat$vsock(0xffffffffffffff9c, &(0x7f00000001c0), 0x24c80, 0x0) sendto$inet6(r1, &(0x7f0000f6f000), 0xfffffffffffffea7, 0x20000004, &(0x7f0000b63fe4)={0xa, 0x2, 0x983a, @rand_addr, 0x7f00}, 0x1c) 16:42:10 executing program 0: perf_event_open(0x0, 0x0, 0xfdffffffffffffff, 0xffffffffffffffff, 0x0) r0 = openat$md(0xffffffffffffff9c, &(0x7f0000000000), 0x4000, 0x0) write$binfmt_misc(r0, &(0x7f00000001c0)=ANY=[@ANYBLOB="73797a3115eaadd0f1bde8cd93333ef7dddf799edbfff266b5d0dbfbace6619457121d908fc70d98e42843b45ba422c55c5612876022e1e0a2a82178adb9677e1c67398602b986b9b1625822cb065146fba406c425f4675ddb24e9fd29c272a9d453d907893907e8381831c74a58944a2edd78ba0fdd26b7bc05a6"], 0x7b) r1 = socket$inet6(0xa, 0x100000003, 0x3c) r2 = getpgid(0x0) perf_event_open(&(0x7f0000000700)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50d, 0x0, 0x1, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x0, 0x1}, r2, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r3 = open(&(0x7f0000000100)='./file0\x00', 0x40c2, 0x0) r4 = open$dir(&(0x7f00000000c0)='./file0\x00', 0x0, 0x0) write(r3, &(0x7f0000000600)="34fd98aa1d0e7adec937a5f331a75f487934f50242a0751944936972896c29a5068c8ecba1aa0a4e2a631b5180e1fbde79f4502dc4c4a1fba9dcd9ed83e639aefa1b87631c33d1a82cb0c0035676ddfeb0fe7984d7519b0f839d497fc9d64ef14d1de22220ff2623df4950134b9fb734a52adad95f131cce3672a9d7d7b400d2c62810b5f20351639330948107bf8d4534a03ac389455c54d8eb4d609b3e858b7213b38eb01f0eeaba3739ae927916e28da6a79a3fd5e32d30ab30bf959d4596e5ffbff6789a650b9e7d248d1ba849012336a4f3ef8fab07a8f5b81bb0bc45b2174538315ca12b7c723b2157562564a8a1f19d28179f8c565448e0e921b8c3e6fc4adaafa8b929ad077f633325b6a6f71a586cabc4883e03e19315f946b277858593a7367e232202fe9ad656c6768a1517da7f0498b48cb078e929fb11db0cc551f754bffc4859dd89a396915cc809b07d448573098409ea21371056f67ef4114ec10547f498d24513fe594308bf022868ad21e85bba811942fdc45161a1a8a7fe00d5c6b05ed7954f631bbd12a5c9a5cfa5965e0595de608b04ebe02b3fcbf3b9f57807a1a7ad8528992e2ec65949da2f4a0478dfd3ae52639c15d8aeaa351da6d393b58c772168fae604d097fef4d6b9360eb169a0b0ee70cdc22435a003e68698f61b3b63b1f51011bc8f4ef944c1de821785f670124a1c6ed18335d63412", 0x200) sendfile(r3, r4, 0x0, 0xef85) sendto$inet6(r1, &(0x7f0000000000), 0x53e8, 0x0, &(0x7f0000000180)={0xa, 0x0, 0x0, @loopback={0x0, 0xac141409}}, 0x1c) [ 2025.115464] isofs_fill_super: root inode is not a directory. Corrupted media? 16:42:10 executing program 5: prctl$PR_SET_MM_MAP(0x23, 0xe, &(0x7f0000000000)={&(0x7f0000ffb000/0x2000)=nil, &(0x7f0000002000/0x3000)=nil, &(0x7f0000002000/0x3000)=nil, &(0x7f0000003000/0x2000)=nil, &(0x7f0000007000/0x3000)=nil, &(0x7f0000ffd000/0x1000)=nil, &(0x7f0000ffd000/0x3000)=nil, &(0x7f0000000000/0x1000)=nil, &(0x7f0000ffc000/0x1000)=nil, &(0x7f0000ffa000/0x3000)=nil, &(0x7f0000fff000/0x1000)=nil, 0x0}, 0x68) r0 = syz_open_dev$media(&(0x7f0000000240), 0x0, 0x0) r1 = openat$fuse(0xffffffffffffff9c, &(0x7f0000000140), 0x42, 0x0) openat(0xffffffffffffff9c, &(0x7f000000c380)='./file0\x00', 0x40, 0x0) mkdir(&(0x7f0000002000)='\x13\x13w\xc5\xfc5\xd4\x14T\xd5\xd4\x1d)\xad\x1a`)Y\x81F\xe6\xbe\x16nA\xad\r\xbd@T\x03<\x9f3\xbb\xda\x82$\xa2\xf3\xd7r\xe7cnH\xb3<\xbfp\x83r\xe8\xf1\xb9\x93>\xc5\x12wC\xbe\"\x06 \x9e\xf0-\xf9\xcb\xf2\xf6\xe8\x80\xd38/\x00', 0x0) perf_event_open(0x0, 0x0, 0x0, 0xffffffffffffffff, 0x0) perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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) creat(0x0, 0x0) fchownat(0xffffffffffffffff, &(0x7f0000000040)='./file0\x00', 0x0, 0x0, 0x1000) getsockopt$sock_cred(0xffffffffffffffff, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) write$FUSE_DIRENTPLUS(0xffffffffffffffff, &(0x7f0000000300)={0x1f0, 0x0, 0x0, [{{0x6, 0x3, 0x7, 0x5, 0x0, 0x8001, {0x0, 0x0, 0x5, 0x2, 0x0, 0x1ff, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x3, 0x2}}, {0x4, 0xd1c, 0x6, 0x7, 'tmpfs\x00'}}, {{0x1, 0x0, 0x3, 0x0, 0x3, 0x3ff, {0x1, 0x5, 0x81, 0x7, 0xffffffff, 0x5, 0x800, 0x401, 0x0, 0x2000, 0x8, 0xee00, 0xee00, 0x31b5edde, 0x8}}, {0x3, 0x7710, 0x2, 0x0, '\'\\'}}, {{0x2, 0x1, 0x7, 0x1, 0x0, 0x0, {0x5, 0x0, 0x0, 0x8001, 0x6, 0x0, 0x0, 0x100, 0x0, 0x6000, 0x0, r2, 0xffffffffffffffff, 0xfffffffd, 0x7}}, {0x6, 0x0, 0x6, 0x4, 'tmpfs\x00'}}]}, 0x1f0) getsockopt$sock_cred(0xffffffffffffffff, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) write$FUSE_DIRENTPLUS(0xffffffffffffffff, &(0x7f0000000300)={0x1f0, 0x0, 0x0, [{{0x6, 0x3, 0x7, 0x5, 0x0, 0x8001, {0x0, 0x0, 0x5, 0x2, 0x0, 0x1ff, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x3, 0x2}}, {0x4, 0xd1c, 0x6, 0x7, 'tmpfs\x00'}}, {{0x1, 0x0, 0x3, 0x0, 0x3, 0x3ff, {0x1, 0x5, 0x81, 0x7, 0xffffffff, 0x5, 0x800, 0x401, 0x0, 0x2000, 0x8, 0xee00, 0xee00, 0x31b5edde, 0x8}}, {0x3, 0x7710, 0x2, 0x0, '\'\\'}}, {{0x2, 0x1, 0x7, 0x1, 0x0, 0x0, {0x5, 0x0, 0x0, 0x8001, 0x6, 0x0, 0x0, 0x100, 0x0, 0x6000, 0x0, r3, 0xffffffffffffffff, 0xfffffffd, 0x7}}, {0x6, 0x0, 0x6, 0x4, 'tmpfs\x00'}}]}, 0x1f0) syz_fuse_handle_req(0xffffffffffffffff, &(0x7f0000002080)="cf1a5666dc911df588fa0845dff3ec91d19dc764ba3c823e6cbdab3abe07e61d0e85241d6c500a51c1cb39423cf48eb63c4675fdcb2a1b32b73bb55d5a780a90406ebf9f798441dff002ba9d183318afe6670f31a554340095fd49bb13c02f89b0a827283294e167369d81d37efc45dcf7bd1f2c583ea2299a17eb290deb05618395c8e102013f5bad7fb4ecf44c6ac66c74ef779b599befee41f559e386c5f10490b4299e893033cb0eb16572d7d8a8619c81534022fcbef3e441e04ed08f6713b38d376773d8879589c5c80048dac78fb2b74c3b6741e781025c238564851d1e2af334680cdf7ab2d9da5c57dddbd56e39c407750632ffe5ba3f2b627f59d12ca5b3a70e133f4ec309b96edcdbd83fe46214241b8a296199b1658d3536734f8c96f227292ddbb98b753c20e6b4e805118d18b73000d99348a15b82158ebc102f40b85672f21c7038325f0267c6fedf30f497dfea8b5088e4e790492300ec8dd060bc6bde38ad2724cbb87999d4ee25f2115cbcbf8862f2b9e28a6f8291fce40f3cfd0847f0743f96e74d0e893e1984b595dc91583509735152a8e6e3d3960b4e99ca04dbb2b1a99d952e3853e17faae6cef083fad1d9f44123ecf8fe8e0d152db876a48aa5470c6a2359a91460cfa9e486225780348b7c2906c19f03799ad1d4a92787686d57a8c14374f059fef3440df0a8438ce76194d33ec399ebe9ca9f1f19afd6f6e8eb95d4599f414afe1ac7b5e42c10518398c4555eb44adcf77621fcb379722d8bad239f85c1d8a35dace1f897aa6eea5cc048338207e2e2366563ce5e7cdc2bb7dae5fd1de075aaa7d27fa809335213a191d1e623f8a2d1f0e8cdf9875b74700881d983ec2c6f3d1092be2a98c476a861771ae4d006778080f1fdab172fc90cc9d924bdf325c7631148392a8439c93363232b7b4b44a88794cf59f3743555159a15fa760cefc019fb827c735dcb6f580fb346a6e65142f8826a2f530ef62218dc381091c2f76af4446b05d34de5cee32ccee124564c66951ac1523ead672559c08f38fbdef3b5ec6d400745c421c3e0035c46e9b69d57771ef0f8d4c21947cdbd1a2da385a33670c4912c3ba16df0f9f3a6df791639ee12d9662d7b421c94842a0b2d4d1b27b592b7bf06d4b4ffb5da6e722e26fba9473d297bcb0beccc137ac9d673210dde5ec0be0cd49c9265f1e25db6c0a03d4943f40379ff255bb0416653ef54daa092d57eaa2fcc300dab77fe9a691b8ae87a61a5b15f1e551dbfeda4831a038f21f1ec2b6886038bc3cf60c9e55d21c519763a552022777ae3daacbb50d45b5dda4eab6f8573004e8b541fe16622f9e1065613c1068953dc30c9a9a80637d8125e5fea16e7a85d41b0cab6ab7acef2f31c327afcf0287b41d0562cbe576c64c97264d5a5ae9f76e81b3ec05b6233e18ba3c5d68882798fa00fc8fc7691acf9db18eff039f6c8d7c6c4451418a6b25b508f7da2c47ed9bfe4b145f79640ff1003d3c04e4ee1824ab49e9a9cc90fa635340fba2a2e2d8893affc3b6722311634729aec0246316d89bbb32f58fadb5eaab1e4a6c9478a5e2bee4c685bd9cef28b19407f93410fcb2ee3526b01c4fe1745b38eeb6fcdf4cc2c80a97fd802acbe08a14cc11ebf529257b6008baa4a65cb4d859604d32391cb546107a0fa17a4cb5a3fa68e20e2279fca80ad36ed4d4c21bb7f567c209c57536c87a9ffc5276340a5e60d75932353c5b4eba1a7710b1f201ca818d5df6b07e554757079d67f849e8ce618e3968b442a53ff7a998990e283e7b00d1bec69750892eb1d71545a705da9ee7a64dfd20bffeded6b7f210c29d852e02c5ae873a3261be6bde75df151b6441e48fa71e63083ac0cc9802923652124664f3a55681034c1f71cc3f35c5948a21327c5a6986f34cd57d1bf1c6b7e7800ea0ff263203629424bd5fafd161408012f551a178dd9b699cc5b3d624e80ae6ca1532e916da83d4671ffe7ef2bd02c6560da437e268cfaa0e1805f594775dae5044a93ff473a1d9d438213057321d8ed5b63f4c4922f6668e6c6f98258ce646b9789e983245c27c52631ef9c403da1fc5b112bfbcacc24837a3320fe60917ecb8e616f1b4582721ad1aa8f4bf52623af3d99040148f10a701744d043bcdda664a55c5338b6aebca436d92754da643de0c1ffb98a71dd75571d403d53ba7d6a3eb0448e25e65b5edb1db61527274301eab13f1770d01c0167ccb07392d8c043a96050c3f6620fabc57c62f63e8090caea96cb25df0408861cdc35dc1e568f3ad346d9fd4e2912ffd5dd20cd35ad17785318da002b59e90ef00791ea13a3c8705991acf8df9566989b4b1252d3a24e90b13f62a27d72f0f2f1e50b9bb0ffd20560741b0472abaf20aa9d1de8818b5da94c80f04dda30b5c3d95173db0de1d2cb8ad1012d3c4ef05b54b44e21d3514b597eab161d2b93ef8b0a179133b49b5882548b4780f9ef97f9a42df90c23aa1e991f17507f2e6dd7da281a5d54d9b0c173a845416d279314456b78b73fe8e88737e60b347c366056783c526cc774a0fc1fbc373e1f56e1c549fd001c0564b6fb22504c25d7b179ab10497dc42721474760a902871f8278b57076d84587f317774c29c244e64e3a8d62ab3f15ec872103777bf8b1b78f540d9a72394e8a378eb339284eaab8d05928ffec405c41da5e856a588073c274cf8005f4adeeefdb645a0c8ea28b1edf101913a465cb3b7638c472f70079b70a8da6b2ea0da8fff7094774188739c29ce2df7c787b5d395300035e935c72536d1159f80faf4c70f122ead4fbdfec18ba15058a28aff2b17053ffb7fbd2daa88bd3d136fc0afe815f84c7bde32ecfc5a786ea38da258c53539885049e6aab4fc7698b751eab2d63c8fb88aece0c3a060057f97c2b32723a97b64df3cf70f5b8a192871b9e6e410907b241f87bce633aea220648c330211b66f635c6b1b2bb411d34ebc5e1f40c0f1c476af69d4307886873832688bba98944d0bedcf286167c9cfcf6319985676ac6ec5ee4397ab23b296cca64b8b276a145b5f8f2e96ddcd09e2cb8041da35683681d60701b9898e39290d1e8d1a52181c79ca7046dde658281eebbde8f075c0abc0603af08c22659bc1314c38f20eac65587441abbf28587ebafe2b559984992e76a7957766e5d9ead571f49ffa09a5f14ba934465a8d8ccae21aea0d53a02c554bee4b1f75d74571b7bc6c21b08a5ae8031892832ff33427056a795d5f80d0edfb141d1848eb7857f7c2d65c691863b449bc71280d0397754f0b34d317a54458ce30fcb9fe58d204c901d923230a1f6a45f359683c24e5c29811caa76bd3c44c5859055dd0131eaaff40f14df3f49e6bfdebb133cdfb12e1c7cb8ee9e40fa9172cc07a5e727024cddf2753384054cdc0bc20c1b1b789a081deeb5c765d5b8db5840d8493e0f458e4a4a3c0181e2ca77cbb07d0972a2b81a5c480147c0172c14983fe8d1c7b1c5b4bd0e51661ea5f3e32bbf7e7ea8b979b5aec9ad87fdddaa225509c06d6866ab55e114afcef6b5da23f16dd4d2d8ea31d16e2d5c14f7ed8f76c36ec622e6f1c6b7dcc7345205a17679fe1830dbb271157fe5c22eb0d0c3089db8c8a6a2af6cc1d02450d21f113231600fe30fd52ef7e22597d9743c151202785e2f6fc2f26ce9f48d597adbfd232bc4998b9b0b9d798e19f41dc71a9c31b2007a6c1d19c45288f6e214baf6cf031190dd4a892ebf8951f9533b692dbf0da211e1488c8a1f77e5b18615f9e421117a9247bfbfd715dce0a4df650e14a1c60f548e4dba88e97eb2842b233779f786f01ed28d0689fbfa5062c2350f1df68ef1e7bf36a61b4d792b218edf6e890269a170e5571cdb57dd2e61b1b440eaeb850fbacf89a4b8f85af5a321782e6639747eefd74efba9da45364a819919cc714c39434151ddf06b70cdc46140162db9186e57126b7334004c7347a698a6c45a61ab327f01c8389ed8cad192f985bdd1bb8a5e24fce3619435f3ad7f06052cb85bc519ca883a86438b968f7cb62374ddaf721632f173d56bca3898153bfa5016ffe97f827e3c926811d0a995bbe0e22342df323103944f18f794f84c89aa90efdd11f0411e1c0dbc770fd17580a030bf4548e7aca85a0c5a59ee3aa13a632b5e75560676578a5ebda3fd2c34fcf8404443bcb4b4c3e33e4a38dadc0647cead3734cbb5a362e2e48b2de4ff56d149ef5d3f74b1c57a49e3fbfea8479d47ce0dc9fdfb133cedfc03025a2a0b5427e7c4ef38611b7cdba5bf3092631291d73f933bf250d72faf973ab81fd38194be9b9aae3cc404f3bf5b4f93238a2a0c6287d645e62c0797fb3c3ae5c5003156f7ffc46a4d45d6f2fe7f70f2178d799a3f80829a7bdde067e5694cc73f8bd5c22ed5fbe2937eb7869f5a1270745c05bdd9cb1a616c253685f9135ac6328215604a8e00f18c78e898b25aef047e90b56bc36bb0a62be097fbd8a644bbd9c8b9491fa9bbc2203d20d451f44b059e9da6aaeabdb543c1bea6161c6b4d79444d7b941c16604f8a39f092116328d84bbcf249fb169471f7433620d1dca891d22ebdf1c03e9eb049c5a9002d90a26edc26383ac0ff08fcff5055f95204695ae1b02f5d972bef1e449043d2fcc412e0e2fe0971623b898aff8cf06837638e3ee3178f36c851371a2b11226436399334088195b6a3dc9128a024833a9adba9c9bf4519097bec8a40e657125eb3d694181327b2e596e1eb4a7a07156096b678cbe8baaff1c8a6baf6196bb52e638f4491fe8a0d6edbfa47481cd6c0086390c5823e38be45d3078532d0c437a1f82d14a73a7928ad060fe8629cbef8ea60ebf8c7cf4f22aff1803c6c31890594de3a3a79af8747c04f4b6216883908a80ed838d69b2e1a5dcd5f9a65b6d7f1988af1d718b2dc63b78f6d2c60380abc6ecfa3cc39a8f451ad2ade3ad75129753ab521f5a025cb7a479b502d7bc23a06c81d3b4d1a7dae9cb9dbf1be4e44e6fdfe545f5ec3481b5269c0c28a64754b069a5c5b81b5de0f330669a380cc46b340b44b75aec619bf1dd70476896ce6e1b584471ac5c01908d867009239d09d51eafd847ed7a87106e260d788b5883bf994ff5ab7d9ee421f7cd9cd5ad123ac9584f10556e70a2ffa4c87315ce1ac47f09b64c69d476364801ecb0975a9840d20ca8064b323e90d684521cdaa4c6c5fd85b33de3213daa76bcf1faccb7936a773b0f76ad1de0f5548e9622f731bb84911f1eafe2a027a05844975954b2ef5953fc0a8032149ac33a1ecf328e8c0078aec5ceaace5b7099ac73cad468f5fb9d921a26fc8bea84aca5e601519da8465b8e9254de0faddce68de149af056134eb8e30e58bc6840ecb72458877690347f0debfd196aa1d8a310c4b06f7f2011159e66dd17fd8533cc72d0582f1cfe1577107dd41291f30681f5d7b0de15a327d2318fe2e215ea88a1e752429967098e3821f34b3d01eed8b858a063798cc6a6fa197ecb90c36d97bced4b90df1556e4d0af9cfdbb559495ca22bf3115d869760dbe6955d19e59d250e5fa36c1a79b9e49a8915b645c0d7ce22e2671c00d57eb33c371360f0a724b26025a5065019716f33dbdd447aee29dc6ca053ab208ea6a3523fe3f547942bb000512f32470dc934acc56482438c9a488e5f2e6c0fbae1a91cbc28d5518c08cf183c37543bc2ef2fb77d20c035ac0867799ed0e51955646b5eebd7e03871b748d56af9f64e5536d9c88c18c1d31f43edc1bd28126e611f6ea57fe84870a41ba8b7f737c3fdcac814a1f5bd4adbbcabedcc1c47d820e57d567a185b78a3386932c4d701e4b2f431ee90c3857ff1d6305064f830b1e8a2558d31f1ff1a09c60b121d4aa0a243c162b1c451f1928eb442275cb2151f98395232a83f0504931035bae893f96368b61d55cee73ee9dec631aec59be613754e06b3c9b938fe0e233b5eee911874948c3e0262c577091c6e3618d467e331dc0d2bbc288c1aeda9d95edcdc1178c6b0eea97b126be6305f2c1a61f8023defd9a1960a16b96d6acd85bb2b2f12b13b36a471a7a6927f56b882b9b345d53e3210f3565996f28c976d539d0dbbf834f3ec5b10e90c7dfa77c2d899679129f2534af144803db48698f3e7aa1727d07c5aa0ea71880d7b4e8306dc24a5453bc21c2cf3b655a6bc1ca9d6c6314893b21d9965d92bc8d50c6d398841154fc0b620a0fa24391d7cd1a9113675d50bd2aa80b82aebfa565bf1c395c427504c1e6841989444d2bca82233717ad1e11954624506ef8980d34a85802e13d388550853a1eabd9b33307ebd05504877505013e9c57c940e3198d2fe7d091cebbeb0d8e4d8b130fefbdf9a5f8e834fe5e9f4fd9d75e4874a4a26a5f867d036e335f0f8cf22c65d485f7551b7b90015fc5128c19b7e5859839630932c7fb32b9543ee1d863eb210b567bddeca036ffded3529d8eadb9e4b92529a2574370775972ff9be1f93658282fe6328e063421bfe98a9b8c05c39511435e1459236ca158e303876463c8c1582939e443640900f1f9b4cd18c800def1c137dc2c77c5255ef2dbad7649736feca448ab4bceca5ab3f89eababaac6ef6210df19985937c208a6396b8fabcef193a4aafc6344a4449dfc00843562c4f635c6974a2557d1f3e16cfbd259c3a75ec5cdffaeb95fe23668d165d3c0a4864deef79d403f43d072678d7b558549bae1ee98b638ac20876df27fdcbfb89871c72a3b0b0319bf21d47921d36b702ad1e1de98cf265bb0cfaf07cae1e94f2228b8c7aae1e6c809187c6479b16b4a7bee39660375ff9dc2a7de666e4327f35fac34e4eb7da7355d31fde34060981cc2cb79b774e8b164051d0e0d473fc0b26d654543bfe10cf1f20c26e266090bbf6a035eaf72e4caab30cf44fc0b95f4b27816330973a3a20c39d0912c8d2e1121fbea0f14565ba705f6ee9a5e2fce9a30c6873820fb350f8af24bf7e44a71b04ad0df7504ab13ba6201e8763da918b6735556dc99ac2581b14c751106e8515340572593329a20030ceff43d56f5f636f4335a04f1825b50758cf76647bdcd7035cbb3299180ce6a5ad05637d0b74aa6fd90cc69a194fd7654e57dcae2f641c344d222b61455058e2650d7cff38ab7198fc199c979ebcc777f5d920ce78d1b67236ecd016cfbb1cdb71d0da0f2697bef07a1442f1c7f91a4e76e537699517cd1757e73bc24a2e522a01e91305b839039707a0b3f1e5adf4738e2088c416c56cbb3dfd23aca3a14fc8881f36becf4f222c3a4f09b97137c1791a66389993bed6d589e992289845190424339af647e2bbcbfdae0a4353df9b2ea756e470c5dcbaf94671fb068062dc416bf140be06ee6feb60e66f0b862bf6ddecea2415940307d1a3b16af06d29069e6ba4d670bbab6691c413517546a774d7bd114533032a36c7f67a246a93a2da61f3fe7ab5fe568781bfbbb1539709966c391935edd0a23d952cc825f0e4c9161baf8291bc6e27a772608c9577caca02ae5f744b83cee5d10dd361f5f97799a85d76193fadd4c60dc0ba9bbbcf9093bf1108790752e6ebe0139c18333c7d3b73dc56edb45f67611356ae6459df730a5ffe2c1f20a512fee0064415be9d7ee813af8079110562255a6eddb989ae4ac21dc06a1fe58e59d603d9eb2dd569f0d1319da3884c9f8dd63e0cd04d27e0e062b86ed74401cf0c517477f8a5397181def5eb708837b8e4c1d7e1dfaac626f49131eb622e6f671e97aa568b96c16629d2c6a9dad139f4dee35e3f5316f1f22a9749ca2b64c79f439ccd7650651496eaf117c44696c7283fecdd43207a0c241de4ab8996b37cbf6d196b249fa71bfc04d2afb67ac07d008f6c1962ea8a91b0b33cd42ad2f0a30041736bace4b9bfbf29db0ad19da359aae32245243373b11e1f3ca1012cfc8dbb7aabd95a7bed24c3cc87395c267be602d7814bc91052a25c8c5490c234239bd3b383955078d9c5af3fcbecc4fb990e59509497dc2fe0ad5d5a36500988a14789d728a7914bbdd04959679d8fa1442f0c1608d67dfe3e1fad630b1fa872daf1e1b74aed85f40c0f721f429cba47fa49ba080ff87c28aca71f1f8652740c094c4e8e517d15df034769d84469b9fa98dd2eb640c3d495854042adeb5be110036adda3b5c8d818e53f8a3733ab7dfdc65b0f81ff68bb245aa86866861fcf2b3b179d04eae613b52b708c96fa26077ad76183adccf4cc0b0eb292280ba09ca0aee60113973dbd24458afed9b9db3fdfa9615ebba8152fc0362ef656aea2b7f2e2e65cd519ea3bae67ee54b0e9ae94ff97b27c01f23d99162d40cbdd62f372755c59c6a5051678814653971592603054c5effa0b5af5f5dd0e519079326a3c49372cdd3f21926b4e15ea24f70293d612c85f1c5fd4e9522d078d70dd0878a608a89705e8061c7296317a9cd8e6d77696373a6952ca919bea4ddb727c6f30b8d968af6ca8e8164c81e74a15f72335d2ed1d0ebe73d8c05adf58a1822be614c3d9e0273704ba1abef27aff4123df88ff796ca2e8a3d1c2991540d62ffcffa282c1ff856760f67751605ddc3a376c61904762e40c5edcccb5ce7b42751dd8d59835da4e802b58237062dc74dc74feb57b6dea93c4f461c680c41637a586238406a49738a4eb792e6594d4dd19f77e72f95eba0b1649a26d1ab5aa8c0c495c7335586c571f857d26cd302219559e8d296e42f25ce922be6800f312f716d3e9cd3330f7c6217d7707dabf9ccd7b6b741407ef92e20fff7455d5ef0f23f9519803b0d2a073c9c8392f554f51db49f816649f11feab6e8733cf3cd5488df6e179a90baa220aedecf81b1a65bffd1b4e59342c51e7c20ff140c4362d3f44a45c572cce7434a6d5d71b6a0c18af91faf9b975b607f8ec3d3fdb3818fd1228524c4377fbca6b4e5a339167b6a524b2e56289b9fa7d1bb99d6759729ffe077cebc089d07d9993b1626ddbf2abc905d51ab98782d031130904c0ef2cc905b32f12c7c0dfc58ed8c8477abd39ef7603a07ed931a171cd0f96baa4443452c04d3d4390073d9e24764700013fb61246262722f66f63ee1cb9eff4ec8a3921dbe2c431614f19da1d29037070506b9c567e01d0d0af299cec924681d98296d810ee83241a1e2c06eac5efb729e9bff44dcd53e4e2f03d0358851c85cbf5c24582902da8bceb98e9fb7bb54063adac507328dfa39951b9fdd18a1c1648d2fdf828b750664da8957d637eb4f13193ac125c07543ba6e03d4f86c34106bac07d971396207f03625f8e5eaefed4435c5dce4a67aef13913ba0e32f4c4a114d53d420480a73f44934283532c7862758d95f487482d741ef66ccd8aa852354b2e36c1f46a980100ce4b6cb0584a0dbeebae2f33f4f442f240b0493221c16c293d565f204c239d6e8bb46371526707b11b95a4a09c7774aff1a785011872a5eccdf5749d88ab44fbdc0799c86b3a0b4d0ffaac0e40cf392026ba87c4a0edf7d236d13fb29e2397f454a5ce24254731fb07f83bacedf88a928d078ac0f5dc39698704659ed9d99d415635856fafa4a1f2e2c2f267abf5bc25e659dbdc5854d80edbbeaf637a3fa39d5684eaf5a7bb998d50bdad84f632bbda61b07510557eb47587799b118000b5d3baa10fe00a9d193fea25bcf8eee028857801717cfa0d860812992306d86e806ae22f64304de2a1993fffa301f19be58888cf947b252c79a349b3c333cbec89db4bb4d0f2318e2940b52a4f71966581ba86745355ac9589e8f6f4ab315c4730867a4c8ab4708c050d80f40b73e32186271876317f2aefce5123bb93bc2d78380e706f3118b28ad071ef79be8a62a364cc8eac38acc1600afa79d9005f3d63870a0fec49608cf868b50c164743530d0cc995c662cdcaeffb763f5ab878ea318891c02b3bf11805dd692fa94a9bc5fcc00ca534524f5fa4812c3c14aee53bdd56fb4fb066f4dfc8c5387a68052d754b0042b6e3718d3c29852c2428de9c181a5cda0678ab3af01ca89e257bb7686564f3a610bdf9850c80591f022fa85d16979d041e520ced224a7133a4631c5be67bf7d224e000ee4c543b848738186a5267e99e2df6330320165e1d5f5c0fda9807836a089b4ba4433838f9ce4c4dd5920578f41a04d2f25470d8e636b54f12e05d805440887f7f792190da3ad2f89c2b127629699bd95df78d554bf72832dbd991973e6b4df9e96ae7c5feb8a17e191263a43317eb6c80e6cf2ee6a8a90cf5437055d7ba492e6b21e911a60b6b469376f06b888e0947b524c291171bd40b44f05ed18a39552c4463cdf2ab5ea436d3370ae89c043efcbd796ae19126d812efa4650d7db5c77517e2d79b0c19ba2a93411d3f64f8850796d47e248d146fd5cc8492acd9d18139911739762fa29b1a813202a649dba62d9939ae733be1f4874442d2cd836dea2e55320a594ce253d6868b8a094e670fd5a899e5e19c4234bd0e9d1e325b5e93068871d48be596ea6d8feb4ddb4e1b187b46415c78131f8b352cc5ba9ae0f58b71cd0fea88fb7f59cc277160c86273a4b8bd622abad0d9dde4ea2810aafee8fe06fe8a6130af0fca6c0ec8537cd2f34c303b6794388b28f813048e942e2ab76b31191670a815eb43da694c7406d02434fd9ee736e6a29a16ef29b4fd1783febf786294f323c4c2bf8028cd386d51f96a6ddecf444fd2150d2ea976abd777483cebce2d74656b6a272750433b7f0d69ff2802105b8ca72260fd7da04dd6d53b5b52c276cff453e7dcd8bffe1d247d050d7251a6f49295d8ed26d08df20f5b8e3de57d3dcacabf4080e9c321a9de0d43d4ef0e1e0732c3b4f7715bc19bdcc021e89d11d22f0215b520c0d518e9e848c3f9de06a52a72b1514e42d2f4dee3ebfc04ad77d69a7b7a32c7d85bb462ceb932f268a417711e3d5e8ba5a2937942ed4284830511adbf4208e238374211aec8f51c013714e88e8ffb0fa4f4065bcd857e4ee07363a08df6c766dda519f788482f8a6d9599ef56dedb3a56bac6ccc84758a3b476c08811217592a30a4c2b26812fd81d7ffffa4f2aed059b69ca6466c89fe353d8c69532f8738326311d2adeef52b4bdd28d5c6b1e04772c6ac0a9132956886a59eb3201980268f4647e1bd654de7310879507d71037e311c91edf975dc22151e61fa9aff13a0fc06ddb769e038a8afb6ee82f5bf18763609e283f2783d4c8fcd1d5a9035c7ddf9ab2690100c545397f618ff6bc16759aed5577c5c3c9ca0d9af5402b4a154c6bdf74d5ab18cf92199dd72659d65d7eca0c2b2e71e62ca36157aaae60be00813512313cacb7b9fd282d2ceb0339f176c5f0d555846d0d6c0ba4831b90ce156a589f8031d199d89de98521dfebb3ad720c93936fa4e88dd3a1576d7012eac638a751d82b8f3f4bec016126917b68eaff5a7cdb2ae72a0f8f36c697e130994ef5491453cd37476a04c02ebb7cff106be09697b4d53b55865a93cdd44325724661eee068eed779376e54275180d1d49baef192a961859fd51456e5b57ab8cca9cfc80beef17c2180c83000112a5f7bc50e58a93709a2ede640764918d35d9ac618beb3b3d9a74c9182fcc", 0x2000, &(0x7f0000000a40)={&(0x7f0000000180)={0x50, 0x0, 0x57, {0x7, 0x21, 0x9, 0x8000, 0x4, 0x9, 0x40, 0x5}}, &(0x7f0000000100)={0x18, 0x0, 0xe06bfc9, {0xfffffffffffff000}}, &(0x7f0000000200)={0x18, 0xfffffffffffffffe, 0x100000000, {0x7}}, &(0x7f0000000280)={0x18, 0x0, 0xe9c, {0x7}}, &(0x7f00000002c0)={0x18, 0x0, 0x6, {0x7}}, &(0x7f0000000300)={0x28, 0xfffffffffffffff5, 0x95, {{0x3, 0x0, 0x2}}}, &(0x7f0000000340)={0x60, 0x0, 0x8000, {{0x7fffffff, 0xff, 0x1, 0xfff, 0x0, 0x2, 0x3}}}, &(0x7f00000003c0)={0x18, 0x0, 0xa4c, {0x1}}, &(0x7f0000000400)={0x1c, 0x0, 0x7, {'/dev/media#\x00'}}, &(0x7f0000000440)={0x20, 0xffffffffffffffd1, 0xe1}, &(0x7f00000005c0)={0x78, 0x0, 0xd, {0x61bffe61, 0x6e4b, 0x0, {0x2, 0x1, 0x9, 0x2, 0x86, 0x27, 0xffffff01, 0xb1, 0xb07, 0x1000, 0x4, 0x0, 0xffffffffffffffff, 0x7f, 0x401}}}, &(0x7f0000000640)={0x90, 0x0, 0x800, {0x6, 0x3, 0xfb9, 0x2, 0x8, 0x4, {0x2, 0x4, 0x4, 0x8000, 0xdb0, 0x7ff, 0x0, 0x200, 0x8, 0x533aa6984578aae4, 0x4, 0xee01, 0xffffffffffffffff, 0x2}}}, &(0x7f0000000700)={0x28, 0x0, 0x0, [{0x5, 0x3219, 0x0, 0x1}]}, &(0x7f0000000740)={0x1f0, 0xfffffffffffffff5, 0x4, [{{0x0, 0x2, 0xfff, 0xcdb, 0x7ff, 0x200, {0x5, 0x7, 0x1, 0x9, 0x3, 0x1c000000, 0x40, 0x2000, 0x2, 0x6000, 0x101, 0x0, 0x0, 0x21, 0x1f}}, {0x5, 0x9, 0x0, 0x6}}, {{0x1, 0x1, 0x9, 0xfff, 0x5, 0x20, {0x5, 0x1000, 0xe2, 0x3, 0x6, 0x7fffffff, 0x7fffffff, 0xcd5, 0x1, 0x1000, 0x0, 0x0, 0x0, 0xfffffe63, 0x80000000}}, {0x6, 0x3ff, 0xa, 0xffffffff, '/dev/fuse\x00'}}, {{0x6, 0x1, 0x0, 0x1000, 0x4, 0x8, {0x1, 0x2, 0x100, 0x5, 0xe1, 0x4, 0x100, 0xfffffff9, 0x9, 0x8000, 0x3, r2, 0xffffffffffffffff, 0x1000, 0x9}}, {0x1, 0x0, 0x2, 0x9, '^/'}}]}, &(0x7f0000000940)={0xa0, 0xfffffffffffffffe, 0x0, {{0x3, 0x0, 0x1, 0x9, 0x92, 0x1f, {0xc841, 0x100000000, 0x81, 0x2, 0x200, 0x5, 0x6, 0x4, 0x2, 0xc000, 0x5, r3, 0x0, 0x2, 0x4}}, {0x0, 0x10}}}, &(0x7f0000000a00)={0x20, 0x0, 0xfffffffffffffb7d, {0x9e52, 0x0, 0x3, 0x2}}}) read$FUSE(0xffffffffffffffff, 0x0, 0x0) write$FUSE_INIT(0xffffffffffffffff, 0x0, 0x0) syz_fuse_handle_req(0xffffffffffffffff, 0x0, 0x0, 0x0) syz_fuse_handle_req(r1, 0x0, 0x0, 0x0) syz_fuse_handle_req(0xffffffffffffffff, 0x0, 0x0, 0x0) ioctl$EVIOCGKEY(r0, 0xc0487c04, &(0x7f0000000000)=""/216) 16:42:10 executing program 3: r0 = socket(0x1e, 0x4, 0x0) bind(r0, &(0x7f00000000c0)=@generic={0x1e, "0103000000000000000000000000000009d6533d7fb30c7bc8790405c7bad62e0a43a632ed4938d36d73fb8f840189ff59829a2b0afe7ce43a4b2470a0c5216669ca021f6f65dcf160e7e58f358c0020f0000158d19bcb31f1314a8ef151622ca5bdb1c8ead2000077aeb81c90001d6d7c4a00"}, 0x80) r1 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r2 = accept4$vsock_stream(r1, &(0x7f0000000040)={0x28, 0x0, 0x2710}, 0x10, 0x80000) ioctl$sock_SIOCETHTOOL(r2, 0x8946, &(0x7f0000000080)={'sit0\x00', &(0x7f0000000140)=@ethtool_flash={0x33, 0x4, './file0\x00'}}) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800007, 0x12, r1, 0x0) preadv(r1, &(0x7f0000000280), 0x18, 0xd9f, 0x0) r3 = socket(0x1e, 0x5, 0x0) connect$tipc(r3, &(0x7f0000000000)=@name, 0x10) close(r0) 16:42:10 executing program 1: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) mkdir(&(0x7f0000000080)='./control\x00', 0x0) r1 = inotify_init1(0x0) inotify_add_watch(r1, &(0x7f0000000180)='./control\x00', 0xa4000960) rmdir(&(0x7f0000000100)='./control\x00') r2 = syz_open_dev$loop(&(0x7f00000001c0), 0x30, 0xf60b7d294d5d6a3) r3 = memfd_create(&(0x7f0000000240)='.^\xc5', 0x0) getdents64(0xffffffffffffffff, 0x0, 0x0) ioctl$LOOP_SET_FD(0xffffffffffffffff, 0x4c00, 0xffffffffffffffff) rmdir(&(0x7f00000000c0)='./control\x00') pwritev(r3, &(0x7f0000000800)=[{&(0x7f00000009c0)="1e53851521405f68000049445ab542cdcc1a7bda86e079a689acae17cc31c898eda6f288fe62aee7e0f6f80ee9a7bdb3165d5a3b77c2edf9cdc1e8b94e17bbfd0db295179f6c6f363c7dc9ddedc89517dcf5e2c8508c7f49d3a05548a74b82af6ffe2403d8625c706f6e668da030a010bfe8078c0ecc9b44d0ab2bd78f1cbcd18c8135c4c6366b1345af6d45258face1d3a7ca2b4e", 0x95}, {&(0x7f0000000580)="79bf15435b9ab2c0592cf77636555baaa0ab09fbe168dabcaf1b8a9e012751423f44fd55a5b66c6e749ce9fd3080c6889154d02ae8050cb5733da3e5ff7d7a3538d0868d2a51a831ff5a1a04747ab0a3ee872537208a06803c08df7f3556b57ccb72f3efa09b3c5ca98b4219e6c74045c5b457e8434cbb61bff87565790caaafce8c658a684221e0cc4856332ccaf2db", 0x90}, {&(0x7f0000000640)}], 0x3, 0x81805, 0x0) sendfile(r2, r2, 0x0, 0x24000000) open(&(0x7f0000000140)='./control\x00', 0xa4480, 0x108) ioctl$LOOP_CLR_FD(r2, 0x4c01) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x3800004, 0x10, 0xffffffffffffffff, 0x0) ioctl$LOOP_SET_FD(r2, 0x4c00, r3) ioctl$KVM_CREATE_VM(0xffffffffffffffff, 0xae01, 0x0) ftruncate(r3, 0x4) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) 16:42:10 executing program 0: clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r1 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r1, &(0x7f0000000080)=""/196, 0xc4) getdents64(r1, 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r1, 0x0) mremap(&(0x7f0000ffc000/0x4000)=nil, 0x4000, 0x4000, 0x3, &(0x7f0000153000/0x4000)=nil) pkey_mprotect(&(0x7f0000ffc000/0x1000)=nil, 0x1000, 0x8, 0xffffffffffffffff) preadv(r0, &(0x7f0000000280), 0x18, 0xd9f, 0x0) mkdir(&(0x7f0000000080)='./file0\x00', 0x0) mount(0x0, &(0x7f00000002c0)='./file0\x00', &(0x7f0000000040)='cpuset\x00', 0x0, 0x0) write(0xffffffffffffffff, 0x0, 0x0) r2 = open(&(0x7f0000000200)='./file0\x00', 0x0, 0x0) r3 = openat$cgroup_procs(r2, &(0x7f0000000100)='cgroup.procs\x00', 0x2, 0x0) writev(r3, &(0x7f00000004c0)=[{&(0x7f0000000180)='1', 0x1}, {&(0x7f0000000000)='0', 0x1}], 0x2) 16:42:10 executing program 5: perf_event_open(&(0x7f0000000100)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = openat$vcsa(0xffffffffffffff9c, 0x0, 0x0, 0x0) r1 = syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x80d00, 0x6, &(0x7f00000002c0)=[{&(0x7f0000010000)="200000000002000019000020600100000f2d0000000000000000000004000000000002000020000020000000ddf4655fddf4655f0100ffff53ef010001000000ddf4655f000000000000000001000000000000000b0000000001000008000000d24200001203", 0x66, 0x400}, {&(0x7f00000000c0)="0000000000000000000000026856d49a00cc4371bd6a7c893f280045010040", 0x1f, 0x4e0}, {&(0x7f0000010300)="03", 0x1, 0x640}, {&(0x7f0000010400)="030000000400000005", 0x9, 0x800}, {&(0x7f0000010e00)="ed41000000040000ddf4655fddf4655fddf4655f000000000000040020", 0x1d, 0x1500}, {&(0x7f0000011000)="8081000000180000cdf4655fddf4655fddf4655f00000000e5c700000800000010000800000000000af302000400000000000000000000000200000030000000020000000400000032", 0x49, 0x1600}], 0x81, &(0x7f00000001c0)=ANY=[]) openat$cgroup_ro(0xffffffffffffff9c, 0x0, 0x26e1, 0x0) ioctl$PERF_EVENT_IOC_PERIOD(0xffffffffffffffff, 0x4030582a, &(0x7f0000000040)) pipe(&(0x7f0000000280)) write$cgroup_type(0xffffffffffffffff, &(0x7f0000000140), 0xffffff1f) syz_open_procfs$namespace(0x0, 0x0) r2 = dup2(r1, 0xffffffffffffffff) bpf$OBJ_PIN_MAP(0x6, &(0x7f0000000240)={&(0x7f0000000200)='./file0\x00', r0}, 0x10) ioctl$TUNGETDEVNETNS(r2, 0x54e3, 0x0) r3 = syz_open_dev$sg(&(0x7f0000000040), 0x0, 0x0) r4 = socket$inet_udp(0x2, 0x2, 0x0) close(r4) ioctl$SCSI_IOCTL_SEND_COMMAND(r3, 0x1, &(0x7f0000000380)=ANY=[@ANYBLOB="00000000ff01000003000000add0cad4ed4621cf95da7418cec261552737c7bb621a07a5c604ac5c5e7cb43f32372e67720b1679e99beb96e5"]) ioctl$SG_SCSI_RESET(r3, 0x2284, 0x0) r5 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r5, &(0x7f0000000080)=""/196, 0xc4) getdents64(r5, 0x0, 0x0) getsockname$packet(r5, &(0x7f0000000080), &(0x7f00000001c0)=0x14) 16:42:10 executing program 3: syz_mount_image$vfat(&(0x7f00000002c0), &(0x7f0000000340)='./file0\x00', 0x0, 0x2, &(0x7f0000000200)=[{&(0x7f0000010000)="601c6d6b646f736617e43c00088020000200000004f8000020004000000000000000000001", 0x25}, {0x0, 0x0, 0x200000000010ffd}], 0x10000, &(0x7f0000000240)=ANY=[]) chdir(&(0x7f0000000240)='./file0\x00') open(&(0x7f0000000080)='./file0\x00', 0x4142, 0x2) open(&(0x7f0000000300)='./file0\x00', 0x5513c0, 0x0) perf_event_open(&(0x7f000001d000)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x80, 0x0, 0x10}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = open(&(0x7f00000001c0)='./file0\x00', 0x0, 0x0) r1 = open(&(0x7f0000000000)='./file0\x00', 0x141002, 0x0) write$binfmt_elf64(r1, &(0x7f0000000180)=ANY=[], 0x82) r2 = open(&(0x7f00000001c0)='./file0\x00', 0x0, 0x0) r3 = open(&(0x7f0000000380)='./file0\x00', 0x141042, 0x0) write$binfmt_elf64(r3, &(0x7f0000000180)=ANY=[], 0x82) sendmsg$NLBL_CIPSOV4_C_REMOVE(0xffffffffffffffff, &(0x7f0000000240)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x400000}, 0xc, &(0x7f0000000200)={&(0x7f0000001840)=ANY=[@ANYRES32, @ANYRES32, @ANYRESOCT, @ANYRES32, @ANYRES32, @ANYRES64, @ANYRESHEX], 0x3}, 0x1, 0x0, 0x0, 0x40004}, 0x40025) ioctl$BTRFS_IOC_DEV_INFO(0xffffffffffffffff, 0xd000941e, &(0x7f0000000400)={0x0, "7ae5ea7cd2bd3a00d346994bdce69381"}) ioctl$BTRFS_IOC_GET_DEV_STATS(r2, 0xc4089434, &(0x7f00000003c0)={0x0, 0x0, 0x0, [0x3, 0xfffffffffffffff8, 0x1, 0x3, 0x100], [0x7f, 0x401, 0x6, 0x8000, 0x3, 0x1, 0x1ff, 0x9, 0x3ff, 0x61, 0xffff, 0x0, 0x0, 0x6, 0x8, 0xe291, 0x100, 0x100000000, 0x200, 0x400, 0x7, 0x0, 0x10, 0x4, 0x1, 0x1ff, 0x2, 0x9, 0x7, 0x0, 0x9, 0xfffffffffffff83b, 0x1f, 0x3, 0xe473, 0x1ff, 0x3, 0x2, 0x101, 0xff, 0x2, 0x97ec, 0x7f, 0x8, 0xd46, 0x3663e60e, 0x10001, 0xffff, 0xb334, 0x1, 0x9, 0x9, 0x8, 0x5, 0x5, 0x9, 0x80000000, 0x606, 0x394, 0x2, 0x1, 0x1f, 0x6a, 0xa800000000000000, 0x200, 0x53c8, 0xffffffffffffffff, 0x8, 0x385d1f26, 0x6, 0x101, 0x81, 0x5, 0x3f, 0x9, 0xf129, 0x7, 0x5, 0x7, 0xffffffffffff9b48, 0x0, 0x4, 0x7e, 0x8, 0xffff, 0x2, 0x401, 0xfffffffffffffff8, 0x40, 0x3c8, 0x400, 0x3, 0x8, 0x89, 0x0, 0x1f, 0x7b, 0x0, 0x6, 0x1, 0x3, 0x6, 0x1, 0x9, 0x7854, 0x101, 0x3, 0xffff, 0x8, 0x2, 0x10001, 0x8001, 0x401, 0x3, 0x3, 0x4, 0x8000, 0x1ff, 0x2, 0x8, 0xc0ae]}) r4 = socket$inet_udplite(0x2, 0x2, 0x88) ioctl$sock_SIOCDELRT(r4, 0x890c, &(0x7f0000000100)={0x0, @in={0x2, 0x0, @loopback}, @l2={0x1f, 0x0, @none}, @l2={0x1f, 0x0, @none}, 0x7, 0x0, 0x0, 0x0, 0xff, &(0x7f0000000000)='veth0_vlan\x00'}) ioctl$EXT4_IOC_GROUP_EXTEND(r4, 0x40086607, &(0x7f0000000040)) unlink(&(0x7f0000001540)='./file0\x00') sendfile(r3, r2, 0x0, 0xa198) sendfile(r1, r0, 0x0, 0xa198) [ 2025.587161] FAT-fs (loop3): Invalid FSINFO signature: 0x00000000, 0x00000000 (sector = 1) 16:42:10 executing program 1: openat$cgroup(0xffffffffffffffff, &(0x7f0000000200)='syz1\x00', 0x200002, 0x0) r0 = openat$bsg(0xffffffffffffff9c, &(0x7f0000000140), 0x80, 0x0) perf_event_open$cgroup(&(0x7f0000000340)={0x5, 0x80, 0x0, 0xed, 0x4, 0x0, 0x0, 0x40, 0xe0, 0x7, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, @perf_config_ext={0x6, 0xa2}, 0x48, 0x0, 0x0, 0x0, 0x3, 0x3, 0xfffc, 0x0, 0x80}, 0xffffffffffffffff, 0x9, r0, 0x0) bpf$MAP_CREATE(0x0, &(0x7f0000000000)={0x17, 0x0, 0x80000001, 0x0, 0x0, 0xffffffffffffffff, 0x0, '\x00', 0x0, 0xffffffffffffffff, 0x0, 0x3}, 0x40) perf_event_open(&(0x7f0000000180)={0x1, 0x80, 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, 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$kcm(0x2, 0xa, 0x2) ioctl$SIOCSIFHWADDR(r1, 0x8914, &(0x7f0000000180)={'syzkaller1\x00', @link_local}) openat$tun(0xffffffffffffff9c, &(0x7f0000000040), 0x80001, 0x0) bpf$MAP_DELETE_ELEM(0x3, &(0x7f00000002c0)={0xffffffffffffffff, &(0x7f0000000280)="071c4de3d51e27e60f4b5d6fc054111ea7bab8b0b64e284a9bb4a782771d0e7a25da3601b7141bb819aead"}, 0x20) ioctl$PERF_EVENT_IOC_SET_FILTER(0xffffffffffffffff, 0x40082406, &(0x7f0000000080)='&6\n\x00\xff\x00\xdc.\xdf\xbbk\xad\x1b\xf3\xf6_|S\x93>\xb4\x15#b\x91\xec\xf2\x12\xbb\xd0\xcd0\xaf\xda\xa8\xe1o+\xbd}EV\xba6\xae\xee(4\xe4\x88\x17\b\xa7\xb04G\xc28\xfb\x19\x94\xdf\x11JE\x02\x98Pm\x0f(\x98\xff\x05[\xd9\xad|\xa3\xc9Y~\xf4\xf7\xf9F\x9c\xf0\x83H\xb5\x12\xdeM\x802\x1f\xa6\x8a\x89\x1c') bpf$BPF_GET_PROG_INFO(0xf, &(0x7f0000000780)={r0, 0xc0, &(0x7f00000006c0)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ""/16, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000000580)=0x81, 0x0, 0x0, 0x0, &(0x7f00000005c0)={0x3, 0x4}, 0x0, 0x0, &(0x7f0000000600)={0x3, 0x0, 0xc4f, 0x8}, &(0x7f0000000640)=0x7ff, 0x0, 0x0, 0x0, 0x0, &(0x7f0000000680)=0x9}}, 0x10) r3 = bpf$OBJ_GET_PROG(0x7, &(0x7f0000000800)={&(0x7f00000007c0)='./file0\x00'}, 0x10) bpf$PROG_LOAD(0x5, &(0x7f0000000840)={0x13, 0x9, &(0x7f00000003c0)=@framed={{0x18, 0x0, 0x0, 0x0, 0x8e6, 0x0, 0x0, 0x0, 0x8}, [@func={0x85, 0x0, 0x1, 0x0, 0xfffffffffffffff9}, @alu={0x4, 0x0, 0x1, 0x3, 0x8, 0xfffffffffffffff4, 0xfffffffffffffffc}, @btf_id={0x18, 0x2, 0x3, 0x0, 0x2}, @exit, @jmp={0x5, 0x1, 0xc, 0x8, 0x7, 0x8, 0xfffffffffffffffc}]}, &(0x7f0000000240)='GPL\x00', 0x1, 0x94, &(0x7f0000000440)=""/148, 0x40f00, 0x4, '\x00', 0x0, 0x5, 0xffffffffffffffff, 0x8, &(0x7f0000000500)={0x2, 0x1}, 0x8, 0x10, &(0x7f0000000540)={0x2, 0xf, 0x8, 0x3}, 0x10, r2, r3}, 0x78) r4 = openat$tun(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) ioctl$TUNSETIFF(r4, 0x400454ca, &(0x7f00000000c0)={'syzkaller1\x00'}) ioctl$TUNSETLINK(r4, 0x400454cd, 0x308) bpf$PROG_LOAD(0x5, 0x0, 0x0) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000100)={@cgroup, 0xffffffffffffffff, 0x1f}, 0x10) ioctl$PERF_EVENT_IOC_PAUSE_OUTPUT(0xffffffffffffffff, 0x40086602, 0x400007) close(0xffffffffffffffff) 16:42:10 executing program 5: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000000)=ANY=[@ANYBLOB="3c0000001000030500000000000000eeff000000", @ANYRES32=0x0, @ANYBLOB="ffffffd9000000001c00128009000100626f6e64000000000c00028005000e0004000000"], 0x3c}}, 0x0) getsockopt$inet_mreqn(0xffffffffffffffff, 0x0, 0x23, &(0x7f0000000080)={@loopback, @broadcast, 0x0}, &(0x7f00000000c0)=0xc) sendmsg$nl_route_sched(r0, &(0x7f00000001c0)={&(0x7f0000000040)={0x10, 0x0, 0x0, 0x100000}, 0xc, &(0x7f0000000180)={&(0x7f0000000100)=@getqdisc={0x30, 0x26, 0x4, 0x70bd29, 0x25dfdbfe, {0x0, 0x0, 0x0, r1, {0xfff1, 0x3}, {0x1, 0xf}, {0x9, 0xffe0}}, [{0x4}, {0x4}, {0x4}]}, 0x30}, 0x1, 0x0, 0x0, 0x40}, 0x4000000) 16:42:10 executing program 3: perf_event_open(&(0x7f000001d000)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x2) r0 = getpid() r1 = socket$inet6_tcp(0xa, 0x1, 0x0) r2 = socket$pppoe(0x18, 0x1, 0x0) sched_setattr(r0, &(0x7f0000000140)={0x38, 0x0, 0x1, 0x6, 0x2000, 0x0, 0xffffffff, 0x401, 0x7fffffff, 0x401}, 0x0) connect$pppoe(r2, &(0x7f0000000040)={0x18, 0x0, {0x4, @dev, 'geneve0\x00'}}, 0x1e) sendmmsg(r2, &(0x7f000000d180), 0x4000000000000eb, 0x0) open(&(0x7f0000000100)='./file0\x00', 0x80000, 0x10) accept4(r1, &(0x7f0000000080)=@llc={0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, @local}, &(0x7f0000000000)=0x80, 0x0) 16:42:11 executing program 3: sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000380)={&(0x7f0000000200)={0x10, 0x0, 0x0, 0x2000000}, 0xc, &(0x7f0000000340)={&(0x7f0000001840)=ANY=[@ANYBLOB="14800000", @ANYRES32=0x0], 0x60}, 0x1, 0x0, 0x0, 0x4000080}, 0x0) openat$cgroup_devices(0xffffffffffffffff, 0x0, 0x2, 0x0) mkdir(&(0x7f0000000140)='./file0\x00', 0x0) preadv(0xffffffffffffffff, &(0x7f0000000280), 0x18, 0xd9f, 0x0) r0 = openat$cgroup_ro(0xffffffffffffffff, &(0x7f0000000240)='rdma.current\x00', 0x0, 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0xfffffffffffffffb) timer_create(0x0, &(0x7f0000000300)={0x0, 0x12, 0x0, @thr={0x0, &(0x7f0000000540)}}, &(0x7f00000003c0)) perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) timer_settime(0x0, 0x0, &(0x7f00000002c0)={{0x0, 0x989680}, {0x0, 0x1c9c380}}, 0x0) timer_create(0x0, &(0x7f00000001c0)={0x0, 0x15, 0x2}, &(0x7f0000000400)=0x0) timer_settime(r1, 0x0, &(0x7f0000000180)={{0x0, 0x989680}}, 0x0) clone(0x4007fc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) mount(&(0x7f0000000480)=ANY=[@ANYBLOB='[d::]:'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) r2 = open(&(0x7f0000000140)='./bus\x00', 0x141042, 0x0) sendmsg$ETHTOOL_MSG_STRSET_GET(r0, &(0x7f0000000280)={&(0x7f0000000080), 0xc, &(0x7f0000000100)={&(0x7f00000015c0)={0x1fc, 0x0, 0x100, 0x70bd2c, 0x25dfdbfb, {}, [@ETHTOOL_A_STRSET_HEADER={0xc, 0x1, 0x0, 0x1, [@ETHTOOL_A_HEADER_FLAGS={0x8, 0x3, 0x3}]}, @ETHTOOL_A_STRSET_STRINGSETS={0x38, 0x2, 0x0, 0x1, [{0x34, 0x1, 0x0, 0x1, [@ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x2}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x2}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x6}, @ETHTOOL_A_STRINGSET_ID={0x8}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x6}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x8}]}]}, @ETHTOOL_A_STRSET_STRINGSETS={0xec, 0x2, 0x0, 0x1, [{0x24, 0x1, 0x0, 0x1, [@ETHTOOL_A_STRINGSET_ID={0x8}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x2}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x6}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x2}]}, {0x34, 0x1, 0x0, 0x1, [@ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x1}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x2}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x8}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x6}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x5708c7ceca4b1950}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x2}]}, {0x44, 0x1, 0x0, 0x1, [@ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x6}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x6}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x8}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x8}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x2}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x1}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x2}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x7}]}, {0x4}, {0x3c, 0x1, 0x0, 0x1, [@ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x3}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x1}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x6}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x7}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x8}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x1}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x5}]}, {0xc, 0x1, 0x0, 0x1, [@ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x2}]}]}, @ETHTOOL_A_STRSET_COUNTS_ONLY={0x4}, @ETHTOOL_A_STRSET_STRINGSETS={0x6c, 0x2, 0x0, 0x1, [{0x44, 0x1, 0x0, 0x1, [@ETHTOOL_A_STRINGSET_ID={0x8}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x5}, @ETHTOOL_A_STRINGSET_ID={0x8}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x8}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x1}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x8}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x8}, @ETHTOOL_A_STRINGSET_ID={0x8}]}, {0x24, 0x1, 0x0, 0x1, [@ETHTOOL_A_STRINGSET_ID={0x8}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x7}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x5}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x2}]}]}, @ETHTOOL_A_STRSET_STRINGSETS={0x48, 0x2, 0x0, 0x1, [{0x44, 0x1, 0x0, 0x1, [@ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x6}, @ETHTOOL_A_STRINGSET_ID={0x8}, @ETHTOOL_A_STRINGSET_ID={0x8}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x6}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x8}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x4}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x4}, @ETHTOOL_A_STRINGSET_ID={0x8, 0x1, 0x8}]}]}]}, 0x1fc}, 0x1, 0x0, 0x0, 0x4000024}, 0x48090) write$UHID_INPUT(r2, &(0x7f0000000580), 0x10000005c) 16:42:11 executing program 5: perf_event_open(&(0x7f00000006c0)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c44, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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) r0 = syz_mount_image$btrfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x0, 0x2d, &(0x7f0000000200)=[{&(0x7f0000010000)="5d650181193eac9238391a5f172d3ef144fcf7f3b5c03bb7e73074d5c9551ec4e76ed35274d74461bdaa670e3acfe92b000001000000000001000000000000005f42485266535f4d07000000000000000000500000000000001010000000000000000000000000000000000000000000000000010000000000d000000000000006000000000000000100000000000000001000000010000000100000001000006100000004000000000000000000000000000000000000000000000045030000000000000300000000010000000000000000000001000000000000720000000000001000000010000000100000000000000000000000000000000000000000000000000000000000000000d75eaab06fc243b288e5e7aed2214d5de76ed35274d74461bdaa670e3acfe92b00", 0x12c, 0x10000}, {&(0x7f0000010200)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00\x00\x00\x00\x00\x00\x00\a\x00\x00\x00\x00', 0x18, 0x10220}, {&(0x7f0000010300)="00000000000000000000000001000000000000e4000010000000000000004000000000000200000000000000000001000000000002000000000000000010000000100000001000000100000001000000000000000000100000000000d75eaab06fc243b288e5e7aed2214d5d00"/128, 0x80, 0x10320}, {&(0x7f0000010400)="000000000000000000000000105000000000000500000000000000001010000000000004000000000000000020500000000000050000000000000000005000000000000400000000000000007050000000000004000000000000000080500000000000040000000000000000000001000000000080000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f050000000000006000000000000000010100000000000040000000000000000c0500000000000060000000000000000d050000000000006000000000000000000510000000000060000000000000000b05000000000000600000000000000000000010000000000d0000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000005000000000000700000000000000001010000000000004000000000000000010500000000000070000000000000000d050000000000006000000000000000000510000000000060000000000000000b05000000000000600000000000000000000010000000000d00000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000005050000000000004000000000000000010100000000000040000000000000000605000000000000400000000000000000050000000000004000000000000000070500000000000040000000000000000805000000000000400000000000000000000010000000000800000000000000100000000000000", 0x27b, 0x10b20}, {&(0x7f0000010700), 0x0, 0x100000}, {&(0x7f0000010800)="000000000000000000000000000000001900000000000200000000000000000001000000000005000000000000000000010000000100001000000100010001000000000000000000690000000000d75eaab06fc243b288e5e7aed2214d5d00001900000000000200000000000000000001000000000005000000000000000000010000000100001000000100010001000000000000000000500000000000d75eaab06fc243b288e5e7aed2214d5d00004000000000000200000000000000000001000000000002000000000000000010000000100000001000000100000001000000000000000000100000000000d75eaab06fc243b288e5e7aed2214d5d010000000000000000000001000000000000720000000000001000000010000000100000000000000000000000000000000000000000000000000000000000000000d75eaab06fc243b288e5e7aed2214d5de76ed35274d74461bdaa670e3acfe92bcc53eb42c5623806a4559532ccc303f0dc36408756b265700804c4838ae10d83e76ed35274d74461bdaa670e3acfe92b00101000000000000100000000000001ab1d155a764b4f7ab0eb6522ab0a1a800400000000000000030000000000000004000000000100000000000000d80100000000000000390f0000620000000001000000000000e40000100000000000e90e0000500000000001000000000000e40000500000000000990e0000500000000001000000000000e40000690000000000490e00005000"/576, 0x240, 0x100ea0}, {&(0x7f0000010b00)="000000000000000000000000000000001900000000000200000000000000000001000000000005000000000000000000010000000100001000000100010001000000000000000000690000000000d75eaab06fc243b288e5e7aed2214d5d00001900000000000200000000000000000001000000000005000000000000000000010000000100001000000100010001000000000000000000500000000000d75eaab06fc243b288e5e7aed2214d5d00004000000000000200000000000000000001000000000002000000000000000010000000100000001000000100000001000000000000000000100000000000d75eaab06fc243b288e5e7aed2214d5d010000000000000000000001000000000000720000000000001000000010000000100000000000000000000000000000000000000000000000000000000000000000d75eaab06fc243b288e5e7aed2214d5de76ed35274d74461bdaa670e3acfe92b3a818bebf7aa9eef81422ab80d600f144b93f9caa95e69f59f3a4b718be60252e76ed35274d74461bdaa670e3acfe92b00201000000000000000000000000001ab1d155a764b4f7ab0eb6522ab0a1a800100000000000000030000000000000002000000000100000000000000d80100000000000000390f0000620000000001000000000000e40000100000000000e90e00005000"/512, 0x200, 0x101ea0}, {&(0x7f0000010d00)="000000000000000000000000000000004000000000000200000000000000000001000000000002000000000000000010000000100000001000000100000001000000000000000000100000000000d75eaab06fc243b288e5e7aed2214d5d010000000000000000000001000000000000400000000000001000000010000000100000000000000000000000000000000000000000000000000000000000000000d75eaab06fc243b288e5e7aed2214d5de76ed35274d74461bdaa670e3acfe92b0bce94bf70cd435ba2f585bee264bc98c0d0b34d6321ee8f72a5abc310b7d85ae76ed35274d74461bdaa670e3acfe92b00301000000000000000000000000001ab1d155a764b4f7ab0eb6522ab0a1a800100000000000000040000000000000001000000000100000000000000cc00001000000000006b0f0000300000000000", 0x140, 0x102f40}, {&(0x7f0000010f00)="000000000000000000000000000000000300000000000000000100000000000000001000000000000000400000000000ab1d155a764b4f7ab0eb6522ab0a1a8060cc6b6dce945a27dacfc093ed393f757b5720ee0ee7c3de3f7efdf479d4fc16e76ed35274d74461bdaa670e3acfe92b00401000000000000000000000000001ab1d155a764b4f7ab0eb6522ab0a1a8001000000000000000500000000000000", 0xa0, 0x103fc0}, {&(0x7f0000011000)="3355b0dd54c56c75cb4282d344c122dcc7dcd9790fe7b63ed8a88b2f80322740e76ed35274d74461bdaa670e3acfe92b00501000000000000000000000000001ab1d155a764b4f7ab0eb6522ab0a1a8001000000000000000700000000000000", 0x60, 0x105000}, {&(0x7f0000011100)="5897207f7b43997e10245f7a1db9d66938ae48bcfabf293f01463f178bab3b7ce76ed35274d74461bdaa670e3acfe92b00601000000000000100000000000001ab1d155a764b4f7ab0eb6522ab0a1a80020000000000000002000000000000000a000000000000100000000000c00000400000000000830f0000180000000040100000000000a900000000000000006b0f0000180000000040100000000000b005000000000000006b0f0000000000000050100000000000a90000000000000000530f0000180000000050100000000000b00700000000000000530f00000000", 0xe0, 0x106000}, {&(0x7f0000011300)="00000000000000000000000000000000000000000000000000000000001000000000000000010000000000000500000000000000010000000000000002000000000000000200000000000000b00100000000000000010000000000000002000000000000000200000000000000b00300000000000000010000000000000002000000000000000200000000000000b00400000000000000010000000000000002000000000000000200000000000000b00200000000000000010000000000000001000000000000000200000000000000010000000000000001000000000000000200000000000000005000000000000000010000000000000200000000000000dfd0d00f7a1e4dddf0fe2c81fe4412d40a1a89d5c946e97e6cfc9832e93ccaa6e76ed35274d74461bdaa670e3acfe92b00701000000000000100000000000001ab1d155a764b4f7ab0eb6522ab0a1a800200000000000000040000000000000002000000000100000000000000cc00001000000000006b0f0000300000000100000000000000cc00005000000000003b0f0000", 0x193, 0x106f00}, {&(0x7f0000011500), 0x0, 0x107fa0}, {&(0x7f0000011700)="1900000000000200000000000000000001000000000005000000000000000000010000000100001000000100010001000000000000000000500000000000d75eaab06fc243b288e5e7aed2214d5d00004000000000000200000000000000000001000000000002000000000000000010000000100000001000000100000001000000000000000000100000000000d75eaab06fc243b288e5e7aed2214d5d010000000000000000000001000000000000590000000000001000000010000000100000000000000000000000000000000000000000000000000000000000000000d75eaab06fc243b288e5e7aed2214d5de76ed35274d74461bdaa670e3acfe92b", 0x100, 0x108f00}, {&(0x7f0000011800)="6f256587116197fdc1ae346056ebdf33da0ebe2dbac3ecfeedc3d2e9d4cb9e36e76ed35274d74461bdaa670e3acfe92b00005000000000000100000000000001ab1d155a764b4f7ab0eb6522ab0a1a80070000000000000001000000000000000a000000000200000000000000840000000000000000e40d0000b701000004000000000000008400000000000000002d0c0000b701000005000000000000000c06000000000000001c0c0000110000000500000000000000840000000000000000650a0000b70100000600000000000000010000000000000000c5090000a000000006000000000000000c0600000000000000b90900000c000000060000000000000054d2c2bf8d0000000094090000250000000700000000000000840000000000000000dd070000b7010000090000000000000084000000000000000026060000b7010000f7ffffffffffffff8400000000000000006f040000b701000000", 0x160, 0x500000}, {&(0x7f0000011a00)="0000000000000000000000000000000000000000040000000000000000010000000000000090500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000400"/128, 0x80, 0x500560}, {&(0x7f0000011b00)="00000000000000000000000400000000000000000000000000000000a050000000000000000000000000000010000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000040000000000", 0x60, 0x500720}, {&(0x7f0000011c00)="000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed410000000000000000", 0x40, 0x500840}, {&(0x7f0000002b00)="00000600000000000000000000000000000000b0500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600"/93, 0x5d, 0x5008e0}, {&(0x7f0000011e00)="00000000000000000000000000000000000000000000000000050000000000000084ffffffffffffffff0000000000000000000007000264656661756c74000000000000000002002e2e03000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000ed41000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005cbc645f00000000000000005cbc645f00000000000000005cbc645f00000000000000005cbc645f000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed410000000000000000000000000080ffffffff000000000000000000", 0x13b, 0x5009e0}, {&(0x7f0000012000)="000000000000000000000600000000000000000100000000000000d05000000000000000000000000000003000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000106000000000000005a8ee4e6eda54a729698a748ed73d196000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000005dbc645f0000000012d10c135cbc645f00"/224, 0xe0, 0x500b60}, {&(0x7f0000012100)="000000000000000000070064656661756c7401000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/84, 0x54, 0x500c80}, {&(0x7f0000012200)="000000000000000000000000000000000000060000000000000000000000000000000000510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600"/127, 0x7f, 0x500d20}, {&(0x7f0000012300)="00000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed41", 0x3f, 0x500e40}, {&(0x7f0000012400)="00000000000000000007000000000000000000000000000000001050000000000000000000000000000010000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000070000000000", 0x5e, 0x500ee0}, {&(0x7f0000012500)="7a6ff9d83cbef96369c09838c9fea762247d5ebcb8c82b3afcd94c9ac96741e3e76ed35274d74461bdaa670e3acfe92b00105000000000000100000000000001ab1d155a764b4f7ab0eb6522ab0a1a80070000000000000002000000000000000e000000000000100000000000c00000400000000000830f0000180000000010100000000000a90000000000000000620f0000210000000000500000000000a90000000000000000410f0000210000000000500000000000c00000190000000000290f0000180000000010500000000000a90000000000000000080f0000210000000030500000000000a80030000000000000d30e0000350000000060500000000000a90000000000000000b20e0000210000000090500000000000a90000000000000000910e00002100000000a0500000000000a90000000000000000700e00002100000000b0500000000000a900000000000000004f0e00002100000000d0500000000000a901000000000000002e0e00002100000000e0500000000000a900000000000000000d0e0000210000000000510000000000a90000000000000000ec0d0000210000000000690000000000c00000190000000000d40d000018", 0x1c0, 0x501000}, {&(0x7f0000012700)="0000010000000000000500000000000000010000000000000006000000000000000200000000000000b00400000000000000010000000000000006000000000000000200000000000000b00500000000000000010000000000000006000000000000000200000000000000b00500000000000000010000000000000006000000000000000200000000000000b00700000000000000010000000000000004000000000000000200000000000000b00900000000000000010000000000000004000000000000000200000000000000b0f7ffffffffffffff010000000000000006000000000000000200000000000000b00500000000000000010000000000000006000000000000000100000000000000b205000000000000000501000000000000000000000000000001000000010000000000000007000000000000000200000000000000b0020000000000000000c000000000000000010000000000000500000000000000010000000000000007000000000000000200000000000000b00100000000000000010000000000000004000000000000000200000000000000b003000000000000000010000000000000000100000000000002000000000000000180e63d568a80f0fd7575555c8adfa006ed1120be97222fc7e7c47726401c35e76ed35274d74461bdaa670e3acfe92b00205000000000000100000000000001ab1d155a764b4f7ab0eb6522ab0a1a80050000000000000002000000000000000b000000000000100000000000c00000400000000000830f0000180000000010100000000000a90000000000000000620f0000210000000000500000000000a90000000000000000410f0000210000000000500000000000c00000190000000000290f0000180000000010500000000000a90000000000000000080f0000210000000020500000000000a90000000000000000e70e0000210000000070500000000000a90000000000000000c60e0000210000000080500000000000a90000000000000000a50e0000210000000090500000000000a90000000000000000840e00002100000000a0500000000000a90000000000000000630e0000210000000000690000000000c000001900000000004b0e0000180000000000690000000000c000001900000000004b0e0000180000000000690000000000c000001900000000002a0e0000180000000000500000000000", 0x372, 0x501e40}, {0x0, 0x0, 0x502e60}, {&(0x7f0000012d00)="55d918bdd0691dda68c7e3c59a67d64c1b72efccd886fb4be508caea7b5e91f0e76ed35274d74461bdaa670e3acfe92b00605000000000000100000000000001ab1d155a764b4f7ab0eb6522ab0a1a800600000000000000050000000000000012000000000001000000000000010000000000000000fb0e0000a000000000010000000000000c0001000000000000ef0e00000c0000000001000000000000544bae790400000000cc0e0000230000000001000000000000546b826b1100000000a50e000027000000000100000000000054bf5d291700000000820e000023000000000100000000000054bcde42e5000000005f0e000023000000000100000000000054482d12f6000000003c0e0000230000000001000000000000600200000000000000190e0000230000000001000000000000600300000000000000f60d0000230000000001000000000000600400000000000000d30d0000230000000001000000000000600500000000000000b00d0000230000000001000000000000600600000000000000890d0000270000000101000000000000010000000000000000e90c0000a000000001010000000000000c0001000000000000da0c00000f0000000101000000000000544bae790400000000b70c000023000000010100000000000054482d12f600000000940c0000230000000101000000000000600200000000000000710c00002300000001010000000000006003000000000000004e0c00002300"/563, 0x233, 0x506000}, {&(0x7f0000013000)="0000000000000000000000000000000000000003010000000000000100000000000000000600000000000000000005000766696c653102010000000000000100000000000000000600000000000000000005000166696c653003010000000000000100000000000000000600000000000000000005000766696c653102010000000000000100000000000000000600000000000000000005000166696c65300200000000000000050066696c653006000000000000000600000000000000140000000000000000000000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000005dbc645f000000003e7e67125dbc645f000000003e7e67125dbc645f000000003e7e67125dbc645f000000003e7e671206010000000000000100000000000000000600000000000000000009000166696c652e636f6c6405010000000000000100000000000000000600000000000000000005000166696c653305010000000000000100000000000000000600000000000000000005000166696c653204010000000000000100000000000000000600000000000000000005000166696c653101010000000000000100000000000000000600000000000000000005000266696c653004010000000000000100000000000000000600000000000000000005000166696c653105010000000000000100000000000000000600000000000000000005000166696c653205010000000000000100000000000000000600000000000000000005000166696c653306010000000000000100000000000000000600000000000000000009000166696c652e636f6c6401010000000000000100000000000000000600000000000000000005000266696c6530000000000000000002002e2e030000000000000006000000000000003a0000000000000000100000000000000000000000000000010000000000000000000000ed41000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000005cbc645f00000000000000005dbc645f000000003e7e67125dbc645f000000003e7e67125cbc645f", 0x358, 0x506ca0}, {&(0x7f0000013500)="000000000000000000000000000000000300000000000000000100000000000000006900000000000000190000000000ab1d155a764b4f7ab0eb6522ab0a1a800300000000000000000100000000000000005000000000000000190000000000", 0x60}, {&(0x7f0000013600)="a35b4e402b90a7e2e376eea0fed72cc78dd79b8d33c24cbdd11b7bc8210f5920e76ed35274d74461bdaa670e3acfe92b00905000000000000100000000000001ab1d155a764b4f7ab0eb6522ab0a1a800400000000000000f7ffffffffffffff02000000000001000000000000010000000000000000fb0e0000a000000000010000000000000c0001000000000000ef0e00000c00"/159, 0x9f, 0x509000}, {&(0x7f0000013700)="0000000000000000000000000000000000000000000000000000000002002e2e04000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000ed41000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005cbc645f00000000000000005cbc645f00000000000000005cbc645f0000000000000000000000000000000000000000f309875138e428387652f83ee445e872a769b605f92b9d5d3faf22c47d533c47e76ed35274d74461bdaa670e3acfe92b00a05000000000000100000000000001ab1d155a764b4f7ab0eb6522ab0a1a800400000000000000090000000000000001000000005a8ee4e6eda54a72fb9698a748ed73d196930f000008000000", 0x13e, 0x509f40}, {&(0x7f0000013900)="0000000000000000000000000000000000000000000000000500000000000000a0903a59e37f178020887974a8b304e63ce01f992418d596a0eebd4f418608c3e76ed35274d74461bdaa670e3acfe92b00b05000000000000100000000000001ab1d155a764b4f7ab0eb6522ab0a1a80060000000000000007000000000000000100000000f6ffffffffffffff8000305000000000003b0f000060", 0x9b, 0x50afe0}, {&(0x7f0000013a00)="686ede9288c391e7e05026e56f2f91bfd879987a040ea98445dabc76f55b8e5f686ede9288c391e7e05026e56f2f91bfd879987a040ea98445dabc76f55b8e5f686ede9288c391e7e05026e56f2f91bfd879987a040ea98445dabc76f55b8e5f11338f9657a0451d61ea1dfea2e6eb9d6e14d9ea1e945a0c3d3a1f854ab75bfbe76ed35274d74461bdaa670e3acfe92b00c05000000000000100000000000001ab1d155a764b4f7ab0eb6522ab0a1a80060000000000000002000000000000000e000000000000100000000000c00000400000000000830f0000180000000010100000000000a90000000000000000620f0000210000000000500000000000c000001900000000004a0f0000180000000030500000000000a80030000000000000150f0000350000000060500000000000a90000000000000000f40e0000210000000090500000000000a90000000000000000d30e00002100000000a0500000000000a90000000000000000b20e00002100000000b0500000000000a90000000000000000910e00002100000000c0500000000000a90000000000000000700e00002100000000d0500000000000a901000000000000004f0e00002100000000e0500000000000a900000000000000002e0e00002100000000f0500000000000a900000000000000000d0e0000210000000000510000000000a90000000000000000ec0d0000210000000000690000000000c000", 0x214, 0x50bfa0}, {&(0x7f0000013d00)="0000010000000000000500000000000000010000000000000006000000000000000200000000000000b00400000000000000010000000000000006000000000000000200000000000000b00100000000000000010000000000000006000000000000000200000000000000b00500000000000000010000000000000006000000000000000200000000000000b00500000000000000010000000000000006000000000000000200000000000000b00200000000000000010000000000000006000000000000000200000000000000b00700000000000000010000000000000004000000000000000200000000000000b00900000000000000010000000000000004000000000000000200000000000000b0f7ffffffffffffff010000000000000006000000000000000200000000000000b00500000000000000010000000000000006000000000000000100000000000000b20500000000000000050100000000000000000000000000000100000000c000000000000000010000000000000500000000000000010000000000000004000000000000000200000000000000b003000000000000000010000000000000000100000000000002000000000000009239b6a15b1c4852ad962788675ba0ceb8960c47d975cd344f90d1c31a824a7be76ed35274d74461bdaa670e3acfe92b00d05000000000000100000000000001ab1d155a764b4f7ab0eb6522ab0a1a80060000000000000005000000000000000200000001000100000000000001000000000000000000605000000000000600000000000000020100000000000001000000000000000000e050000000000006", 0x260, 0x50ce40}, {&(0x7f0000014000)="63f1a32c0df153e7ed3c0ae7e95535e390bcc6c8552719e93c356b680a53cd58e76ed35274d74461bdaa670e3acfe92b00e05000000000000100000000000001ab1d155a764b4f7ab0eb6522ab0a1a800600000000000000050000000000000011000000000201000000000000010000000000000000fb0e0000a000000002010000000000000c0101000000000000ec0e00000f00000002010000000000006c0000000000000000bd0a00002f04000003010000000000000100000000000000001d0a0000a000000003010000000000000c01010000000000000e0a00000f00000003010000000000006c0000000000000000d30900003b000000040100000000000001000000000000000033090000a000000004010000000000000c0001000000000000240900000f00000004010000000000001822a8f12600000000f50800002f000000040100000000000018d65ba13500000000c60800002f00000004010000000000006c0000000000000000a70800001f000000050100000000000001000000000000000007080000a000000005010000000000000c0001000000000000e90700001e00000005010000000000006c0000000000000000b407000035000000060100000000000001000000000000000014070000a000000006010000000000000c0001000000000000010700001300000006010000000000006c0000000000000000880600007900000000", 0x20f, 0x50e000}, {&(0x7f0000014300)="0000000000000000000000000006000000000000006400000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c6572730600000000000000090066696c652e636f6c6406000000000000000600000000000000640000000000000064000000000000000000000000000000010000000000000000000000ed81000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000005dbc645f000000003e7e67125dbc645f000000003e7e67125dbc645f000000003e7e67125dbc645f000000003e7e671206000000000000000030000000000000000000000100305000000000000030000000000000000000000000000000300000000000000400000000000000050066696c65320500000000000000050066696c653306000000000000000600000000000000282300000000000000300000000000000000000000000000020000000000000000000000ed81000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000005dbc645f000000003e7e67125dbc645f000000003e7e67125dbc645f000000003e7e67125dbc645f000000003e7e671206000000000000000a00000000000000000000000073797a6b616c6c6572730000000000000000000000000000000000060000000000000006000b0008757365722e7861747472317861747472310000000000000000000000000000000000060000000000000006000b0008757365722e7861747472327861747472320300000000000000050066696c6531060000000000000006000000000000000a000000000000000a000000000000000000000000000000010000000000000000000000ed81000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000005dbc645f000000003e7e67125dbc645f000000003e7e67125dbc645f000000003e7e67125dbc645f000000003e7e67120600000000000000260000000000000000000000002f746d702f73797a2d696d61676567656e3932353733303932332f66696c65302f66696c65300300000000000000050066696c653106000000000000000600000000000000260000000000000026000000000000000000000000000000010000000000000000000000ffa1000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000005dbc645f000000003e7e67125dbc645f000000003e7e67125dbc645f000000003e7e67125dbc645f000000003e7e671206000000000000001a04000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c0200000000000000050066696c6530060000000000000006000000000000001a040000000000001a040000000000000000000000000000010000000000000000000000ed81000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000005dbc645f000000003e7e67125dbc645f000000003e7e67125dbc645f000000003e7e67125dbc645f000000003e7e671267be1950ec3826e12592fa0630248e46c15b67cd3b900d69f80f1c8c2644a40de76ed35274d74461bdaa670e3acfe92b00f05000000000000100000000000001ab1d155a764b4f7ab0eb6522ab0a1a80060000000000000001000000000000000a000000000200000000000000840000000000000000e40d0000b701000004000000000000008400000000000000002d0c0000b701000005000000000000000c06000000000000001c0c0000110000000500000000000000840000000000000000650a0000b70100000600000000000000010000000000000000c5090000a000000006000000000000000c0600000000000000b90900000c000000060000000000000054d2c2bf8d0000000094090000250000000700000000000000840000000000000000dd070000b7010000090000000000000084000000000000000026060000b7010000f7ffffffffffffff8400000000000000", 0xa76, 0x50e6e0}, {0x0}, {0x0, 0x0, 0x50f840}, {0x0}, {0x0}, {&(0x7f0000015900)="0f6f97c25c4368e7dfb8b86809e72e75545111e729e1b07d342771aff13f6816e76ed35274d74461bdaa670e3acfe92b00005100000000000100000000000001ab1d155a764b4f7ab0eb6522ab0a1a800600000000000000040000000000000004000000000000000000000000f90100000000000000730f0000280000000100000000000000cc0000100000000000430f0000300000000100000000000000cc0000500000000000130f0000300000000100000000000000cc0000690000000000e30e0000300000", 0xc8, 0x510000}, {&(0x7f0000015a00)="00000000000000000300000000000000000100000000000000006900000000000000190000000000ab1d155a764b4f7ab0eb6522ab0a1a800300000000000000000100000000000000005000000000000000190000000000ab1d155a764b4f7ab0eb6522ab0a1a800300000000000000000100000000000000001000000000000000400000000000ab1d155a764b4f7ab0eb6522ab0a1a80", 0x98, 0x510f40}, {&(0x7f0000015f00)}], 0x0, &(0x7f0000000940)=ANY=[@ANYBLOB="466114e5500ab42da2a72c355447212aa3a989b4b78f6555424488eddb455a8bbd0360e7e1617f852b378c2d6f39a3c93c077b4720c247fa7039da57d5347cad0eaf0475e516bd7a76c9a78a4399a6ca0fa536f996bd7a8eeb81a357ed4a470eda4e3301db3b44b6aaf9b359d428022c7fd48e785fc14163c7d68b7c52e3a9f2d53fd86c6ff93c05d79cbf48e48b313de94bd76d71038db6abafc8b381fdb55abaa85e5a305cbdbc6c4248d9f303d772320c919d81becce40309751085f38b3282ed5dcad7220fa95113b2f11ce0b8dae456616c85f08e7ba920ac8bad7164a64037b092bac450d65199b5058f09fd56f66b4aa6246b71bc09d0899d980c5fcee3720d429677e4244c7c6c16a00520ff2975ca9f98d3cee139d0ab0b2992d41f25c30367ee4b0f9dfbe197b28dfde4410506748fc8ae6996b88fa9c5a17a321f2ae27b67cbc7f9f5b31074eee17d41682f0b8706"]) r1 = timerfd_create(0x0, 0x0) accept$inet(0xffffffffffffffff, 0x0, &(0x7f0000000140)) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000140)='cpuacct.usage_percpu_user\x00', 0x275a, 0x0) r3 = open(&(0x7f00000000c0)='./bus\x00', 0x14d842, 0x0) clock_gettime(0x0, &(0x7f0000000040)={0x0, 0x0}) timerfd_settime(r1, 0x0, &(0x7f0000000080)={{0x77359400}, {r4, r5+60000000}}, &(0x7f00000001c0)) writev(r2, &(0x7f0000001580)=[{&(0x7f0000000180)="e5", 0x1}], 0x1) ftruncate(0xffffffffffffffff, 0x28f) sendfile(r3, 0xffffffffffffffff, 0x0, 0x80000001) r6 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r6, &(0x7f0000000080)=""/196, 0xc4) getdents64(r6, 0x0, 0x0) preadv(r6, &(0x7f0000000d80)=[{&(0x7f0000000ac0)=""/139, 0x8b}, {&(0x7f0000000b80)=""/62, 0x3e}, {&(0x7f0000000bc0)=""/50, 0x32}, {&(0x7f0000000c00)=""/18, 0x12}, {&(0x7f0000000c40)=""/105, 0x69}, {&(0x7f0000000cc0)=""/48, 0x30}, {&(0x7f00000015c0)=""/4096, 0x1000}, {&(0x7f0000000d00)=""/7, 0x7}, {&(0x7f0000000d40)=""/5, 0x5}], 0x9, 0x8, 0xec5e) fanotify_mark(r3, 0x50, 0x8, r0, &(0x7f0000000640)='./file0\x00') timerfd_gettime(r3, &(0x7f0000000680)) ioctl$BTRFS_IOC_GET_SUBVOL_INFO(r0, 0x81f8943c, &(0x7f0000000740)) syz_open_dev$tty20(0xc, 0x4, 0x0) 16:42:11 executing program 3: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) r2 = ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x0) ioctl$KVM_SET_USER_MEMORY_REGION(r1, 0x4020ae46, &(0x7f0000000180)={0x0, 0x2, 0x0, 0x2000, &(0x7f0000000000/0x2000)=nil}) syz_kvm_setup_cpu$x86(0xffffffffffffffff, r2, &(0x7f0000000000/0x18000)=nil, &(0x7f0000000100)=[@text64={0x40, 0x0}], 0x1, 0x0, 0x0, 0x0) syz_kvm_setup_cpu$x86(r1, 0xffffffffffffffff, &(0x7f0000006000/0x18000)=nil, &(0x7f00000000c0)=[@text32={0x20, 0x0, 0xcbb6a148e6bab192}], 0x1, 0x0, 0x0, 0x0) r3 = dup3(r1, r1, 0x80000) ioctl$KVM_SET_IDENTITY_MAP_ADDR(r3, 0x4008ae48, &(0x7f0000000000)=0x1) ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) ioctl$KVM_REGISTER_COALESCED_MMIO(r1, 0x4010ae67, &(0x7f0000000200)={0x4, 0x116000}) ioctl$KVM_NMI(r2, 0xae9a) perf_event_open(&(0x7f000001d000)={0x3, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, @perf_config_ext, 0x0, 0x0, 0x0, 0x0, 0x4, 0x9d1e}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$KVM_RUN(r2, 0xae80, 0x0) 16:42:11 executing program 5: r0 = syz_open_dev$usbfs(0x0, 0x77, 0x0) r1 = openat(0xffffffffffffffff, &(0x7f00000001c0)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x180000f, 0x12, r1, 0x0) preadv(r1, &(0x7f0000000280), 0x18, 0xd9f, 0x0) sendmsg$kcm(0xffffffffffffffff, &(0x7f0000000000)={0x0, 0x0, 0x0}, 0x0) r2 = socket$kcm(0xa, 0x5, 0x0) sendmsg(r2, &(0x7f00000006c0)={&(0x7f0000000040)=@in6={0xa, 0x0, 0x0, @local={0xfe, 0x1c}}, 0x80, &(0x7f0000000700)=[{&(0x7f0000000440)="c4", 0x1}], 0x1, &(0x7f0000000000)=[{0x18, 0x84, 0x7, "7f"}], 0x18}, 0x0) sendmsg$kcm(r2, 0x0, 0x0) r3 = socket$kcm(0xa, 0x5, 0x0) ioctl$USBDEVFS_CLEAR_HALT(r0, 0x80045515, &(0x7f00000000c0)={0x3, 0x1}) sendmsg(r3, &(0x7f00000006c0)={&(0x7f0000000040)=@in6={0xa, 0x0, 0x0, @local={0xfe, 0x1c}}, 0x80, &(0x7f0000000700)=[{&(0x7f0000000440)="c4", 0x34000}], 0x1, &(0x7f0000000000)=[{0x18, 0x84, 0x7, "7f"}], 0x18}, 0xfc) 16:42:11 executing program 1: setreuid(0xee01, 0xee01) r0 = getuid() r1 = openat$sysfs(0xffffff9c, &(0x7f0000000180)='/sys/class/sas_device', 0x0, 0x14) getsockopt$sock_cred(0xffffffffffffffff, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r2) r3 = openat$fuse(0xffffffffffffff9c, &(0x7f0000002080), 0x42, 0x0) mount$fuse(0x0, &(0x7f00000020c0)='./file0\x00', &(0x7f0000002100), 0x0, &(0x7f0000002140)=ANY=[@ANYBLOB='fd=', @ANYRESHEX=r3, @ANYBLOB=',rootmode=00000000000000000100000,user_id=', @ANYRESDEC=0x0, @ANYBLOB=',group_i', @ANYRESDEC=0x0]) read$FUSE(r3, &(0x7f0000006380)={0x2020, 0x0, 0x0, 0x0, 0x0}, 0x2020) fchownat(r1, &(0x7f0000000040)='./file0\x00', r2, r4, 0x1000) getsockopt$sock_cred(0xffffffffffffffff, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) write$FUSE_DIRENTPLUS(0xffffffffffffffff, &(0x7f0000000300)={0x1f0, 0x0, 0x0, [{{0x6, 0x3, 0x7, 0x5, 0x0, 0x8001, {0x0, 0x0, 0x5, 0x2, 0x0, 0x1ff, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x3, 0x2}}, {0x4, 0xd1c, 0x6, 0x7, 'tmpfs\x00'}}, {{0x1, 0x0, 0x3, 0x0, 0x3, 0x3ff, {0x1, 0x5, 0x81, 0x7, 0xffffffff, 0x5, 0x800, 0x401, 0x0, 0x2000, 0x8, 0xee00, 0xee00, 0x31b5edde, 0x8}}, {0x3, 0x7710, 0x2, 0x0, '\'\\'}}, {{0x2, 0x1, 0x7, 0x1, 0x0, 0x0, {0x5, 0x0, 0x0, 0x8001, 0x6, 0x0, 0x0, 0x100, 0x0, 0x6000, 0x0, r5, 0xffffffffffffffff, 0xfffffffd, 0x7}}, {0x6, 0x0, 0x6, 0x4, 'tmpfs\x00'}}]}, 0x1f0) mount$fuse(0x0, &(0x7f0000000000)='./file0\x00', &(0x7f00000001c0), 0x80008, &(0x7f0000000200)={{}, 0x2c, {'rootmode', 0x3d, 0xa000}, 0x2c, {'user_id', 0x3d, r0}, 0x2c, {'group_id', 0x3d, r4}, 0x2c, {[{@default_permissions}, {@blksize={'blksize', 0x3d, 0x1c00}}, {@allow_other}, {@allow_other}, {@blksize={'blksize', 0x3d, 0x1200}}, {@default_permissions}, {@blksize}, {}], [{@measure}, {@obj_role={'obj_role', 0x3d, '.'}}, {@fowner_eq={'fowner', 0x3d, r5}}, {@subj_role={'subj_role', 0x3d, '(\'[]-*#//]\\!'}}]}}) bpf$BPF_PROG_TEST_RUN(0xa, &(0x7f0000000140)={0xffffffffffffffff, 0x0, 0x40, 0x52, &(0x7f0000000040)="95802bcb2f1996d3745d720fc3fea96e57e31d7bebf0ed5fcc27ce38d8513c8276fb420d0f9833f75badeadefcdd6c9cbc65e062b1aa1a9ac7f192e76f7b9319", &(0x7f0000000080)=""/82, 0x3, 0x0, 0x21, 0xde, &(0x7f0000000100)="7839c83683db413d17f348c6af3573df6bafd6b8001f0229bb9689a151e3114f4a", &(0x7f0000000dc0)="582954fd676b3bda23b031cb4744c80bd0fed5f5fb9beed4f03c136a391cd51bece521f39521e568e1712ca4eba961090955e0f7b8e7aea34fcec67dfa4f868e13bfbbce46e258248a664cac87b0f94a31c43ca37dad64ca3e2af92055afc35753b4bc2053b79bb3204f35156b34ab3eb6d4adb3523ed63d63f853305efdb6efa28b952c7fc777071e3b634514be3c4f93a78074c234a3f9d3c965961c03391bf7dcffa053e6a59531590c0e17df2c379a461db27913414d8cf31e45197ee9e77348662c28f5014933b436b76f715030bf8c0e24c7d0398c97a2ea7a50b2", 0x0, 0x9}, 0x48) 16:42:11 executing program 3: r0 = socket$inet6(0xa, 0x400000000001, 0x0) close(r0) r1 = socket$inet6_sctp(0xa, 0x801, 0x84) setsockopt$inet_sctp_SCTP_SOCKOPT_BINDX_ADD(r1, 0x84, 0x64, &(0x7f0000cf6fe4)=[@in6={0xa, 0x4e23, 0x0, @loopback}], 0x1c) connect$inet6(r1, &(0x7f0000000080)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) fcntl$setstatus(r0, 0x4, 0x42800) syz_open_procfs(0x0, 0x0) r2 = openat$cachefiles(0xffffffffffffff9c, &(0x7f0000000100), 0x644840, 0x0) bind$inet6(r2, &(0x7f0000000200)={0xa, 0x4e21, 0x101, @private1, 0x58}, 0x1c) openat$cgroup_ro(r2, &(0x7f0000000140)='cpuacct.usage_percpu_user\x00', 0x0, 0x0) r3 = open(&(0x7f0000000080)='./bus\x00', 0x141042, 0x0) bpf$OBJ_GET_MAP(0x7, &(0x7f00000001c0)={&(0x7f0000000180)='./bus\x00', 0x0, 0x10}, 0x10) perf_event_open(0x0, 0x0, 0x0, 0xffffffffffffffff, 0x0) r4 = openat$sysfs(0xffffffffffffff9c, &(0x7f0000000000)='/sys/module/hci_vhci', 0x0, 0x48) ioctl$sock_inet_SIOCGIFDSTADDR(r0, 0x8917, &(0x7f00000000c0)={'netdevsim0\x00', {0x2, 0x0, @local}}) ioctl$EVIOCSKEYCODE(r4, 0x40084504, &(0x7f0000000040)) pwritev2(0xffffffffffffffff, &(0x7f00000014c0)=[{&(0x7f0000000240)="ff0e7eaa7592f58de3d72b44a65f88af7db696ab3532ba154eabe65b3033ca7df7eb143f157e75a5dd381db33a409dc73c4f4e80692ce6189ef67aad5ab234a620fcd38e385f83138dd9b18077dc0db2d94c91b654c831ed6672aa5daa707aa7025659d2b17d8f82a8ebb0cdc2b6e444b6598a9f0c82b7ae66f12abbd6e23572b3452510bb6c26c5f37bd06683ffa9a23583f8dfc5f269b5743563d4db9fbe2aea7d7a325298a9a5bfcff587e58836fb892cd2", 0xb3}, {&(0x7f0000000300)="3524873d270891984b0a7ec766eb9274911623552303daaa0e44fbe5e578c0ca182794e07c511c823252a0c9d98ca4210d6b8a11833584a43232fedbbec286cbba4f4ab066675c6843c516a0a08e97449f09cb8194e8e982028910ddc1d058d28afcf47be8ba3a856f502aac4481098c2d4cf675db06c5cfde39bb8631ba249f0e8076278a1d09", 0x87}, {&(0x7f00000003c0)="4358c385dc17fa3753287f25a1fa44c965f113a4895713cc27a423b154c465c0a0492ee51960e086d46def873f948190a08d94d9f57dd16f966fc512cb903e7d913969f2b5433b0c46729289f4f56cfeec29c9ea87fa92e7f4c72f9bf3ab6014a85a262982c15bb2b1ce898402d1f1c24067c9e8784aa2c894c736cc41698179949465d9d1d789cd101c8a23ec108d0e05a9b3b5d54f2d1d700532ba6c8655295214ce8885d9e1c35c138b3727be5f1e5db51850208cb43dea91b37c593d30ce16348f27ac36e3b3420731477a2689a1d64536c430cd6373da1865894703f40d814c20601bb6250b1122746030b16824f90ee179226d485a933163a3ae58294750dd04ba6137785579d0631b58efa8cea42d28e28b6eb01262eded69d309ae44d7e49b88377ee4f7a353e9ca10dc74e37737f56318d4752e32bbc920ba0a12797bb4cda9586b23afa8b422005268577acce0b9d31f9b5bd903c020ed3c299b8cfabfb802490b0e20c1a548a677015d396039117af2b4aec1255c2c33f47c78f418993a7b6608cc4ab44495f98226ae37d21f34725c8885efbe3bd86106218241542bb96e22fb152099406bb5b915288aac4af3947bee8f56f8bfe867d6e5e8499cd7e76be8c931730ddf1899048f38bafbe861c3aee15a6bf16a10c3dfc63108683c31c839c2e387c8fe1c3f345647eff366c5e02a34ddbaeb8d7391e3630309edd39b869b2fd8d26b1667e848e18b27220e9f8b851b86c205e038bf849cb4be6f44bcc0272a787b94f6d6d6ecd592bf2298b4f35ac17bd8728b0d2350802d9e8fbcb9fef045206ca30dc28ef09943cdffad6ff24967ec99d632d12cfc89f29bd2906596ea19d3ae0283e6c1e781f2017e0d6341595dd736c5e5569c6bddc1fe838e1f2adbd23a822e15e36bc8760d1981ad7330f9387863ba7a576089c0a340703c12eab59795cb6251c4cc57731f6f6a1d154169b4e309e8c8db5f611a2ad1e5d3747655d6a040258244ea38c8a728b166c060b58b92c53b43ac5a038508cd4f61c2339a38ae6b877c8efcd36dd537b21bf2061766e0538dfbb889c589809a03c1ee4aba0cf73acd77c59a4f428261be0623bb134f6dc3641f92c02579b0a15bb1354cc169cfc9ca3727b3e60e3d8a04a509ed8d8b9e5394f9801ddae1e3130c42f9d0aa80cc8cfbe7ec3ed4b8a427ad7135db6c38a0b39e07b170e719e094aa0367d129c2bd656a3a4e2a1ba45896c9fb73f0059a2c359cefedbaca96c5cae519959ac03d547b89aeb06779dfc0393579f237fe51016d3df7369e75daef88ce4f57cc9b1ce72017dd7ba9c9e03b70202a0f31861170988c823e00f5f300192e23205f4d77d4a5ae316f5360be538b0bf64e662b0497c69d51b63967b1bcc0c2ebe2276882d6470ad03d2e80b1bddbec83d31ebb20276da760dd951d56ae2a626b8a14022d877994f9b0719eee142de4f75569384962f0fab5de9b80378c1e39a6710c8545c37aa27cb897505e33ab89bd75e42d1cd4c033dafa07791817a6c7366e42b071126752b039b47422d0d679d1222304883ab81a6f78cfa1d8c292fa48f8d00b450b0bca05f0fa52734002a24a8eedecaf85c346a2fad3c6d063c7db85bb9a1b7e15c02c72c6da8f5d55e8629a0df05c3b16c70697d100e7a67e50f5ee78e37d1fbda47bff862637b9a8ee363d41a03387b6be53e9097733bb7c0e0185c1fa4b59c0731b73442681e8f47e27926579bc24ae998b05cedb3022bcd71a2a212a386687c6dc80bd7eaf74cb3e6d361bdb5fe0e590c16131c6ee24f22e17ff6e88b550eb89be6b2d34083dc5194877acf4c9e53670427058128bc9c0f901596eab3fd98a87733fa0176328603d84fa072798170bfebe4ed7bb1d592b820c4bf0101cdc875c3cc2d7cd754f4fc9c2b93d85a990c5a0620b39ff3ef4bcd498681cdc2ffcc3082fdf0ac811233981981e030b2079086f2b5dc5157302149cb4d8964f56bc794ffa6e55e1e1045a686ce4734925b9d2a9b9ac90a1bb7370622a5b6bb87128c712aff3d5a6b98cce2bc22acae51c1dd35cac2c706e3f184d52f29e0e6a63f0ed20f9a213251c8b5245097475c795778f5c63092d0fbc47b2da97bd2c25b611a037473b6c47baf15bf2510d611f7c39d3c4bd121f33599ffd998dc402b7f84701fd6d3c0bfba72a9512582730f49a26e9780cfc6c22280857f33c68d7fa6c9d8be5a2b2c4b8d0df54cbf050bf99afd7a027d9297807c920e82329662170a96e5e15cffb7d576dda341806e06aac30444a2fbc1957f4242379b2344cce3fb331095a99137dd8ed5322a1cbeed1552592ecbdbe0e7b8bff9d4172280a2a8950e4f3abece3f41573a7ad9e5a2abdc46b2b7cac2af475cff9f8aa229eda2723ba3820245af26104c38b4aea344c7f6f40abe1e28128c2777e7c1fc873bafbd62a28299d619c27c2e1801bf09d808cfb1ae8b334c3f475daf580522dcbc50f9045aa37bbce29e3bd6c122f1574a5ad8960cdd9a6cf193b54ee394150e1caf0de3f3ade4ec4443956ec018d34d6ce65363fae0654e777b43eb7233896971a217c4e5a9a05eb5023ee0b1c867e85a1e1931f1a3616ea708df5da8db76ef5117af7ff369d7ca796a8287c945e5659454280518ffe207601c26c7c5f084c17756920fc1cce089ae94e6032e93cc129e1419725eaa24bcaf12509a1ad4d23fa3999112eb01a60fd5e25dfb360dbc66c2f31c2a15be3b2fac39f126e9e2abaea4a3adaa0f387b86f01c2eb1e49c16cdcdb60d1b380d9822f93f19ff9805fe2525029af6c03b410c18cf0d49ab7fdb7e677c61c4f329854fb26b29ac4f51dd0c933d0e3b79338aea218d556de50e8bf123f0e354a1754f1675eca9e30dd755971e05d1fb228df8899a4bff5e0bc64037bacaf0dfc13968b7b35b2786e3a5480d2e539c8262dcffff7fb9dd0c90969410a0de1b7f3ddb6fd0e185fdf35bdf71e3bb2c798a5bf517e5157b748e6357f097b5731f631d3fb5b8fc6ca01c7792deb1b5bfc3ac7528d6c5c81fd69961172617448690346e694da05070c766889dd792901dbad35b1cf44fd8faaf5e9f6793d73b9d349e9cfd7f4897566efff9b83042d8da0da310071b2ae771b0ceca3b6319a54f76a1eea2244d2c6f6e70e98fbf6b9aa1b1302bdda7296ac6bdff31b212bd124a54f4259c1721f3d17f072dc2a25c11100170042de8438ef3c2542729477fa86f73c0e334063a318e7cf4f8873879a3962c96e6a3caee4c9638e2a7ac7a9a6f04f9dcb930a61b05c1b3d710084d7be7682d93525b1f728a2f894f9892af1015ee054b1da6192f36cd593511c3734071a9e26612b988527f1d5ccf265d36bc3e93b27657e6620978daba681288661d36c3570301021c09fc81db70355ad04ba80923ce9cda774e411c0b48ccea7097c96c4b75de1eb7f2b28f51793ef08631b0b94fbc76cc7bab48b848583a1656e4eeeb1d37f864c7f8b319de2835df2dd496f0ef16a2f20e8b470e4976cf5f0cea60374f487edf3bd2d212628d04b5925d8fa4241fda509a564bbb60c8d403f1b656a36d4ff5db9bed1451cca504da39655f3d4a173e3f5d848d702abc36d2d7ec23561983096ecaf646603061810f54f62fb0b164a47ed6c42d5695c0e8a5d1af9d09fbca17fa4cceda030b6f56eb76b4e8492d10ccd79ac1eda3dbd891659f424d14197e8ea8904aac9c2b4e439dc4a73164fe93eb61c00e3f29005a967bf444c2008ed4f4507ffc556828c62e52b010d82793184c69b9cf552418cf157d580e9f449b869b8cd9e6f81e28abef510b2175d4db79513defa988a082bd58a0d4315e2a33aba19ea19116cd36aba03aae0c57fe5e3a67be2db455533655bb1490d3946aad544f79c7d6ab1d97aa9de5764161006bbda1bc7f8c43a988fb2adc48326b4a877f2cde907340fb19f03067eb3d538b41fa3d651423437341b66d452d024f5ce05a1e496a35064e4ef4f7a9ec7d2b99f7f8253dabe765b4d129e1407aff97e0f0dd324ba8318adb55c7830b52e3f9f1fe21563f2c3090490a2921f94797c4f9b9214ea52b19c5aff7f2f1d8d547a1c0e50cb284d2c1c9298123d57c07784d6dfbe537a6500c94780ba80711065349bbed3815aa6b75ce194f48ce7bde978905caf5735bec33eede63a161c48d6dfca48fb93cb4bc10b451433a7f62a17cdb684afe22d9805eb6d57fa90a8f6d02d510a09b9203a82a6bd12549241647d4dfbf015f3c83b82a4630c36ba09b5038ecb8294a3eb6b808e2a66664951e8d3fadac8649cc59bf321ba512b7eba10e08ebbaf6fe3ba889e92b99434406875cda1870c34a6ef55dc74d219b87958b29b4033e63835c2cc4a1334fc50e53f4945cb46ad276d761007e09d841d5df839dfaa3cc00db3ddca1f3fcfba439db74b1a9976731f3fce21c30825cfe1ef35b6ea6d50f10e7609c39a899e06c3ec5c9c5089dbb43ee6b8d8b2922099b02232a623728fec2a0541e6a7d632a48f44dd8c0a36d4585f53252693588c97896344520c6e0a61687cd0e1dc9e7baa705170106da8216230e51ccff68acef9f86d83409e2d1d9fc366ff2d7cf87c7300624fec42f1363f5a4ec020ffd9294a743abe427200c62d74dc8e6431d4e6effd8e908a9ff7d784ec4d718adb0271b4245c5904003148915d787abf347e2ae527b58cfe26c232f56989cdd3990a65244f37ea493b4d866ab3af89cb9b32a7377569c266ebe1eb082b2fd13f36fcedafa52f3ca45f56d2028842356ed541782d36cb227c609452b3b2db9ce4fe2ef06ebd4a1b6b21534d9516f5901056fa3d4135b64106dbdf3b5692f20cad13ff6d8d553e8b246e09295b3791c0764f0de03238c52ae29fa2819dc04ec0c4ff558c8f1cbffa0ccba955b66dc245e92f98e92e29a9f7becf5b099d7652cf827e379efbda8edfc48b89b6712d593249ec8923e0364f2dfac4740ddbf33dccfff7c37937f47273b521deb00ac1b4f4787ce06d1dd75cf7a8bb025c7684aa9b52a31fbb20061ad667696940d217b79832962116a45c1a8671d1b6b6f7748b1180aba2d52576d0ac5d2b78cc3bae89c35079571dbab7909c6896363e9c5d7beb0b6ffe3edef27f1ec5f4b6647fac179b52ce616253f8f617109f391f369e4ede28908f93a3acf0dc020a1b43c2966c633b76b8c225ae25bfe90ca85f813c064b6d842814f5ba8e68dd460ec6738b55bf57c148fbbe739587d1efb5b750c9ada2c857ed91fe8f30fe0a8ddb628f509d19df03ce0fcf2cd40b14a5411c74f53be408f15467cb1e5f5fe22c204d18147f166a0b1c3e61e8372a2f4d673ef557e532e5dc0c22d40369f6516d536137e0342473d62968087bd2fe7decf536105de6da88d00878f7801cae0417c663c5f2558b77f11fca2b71762a440f8acb71b834878ebd641a0f11df5b259fee55795d74b88d792815d687c5bdee4e62b8278a6faac329a3a292f575d30e695d64b279ece01cdf55ee3c6c8309bebdcc3b51cc1ea176543f1687af52fb1742e7cb7dae190e12a6ba75bb5938ef03c53d11ad4b643ffd45dcdc125c996efa3693131331c5d1e79f2c60895e7df554bf3217f1a25d94f654aef7a0edaf39e728c1b73f93fe1c780acf1ac8cab2ac5e9ee08f146aed81180ef43dcc19483f2c68f3d7336a864c3a032e969d8160653bc16776e00b202d296978aa93a0745b993977c37687185c82f2bc3e5a992d4c96f3eff02286a0f924c962b984c875deca2641aca3d3a2cf0a20ba37a1a078db7d5f", 0x1000}, {&(0x7f00000013c0)="18c1d709af8f1ba4b9503ab6cec6fcf9cbeb7e7317e144515f3fda1f99adc948b72973b051f25f0a48fa7bdfcdff6c79db7fe726a496c079eeed1e8e10c5d3e85d143f833b9b76f45643ea7227fd9f5308655138976be372a236c4cccef8df4008bf99b9b47bdfeb8c05951a7c9279bf360fb4b954639793a2f80205317430708e1cd040e6dd0a52087d43e90b24b2c3083eb06357b701f09705c0d82047f8558d7126ad089e73c6b8a6b4b77ae1a22681cd28f8d0d119ecf2d9324cd5c8741439b6f3d0631723512bea3eac4988da0235ca78ee7264371d29", 0xd9}], 0x4, 0xfffffff8, 0x4f, 0xc) ftruncate(r3, 0x200002) sendfile(r0, r3, 0x0, 0x80001d00c0d0) 16:42:11 executing program 5: perf_event_open(&(0x7f0000000880)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = socket$packet(0x11, 0x2, 0x300) setsockopt$packet_fanout(r0, 0x107, 0x12, &(0x7f0000000000)={0x0, 0x6}, 0x4) setsockopt$packet_fanout_data(r0, 0x107, 0x16, &(0x7f0000000100)={0x2, &(0x7f00000001c0)=[{0x28, 0x0, 0x40, 0xf7fff034}, {0x6}]}, 0x8) getsockopt$packet_buf(0xffffffffffffffff, 0x107, 0x0, 0x0, 0x0) ioctl$sock_FIOGETOWN(r0, 0x8903, 0x0) r1 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r1, 0x6, 0x80000000000002, &(0x7f00000005c0)=0x169, 0x4) bind$inet(r1, &(0x7f0000deb000)={0x2, 0x4e23, @multicast1}, 0x10) r2 = socket$inet_tcp(0x2, 0x1, 0x0) sendto$inet(r2, &(0x7f0000000900)="fad5e7dcac4368b4a90982f341c6ec0c8da9d5ca5bd690652ad6333ee16588daed7e2ec711e589ac3f9640c2dad78c7e0ea1a48bec87c0237f309974af9e5769cca4f021f7b0c9c219c8d91eaa2b66b44975b995797540972fc331b78f9680b0e157bd5b4bc2213cf8ffb737e80a28996b426592511aa81dbdabdba7c437ad38020bc993813c1c49f4ccfeb887f91373b796a6468fccee7c387d5ad6c456d198f479b35d246607b3bc382e18b53f2ad5aa638064ac396aa2501e0020c7a535ec482872f1764a5d299c2f55215d8befd841d7144b56aa69ff4789329a2ce834341b4c8ce2f7fdfa5d5826066d36f88060867c9a6e6909751ade9ab4047429fc96edc81eaa204ba91bbf5360344d2b73a887fba7eb7dd26b84622af89a9e8f8ea5ef6cf74d91eb489c0702fae1039576673627ac73c048d299e196dad1357c875719e222c5821f029113b2892a932c80294cc73c525921d6219fe2aa631ba6c003f800e7667ca6e1f1cc1f31ae1a26c9277c65243fc449be014a15f3aa706be600b8b5a4b19d099d77b0581240f8e5f2611b0550d2696c38744377a930441b645a67af3200092f6064dd11bc5c73b80ae994f9428143297f85b6cf3856bf4145339d905235b7f042a1aa2d3f4e6d4bf494f81f715b82a7e8791fb24daf4ac06cfd79f88c6083a6b707a456fcf36e4424bedf6162130366d465a04a75bfa5621ec3a2c0e1c61cdae94700392306fdf380b622c4c05c04897e1527d269849d4c35a43c4cfd0c9a85598c89dcfeebd60c22595485bbfb35eebce5630c3c624375d57ce96573ff4d47f1f63e6822dca7d622eec8e49bea213e2319809e52d48576b07bff34a4e896c1d6802b22d5ec2a08b34daccdcb423d0c0b0bc8005d1313a201b6a5aa2d36244df6fe978bd7cd82fceaf4a15c4190385d2d1da849cdc1de4f4fbf060c264883332e523c1c95535babcfaed02144ab7549c690270fc84bf3f368eb4151558d43656678856e072060e7dab0750322a4505f0dff4c86d404861b83f79fc2b2f2979ef1dc461d6ad4a85d3324941f3f1b2c7123f084fe2cc04940dc183793bf87790b1a919ecf632bffd038c82722258d00877d3a65005aebac32dfc9df95b537a661b21b457cf4c6108c25767b519753b70484a016bb772ad30a403da6e068b3f92f4c140c6979725bc4d55cf883d3dd09c362d091f36c9605a46c0fb7e78ebc36ca5ae36ce0d2a000f91f3877a62022bb014539ab23bc747cb9aea3baa31a5c2e85a9130dc3e160a88a0937de521eee7ef6e6d894725c0c490a5303d7c321c4b03bef40cf317460ee5f799c87425f806a5a55ce34e780b1f91baec8afb788c052563b93af59bee272bd1ae451669019d70266b18d7819788c46e792661ab5c0adeed7be585fc6cdea797d9ffcf0951c5ed0123453ef4eaff00db89bd3c620484a8cd50001405ba079532971127a1403b1f991d161d625226c4504d6597a58dc7d42282867a54fc836a0c7d7e850f038df8edbd1cd932c3e867d8a9e6f08b11af96f0b28f612afe56ef7c9209f09f36c19cd94ed5f81291fd47987771cda4af0b8f30a6309b5f96989865a8fd477439345b5e081b6d56570ec369d5b8474b3baa7148ecf15a90e93809e120228769f504bea6b0c1f4a2524d57e06f29c52516b3570ed2540b74e03e36cf81ce872ae4303d3546fdf2206fad69fdb78d02b2bf54141da80f10ad4abbaad695a957afac5cd5e6203930c6cd1857374c08f7e9cb466cd00fe3c65469b74763a89efa8aaee1ddb0b7f082521a51d3a3883ab2338184f8d224f51e943a95abfbb89bd18729592111dfd10c98c4f93e13e6bc2670758681771164068f7850947f579da7c1ea93c8b4275ae3caad6e3b99767999b4387d6d06b22ef3867d59cbaa11ebeae23de8c1d5f8f2723d2f8254b1000b35e916d78345e32bcc2ac29ef0d42af9a42674a78352d706364a0a59c694f3a2489afeaf5f7d025fdaa9c75fd11ac19ac1cc86bbe2bb4a48b8cd3e29ec1dcb9e39129987f98ff777699bd80e9abdaff76702f5b2e98407e18ad4d54a84f7baf03762ee40d5db7c150b2c206f3f5d7521ef14ee6f7877a86a4ae7f5064695024feb0d7294b777170c6756c155c8fab5212ae6d1bab4da69570997290a5c77a114d106c5a290c1cdbb17c860f0596d6bfc50ba3a273a45b5636d29b3dc508886b4045d9c4eccda4cc57ceacff0caec690d15280df5acec8ff8f59e083cbf1da5c938f3ccc9713499ad57509954f615893572eb7a158e805bf123ee757e2555674e4def76e6b621e61d083c34b4b4fbc227bc86143670906bf09e1e4196ef4e39b29f31ee58ca15d9515b32cd7466441388a14c28e79d1c99eb82ae823f287b01c215e37c2daca54abb63a7242d967e17cc3d6fe436614855ef8a0b991fa7023f7d9c060e74f38fb4a341217d7da02df4f27470a7399edde6d97b522ae3c91515bc7d2abf5fa8556902fb24100ef776b799a9e002214b68491baec9a4294628247a56419a38b9873e64cbf9d55fc9ee46284fb536f2e7d7bfbfdb7775daee00ea7ebf100e5e44e254d610b7d56ea2f631de53b0ba6234ed138d8c3a03272816e560e6e07e7ac5acd0564d6f455f9067bc9043e7d59a7a39351c0f61a26cf88e404b79047072f7a3756a955e841179dde138c5674897f88602e2b5dd2572d8aba7e898220ca5ad92046280066ee61646dbd17479c5b70cf160cd1c0891091ddcbdad3cd9c985fe4f4b9d620ff85de93a56ecb443cc3df3a5a7ccf8932988eea6895da55447677c5464121a5c9a99f3c1fbe3a400bd81d7ca85faed5b8b3402a3c03d9d631006b6a13dc17342a20c0e9aafe778f3d6a21af29e21d0395dfc1cc314e0bc3367fba142dfa2b776d83ee6f61f8b8d4bf483bcc178c94991345a5774de7d9b3e061cde53fccadbfbe6a5386332d9839d7f86c5ed4c9fbe05be2bf3b5362cebc65561e95be98ad45d9fcc11dd380047c89b33452f03d9fd7669a1d7317c9da7099a665c37e44ce460520bda648aa105a33bbab8ad16e284492ad4a9f081f59651b60572354b7fdd85cdf05f41a8cd10a617a9823d8b0a0098332e03bc0014c5313346fba69eb81da56d971ea7123098a6ff48164a306f7be78e1da34088a4dc2b3a725fd9c2aff93d57ee74a0ce35d3c98ab7f7e85502305be389d82d749b2592698797a12be12dbacfe178162c7189b65abd13408cc0700571ca77005cb5cae511834765be01c8f466f47a348f42509069d934073269be40967f412673ab918bc0e8036164c9eab71ed4884c7752fe326794fac53d681d06dfafba4e1fb00442fd27dc3ef047c3ce04b592bb4ed00cedf790da226798548886d5f446578e51e1f154ca8393cfc3c2c623801d59cc42ee0c724e1bf7bfc45a4b400cb4e349b113f1709d0d7327aa69b7dddaebdee5a650c3eaf285c2d7b9d0acf60744b29fad9f20ed566293d86945e7c385b05c540c9acbad7020c2ae29c01256156ee28b451919e6fb9ba4c5bdf00907fb84894e1c14c3230852bc787d2ea0308a2c996657e06f384a0c4ae508af3209c0a3fee904eb497679086e37f9ceb3ddce35c3595b433c48fc5eddfed068535b04ddfd110997231528ef22b694f27d459af392349697f7e63da8294cc648da8a414d0a17bc4f1d98b2996c421575eb1178587a14c61e391e363886b0babf02ee4a6a3598a3daf5082a7a50c07111ca2178a79c0b1374e9a8d3b9d51f1f2cc76dcc03d1d4da4665ae16434cdd60f82d1da86e9ae4fa590aead64ad6d3abab0f73a34f9e66d7209ac76de9ad312d6885ab831108babc0bc2ad36ec10973549accec34f550a5848c2661c5a3c814ec2f7bf05024e036d970127d5547da71e7bcbeccaa00ff83e70c3d294028e391ee8d4a3088d7a2fafc22a456843d289fe4b1f0f8222f9ba1c7f89f165d5064b7d3bcd45b5d0c8c41a3832351d17c08bed5755d274d0666c004a9b52832cce49d65e8606ab9d82c93c340982eeeb9f2be3fcd0f1f6692975fe215fffce82aa5998b9d2a2b7b5d82faa25d6b549de8a8a0ce5676327a4d9f3cb10cb5c6eb2f8f6c62c8989ee971ff08dc55e3c7dd87c29b4d806445607f9fc9b7d4e2da00623836fa5ac08944fbf6360ab3e791f7b0d37847fdca55a2fb1892761edf5a013a2e3da8b5ab9c1c2ff92b9d45866f65e2160ff221e2856d1e10598a39c9cdfae84652fbc2f91052acda6ec49ad8cf9b01a005404e677dc5ece90f16a195f43dd04320159cbd8a1ade9c10c2ff160e0172a28a2c6b6bf8ee763207073ad2cdb2b2b8c6aab31164434b2a7593d6ce053f9ad6f91650f42f61224c56ee5e5b265dfb5ea5bffbd7b31676bbb852a2186ee37e28c49df66718b24eb9ede0f6711e5ab641c4a942d5b2e9fcf81565d59aa0c1967b308dab39356b6aeed1ae39c4fcdb8167458c0c325a8fafe25470769b7ab3cb1c96f29879e57dbb82987b0ea872b908f111c322d9137f83c909493537bc5d952e9dc3a3fed559e577bb28e33f1127bcd22ad7f81550dd43487a75080142e36c46da2ed699523f76ba37daedc72e1572e9272c95396dff2dcf48a825c7046a4cd9381e729fb94e70fa7fd51f7c3d0368d8b0871229ed66743c8e9fc54ef9a1aa0afed00dd7f284014c0f196f76f4a9d485781387239c097921f2c3320e408ebc250d6076a0455994f0af01ba3793a808afc32892404554415826c700dcb06d386c46627ec781b415f9a2c590cc5896c6101652e827f0f05548b50f844cf55b83552576993af7e1859ec00e05ebf7f0254e4fec61079741f7ac9155d28b9579e33f3dbae9347f61f570e6fd259fce469868827e520232bda94e46d9133c972cacc731ded3423fa616e2ab1e493220e7032eba3aedcf7a32dcdf19199437ddf9d05da0804e2b8f9d7d80fa862aceed7272d9a8a3c67583c33f7f978dbeb5a5b5d70e37a790da99ed9ef6871c8a00c867a282d493dffbe3b545a60432bcb074edd6e11fad5268cbe97f06b2ad7f1f4f34d0e7b3b37caaf4217d2ce954a0dfdcd6bfe4779af50d91ba1ad3ac2c8dff0928d40e20cf5987f2f23302b549da89d295490df012900f06313e506fc75cf51981b05882e22008e15f5025bca2db9fcdcb38503c82bde11566235c50f0e151ffa81349ffd988fd7e430cfa3196dc0a2b92c71f659fe19169b98e4e9aefb0f9e991d789ff38919d4af51caec2891694824d6f5c0679e66bb58077972f3c4a31964d6d717073b3852b3c9f2c4880b9e9f3b76233bc6574223ae420ae8e53dd90125e6115e9adb2a8bb3e7fd1f17021a581b88f09cb401cacf23e46d8faa536316fada7e8d15a81a45a1cb6a740bd54465d5d953f457791b455c82c01cee871cdd831c001b918c2a3450f31f97cbaafc202bc7aab15894ccee96adcb507d71bcef44ec0e6100cd3630cbe8a627bd1f3926955020d2d936e13d562edb2d8d4c6188c3b6df995023b7e767b6dcdf034155596c38cae2890ba128de3ab5f3f2b18d048a150b163c3a659ea8e88152082ff22e0bbcd20a97679ce571234bbfceccd70b333428a48f8e027e6ab12b4159bcc606621fe1eeb7dff125160eebf7353556e2a495d85aeeea0d65b0ac92ca7b489408c19a393e709aeab67b0db5f3a4d6cb0d91905b1201e6d0b643291b20361de7209f69d9ecfd3e13209b1af66cf170ff0ec1a2111871e434f6a9c8d8cb10ee2cd5d1b75d8c6a49cc14b70ff62c689ef752e608c4f7933460be731a846", 0x1000, 0x0, &(0x7f0000000080)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r1, 0x0, 0x5, 0x200007fd, &(0x7f0000000040)={0x2, 0x4e23, @local}, 0x10) r3 = accept$packet(r0, 0x0, &(0x7f00000000c0)) setsockopt$packet_int(r3, 0x107, 0x0, &(0x7f0000000140), 0x4) setsockopt$sock_int(r1, 0x1, 0x8, &(0x7f0000000100), 0x4) recvmsg(r1, &(0x7f0000000240)={0x0, 0x0, &(0x7f0000000180)=[{0x0}], 0x1, 0x0, 0x0, 0x3}, 0x100) write$binfmt_elf64(r1, &(0x7f0000000600)=ANY=[], 0xfc30) 16:42:11 executing program 0: r0 = perf_event_open(&(0x7f0000000180)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c0, 0x2002, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x837, 0x4, @perf_bp={0x0}, 0x5900, 0x0, 0x0, 0x6, 0x1, 0x0, 0xffff, 0x0, 0x8a}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$BTRFS_IOC_START_SYNC(0xffffffffffffffff, 0x80089418, &(0x7f0000000040)=0x0) ioctl$BTRFS_IOC_SUBVOL_CREATE_V2(0xffffffffffffffff, 0x50009418, &(0x7f0000000400)={{}, 0x0, 0x0, @inherit={0x88, &(0x7f00000034c0)=ANY=[@ANYBLOB="0100000000000000080000000000000040000000000000001a0700000000050000000000000000000a89f78b00002973508c62e27a47820400000000006ea7b6fa8297d70ec56ac000d20a0000040008000000000008010000000000cc070000000080800000000000000000040000001b00000005000000000000000600000005000000018000002010000000cb0000000000324baeeed1fdae4b018898751a3a619f8d2cb4d73c0947094bec75b3055dac80d4e62b8c6c6d426acf822ac0de980bf00d66df76e7a9ef35e6f19294602659e50831a59c067047b82703cac243de0b605c0d547c133867f7ae5510c43a7266dfcf2fc5b5296cb8fb9399273a963557586d4efddd66b72b2c99fb4a9ba0e466867dfab3d4439ecc057d764c4d977a768c9cba9f0802dde564ce4cfb0b852736c6519143f2016331d1809fec5c516f87f50a81b3e082024b62ca01f35b448bbf061ce2658c268153065923ef8ea635b5275c296b87301f533f79fb15b00c29fdb2b2e3d7fc6438eb749d95e35ac8009c30698e84ce60309239cf8339e873951298a9024b2029c5d1b517af78a01f8c229bfa06793a39d586a4d808cdf5491699109058455d076a929e13c752b5773c706f2714cba0ca588ab3c5c546d4bc7cc268bf6ca2b6e7be1704450f7c6069a65345bc8295"]}, @name="28ce59dfc7ae9009f994fd025a0444dfebfb7061a5948c4662e39f8256c579834959742b871c005de3473b0e280182715450c02515a2c5d21e772323fe1657d3642995ef8d01878b4dbe5ede9690d2d84ca15da1e7c84eddf9aca1da186d54a296939e223b6265d68dfe21f81723d7a621f6f7aa2c89463dfc1d69dd148f62656028fc982be8c7a2e3db7886e44b9cdb10817a47ca82dde2e49bf7ea9a1b46194a6cbeb18135d16ce9bada1b60428b6ca93555de1e2ddd207dc9c27a6619bcc41e286831a35bd48f43f25533121478d86e7d0de744bdb0d916809fb565f85374cbaf7f4cd1a93720f63f44d1c97a87d72473869397b2fb08cdf9387a7448e463888dd126e3d9f50c5bf051e04d25c63adec3f2c51a8817c39f219b27c45bbda09415e0bfac248567c9305a3c315b3dace9e38c4e74a6e2ee113d04664499ceb5eb09c96110b2519cda7eb60f3a232cbc8612aba66257dbc4331619aba1949219079ab50af9774d5458bc1c7b220753b97bc0bca415c7185b1b17cecc72971abe4f746f1de7709e5310836bb4c0b6032a126074aa144162817627e876bec17c0f1097ff0434ee10e224bc5be76c5045a10a390830760c83ad960bd6994c6041870ca5ffc5552fe110623a3db1f20fd82f3696af69f30aeb07c5e4059a2634f5ebcb2f1d6464cfbaa981d170b600b6d0cddcc6cff8b43d289dfe2fb889fc7cae3a2fb4236ad58247d77561b646d95745fb3ff7424accfea99ec6f082da6d7c70fe94b3ec470dc6221f8af3ebdcfc13411e0021005bae03fcc3fc63e4c9779233bb798d848187111c0eae93d43a9f17673c95cd3241d4b6c6f073a81ed65b11c8558be0f17354f360d458301874afe6737e1477eb5b9f85beaf38f73e73409b8b9c13efeb44c11524fca25625f6cdf5096f0f109a84bfad42bdcb33a669cb178a6754a74f02ab9bccb040d5067f06909ac9b16d38e7cd83cb098fc6967354c0f3dc34a85b4393dce310abb803edbd2406637e03502c4e9b6ddd2ecc17514155743958322eda52bbadcfe23d6be9e5c20f066d4576e7e642b19e4578bc0ad247d01b399b78512e86aa1257d84a19cc87e9577085924297b3a2c5a037dc1c5f951c6323a728e6a5a18dec901c2394eee655df7ba19a3005bda0399f2aa951d450870dcd7f6dd205e623f2034135ad43fe6a572f00211b348219ea08e60e4983847bf0c966f4161bc9c321e1c4896bfc214ba6187da50cfb6bb600f5f357ddcf6c870893f537977f25ed88e093346fcf7e487480a03e5feba3043539a7bc6a8f9caaf478d971aa3711491d3b8243e08df7d3107a004db259865f00c65980a71399aaa1546678325f1ad823c5ac42b87aa87a6e9df14d710aab37fe2879857685d7e255d7ed20389dedef7e609981d70844808699cddd431cb43c24f6cab329ab62d2209d6d4aabd6f725d65aa060285b18e8da5442ccee5eb133401d2e7296790e0ff5fd704ae77279c305ffdde9cf2c38c453f9d3111cf091a853d196b649c9e4d2210e9806ff00bf67210a0fe0a908a51e64d49d78220f2d832222bbca3129f1399a0b526af79d7b598e4bbf2ce7a0c87fbae70cb1c015c4688912639ef7e86d1fe05a05c5b2d31e8a41f4e1cf54f0118b872a9351e69a7ce9e9ebc45cab02023ac2020422c67108b2b2c90de25c82f7d83fc2ab1a4561fd01bdc659a5ba5bb830dfcd308e8717bf193fc117b81eca101b0420825405448d5e89360f872fa7da544d70526b8e46f1667272e0e5e0aabbb207024cee92acd42de8cf88dfe9657df9fc49baba452c838ed655172ea101b49cf114b5e84ef41c82af855fcb41c2def9211b2fbb80718df94d9c9983df56f1d2162f2a24a0711c8528ae63d79e618a913c809b0cd8ea3f678580ed41b15eac9ac719b2f1d8c058004cefa6a8b93fdbfb6cd497b91349aa209e9401aa4040f9c627db8c7cbd2ba2620ff25762a2b0f9a536f88ddd3e4c9a82f435ca7073572a6b9d33a4a4781f5807986556cdbe6fec2a2172a0aa6c5a69c2232056488bf2ba99d85665e1fee7a2a6b6c2350e241fe28250c455c03dfc65dc96786f0e5cbb51ab87bd9d9d158faab451d7413da5a6aaa45073ef019c79c52e9de921b28b65e08211b800ef1683bfcad71daaf22ffee53df5e89044c2a326d47b9b280f3fe92cd67aa45d5464e680e90608b43206c5c760dea98e5d62bc920ed020900a033fea587e98a1079ed5487b19853986725eb68a53ee376fa4260bea626bca1814c2575545662bfedef988acb23156e56688b84dfaef74cbd9b3149acc3b4d58dcfa5d096e034ea5c908461a6a85067b6e4640d7b0f707c441102475742ce3e80af6828f5b80c172af605a3388f43589d79562394b473b49c3dcf3f67fba758451e191a8f5539b91e40766bb2c1bbed2a2193d7ac6bff747adc3df1e566aa2484b8d989daf327bdcaeaf289cba3e063772bd268f926f01fb76f23b5e7bc950635a2a653d2fee646e3bf7c855456be51d7ea8f3ecc43f9794dae591219492481d40e36bf7190ba4aa32e46b2400c0ab1ec1d2fc17e1cb8061fe94a2f01b1c44dfa7c0b2dd9438c8d103304e8f3bbbedfa6b1a302e10bd8d9fddca1c7954f4b9eb4ab47e91bc549eff21702a62875e01ca5ff8e61b25aa61b0d8c2c0f636c3202c068e1abbf47f259ebfce16560194b70409e6d15f185707da1ba8365e954c24d70481499587bf10f78c9a5cefc7e0b47636e7e8842f2a52fe3814091bdc40e525632fc42cdcfe7d8c0caedb8e2704502ec6ff139be06555523cb458031bdea1aed979aa7053683eae25eb0f7aa04ba06db9bfe5c3084d661f8026cf81a352a45d04312d12b9b3e1a1a5e34ca5219feaa7abe61c20d60745ca5039df6afbfb2d1a2ca3c7d66f1404ec5418e2f7fe2a0bb72b9d9ebca3a1c94247487416d95197ed5b6678a6bc313f70639b0e671eb805669232259360a6f1c8c019b30e5a13d897ec9a18166b06a51de49f6d434ed08fe1fa899daa6837f8fc538657ab4b8e67b6fc66beae7b0454f00d3b7f520406e4b03609ce04137217c7a55da45fd21b1af18a7c4588ea6b453f4ac0cf4148f8b8eef01844a1eacc253cf56b93e59b7a110b5b9d6fa0d12a19c7ca11c81eb6a97b327d3f2a21364a02cb31d6b722a9928a57a934455473905d5d177ec57d798f0b8497e3702d00afe8ff20d54b6aae293fd6f7915448fc5494a1694402c377230c1ae15512bebaaf077d338aeab3604dbaa87a4dff5a9a9cc73cf7b0f2ae1953720414a352f91c905cb1b034363861a0735645c43a4eef1f7e77f270e42e55df8909ab81f50b16be2db6629efa8a316f1b6090f7705481c5152cc0886ff9794030573fe087dd55029b800375c102d596eed0c56581b7b60de12be1bfaa586bf7ac2988f87e9f79fc655284b02b9a6e48e68c70e9e7623cdc441bf8f4ede01abf16850bbbaa5546780b22096639243501e302a26ea901f589cc46ad20cd1b449d44710341b8944b33daf18a8a07fee2d6d582c098fa1ea15be8c19a482cb9b66096933e7a935dab7b6b78064ddc5aca9d670f05e178f7ec11a7759a7dc4134a62a076bddf1583724f53cdb6735fdf035c487049a582efbd383c132c0f1812b8b17b81a78ee9e0c0f0ef03f150b40e8dba014b7ebf14a5625a3f829cbfaed783010d2d152b87439b553ffe9dc2f18880fa3c8e3bd894afbff760d399af441b291b17c746ac18475cc68f65669ff36bf4a65b5dfb07b6f6f159efef98e56cbf2de04e1a6d632224597f50297355d683aa02e4088f019f3ad1b96cc9ed93184a5374ae78bf967c48092da50435ab0248f3f357021f23d1155cec96efc277a988f4c4e3de8c40181238ee851fcc04cb19a9ac5340d7c2ef34989f23e82c0adc0b05c6860c8b8f9c0e91b8228e1e3ea7ffd5d051210f83027ec9f1bab539d58e2553828c58274a8262c3114d9ce02d63608d5b6dfb142d80e6ad8c161dde7e9116887e8ec6af73c7b83abf046ee9e331c2a5420925b5ece25d711d4e0682b6ce2d9e983e992feeec14554a5a6057e8295c01c3d804be6973849730f7a843a08568ab8d141de44d974f5fc674935d8463a568e4c491154606b2e323038716584e0dbe67ab70014d01d3874e0b9f24cf1ece5fa03793dfa7b11243d7f6429958842b62330c8f89850cb5f8fe70cf68e71d49ba6ed53e702feafd0d1e5a658da4a47c88244a97e3a7002618f76c9965837a7f1ee394a8440df7cf1f191966df765d361056d5db3956626930fef1a89958a44b54eb53f7f573f1d9ead5d41a830b1fc2beeb555ddcbad949f6d413c41c73f9c42637852fc6d14b78ec9058fabdae49a8fdd1cd713dccc2cb19887da1a7e67d73ec5d004f5eaa92681423809eb6169de7223cd6479f494a8dd9dc9554535ea60ccb06a8447aa7e5d925fcbff4de1cfb74bfa13a95e3d3ede6d3ebfdad1ba37f88c4f4fe5dc3663d54879bdaa0a276971b56e4656b1fff27c6a3d227f5d7ca67dbc7bfb2292f15f3632dc7d0a85fd2a6a2d06dcd4dbf67ea4d6882d594048ae005259ec148671d35cbad59d2097fac024665d1361bea887647c49d84c005800f9923e382459e999ef28008e7057fd243a7606dfd010c6632504e6f438cbcb5fa0739f55e65ddd99033239dc8df3bb1a3f7c00263128d72bbfb078fd909c6855312b516ee7580adcf35358cc4d63cc6fbee890a15116fdfe3836671af25ff88c8f2545012a4332d015b6a3d71aaab84f2823a73698cdefbb8232137b19edd5e1572b7745de6caa2c7147e9492cf29e284651b575ed08efd0aa9eb7399a022427c89cf2c9c4ec364ba9b72ea09dc2cadb9070652baadd18a1f78138b09c384d4383c5d5f091b58015d98e3f1d8a9aca5f805740658e1171c2a48ae88272890882fa865a8728bb733eb827d5f2b19348af28c933abca596fe6d959221ec2f8de2516b2b29624c62f13a5a6ac8249a19538dcd00ce538393a06c25418ba80bd49ea0a3479801dca9be79752745b2dce441e15c3a4684e7eae98f8932936c30c658fa5d669541d342786fc91a61f566ae6b02db3700add11c81d4e82da126295ab6451ad11db35a1f66ae039d7fd88f9c5cbed848292b4cfa9697315a5be50a0350d0466e8d6b5f00d0d4a2f8f55234a9fc20d45d0dd13aa0a4ebbee89259af4223a6aa9ca08624a2da75f639436d564f6bea795b9d9eda1b862fd423f08cb1c2a921a56507a2195863f3339b932ac0da21bb5b7834a6a964a38f367479452c08bd3ec30b1c4bd389fdf550456e7d06448cfcee499f3e565fa419bf6e7a0d47bcb312b6809198800cd353f4306cc28fa625fda8509094824b89b8de2d92bdfb65802f558db3f7839886049aec113307de7b40701015e5c043940be1f8fdd9b767c54607fbfc8eec0520b53ce2059debdcc99f602e9db12c5cb9c034669e22fbe7bd0525bfb9464c6aba7454f015a6a6fb9d5da687ce1fc0c151b7fd72e00c95449663f8cea68f09258bc9bacf223a20bba6489149d2a0f8d1bccbdb32d1ff18bafd0fd6eb4b8252e870da204bac6895753e112fb5b2b2f604865ddc68e9696cdf175e3ec96d42d1071ce19911949b3735b52c5b18cf9480141087146a4d32081ef09473cfd61a714c2cb70eca00"}) ioctl$BTRFS_IOC_SUBVOL_CREATE_V2(0xffffffffffffffff, 0x50009418, &(0x7f0000000100)={{}, 0x0, 0xc, @inherit={0x60, &(0x7f0000001900)=ANY=[@ANYBLOB="00422abd98360c4070c1d65fc6e0928adc2e6de604ea9707774bf5e73357946e8eb92e13c1faa954aad1f8f169ee12ff0bac631ea5fbe2397fc3fc0f5ffa7296fff5234560c5baefb40b3ff47f250921de0d7d58d2b4a408bedaf8b62bea67c575afe30000000fbff6c313c5ff9c7acd29e4ebc2a12780e463c98271c31f3539c1"]}, @name="239e5b0607af6c528b30a5df32680b71d1355f38c6f4f79f0957303d708199d308846f308e4d6fa7e0db38010599f2ec32bd2ce873c8d6d50c51c915add9edeb9ba1101ba9e8b26f4ff46a7aca9c042b95ad4d912881506ade3e10f42c49f5ba39ebb191fe4bb84132274923f7459fcb4ab9f19f6dfecf556d4111bbdbb8866f32a69406607c0997914cbdcf71ee9c4cfc6c9893e965d677753ec047a7466f7fdd4a9f42b23d5e926ab528b230ae86a0b20bbc9e444f010e1e1a9c2b61a21b56e15865bef1ab2b2a3064cbfdaf4e61de54a61b20b6229bcc394d0521a0ad9e364b70769e22b6400fc4017a013e03fb4f5f15b91fdf5e4997884feb8e5084b94088b641bc33ad05a9065edfdfd7fb04d18d5a385ebb2538d8d2debe4af2f389bc15e0925ff8a08d07e441c70f5459b591f6d5b4695c6952cc864e3012f970ddf5e75a3a855585ab4b6415cb2d1efe15699d3528f381703c5880c6c82503bfb82b2fe3610415844fbf05f1d5d70f854b78f0f6b0bbb973259bb415f6bf842beb9af3dd43f8f688bd1f007fbdf6f43824d6e6dfa2b76d6eeb0f088eaccf3dc29d07de2e64cd884b27995ceb5b1df49c4b160e5dcb5603f073bb42bdcbb59104ecb596ec87355e4481fac6c2006984c40d0d8faccfe75a481ffa686bd6f96f07080eac62c1423ee52506b6181aa9e996cabceb921776b93201914ae56eb3003dbd7625f7f79759ae1b2f0e71a0599302f83544dcc4b2011e7662d55a2778de799ef61a2f754bcf6c998b0de65e1e67c8d6b9c4c74ae6207d22a4cc5e646281879335c1eacede0f3abdf665adadc7b4ea1842dfe8741d758b0dac9e4b04691dada43907f93b30a3eec3c78926a6fa8d0f318a608f1b28f90c245917352e4558a95854fc60263f08291a0677ec16fc5876171e5720c6b7c1cc5dc971ca956bd0e223bf78f6fa4ca020de3a037209766b41ee33b52bbf8c4ed8b606d76cdf8766e9578501bfeecaa1bc32a5e38ce0c3fb31cf366f888cf5332d99ef3cd87edc210b3340b324b3306363dfb147263a47e80c53057a44f6aba7155d9a447660c2f05916a7078bd4c9b318c56b4673989f6187de7082e2953be65bbc3a4aab9d02fbaf58d98eaa9bb55d2c48a6c7a158d7c64058f29d36502b6d6a38d3d91207fecb05fe21293a666d9c618ce6a64660a3667dd7f34a7a0aad3c59d14546503cfe4c6e2ba1f920a4a8cb7a34140b7e2bdb64217e31934057f756dbc695a5477098ed17cb476bf2ef14c88614089bde44839f0e3a4f2ab0ca82a85bf5a154a7ff106d366cfe7892a51b3c6c17c1de3cf7b469e54bc1f5a1e97cbcdc785f00cc980d36246d1d171730d5119e98bbf7ac44ef0db262477bb17aa83dc757e6bbda4b65eee7cbc313b281827df04d9a6ff9cf721446e2191f55dc219e4e73e73ff3f5780a86133234de127ef6cfafb986a093545f3b6f2405d3e1d8ba27d40828122929a34e3c745c0917f37f685683fd4b1421c609bce8865e91f5fd7d26b0129d9bc7decf4e04555f798f119371eeebf4bbf19496c2eab441b0209f9ef2d7cc15f961e024f4fdeb4212645c5789e0b7e7aad00044a36f7ebdd3a5c641dd0a6e32f6095403179961088c2664ef67d37c0365d860c3d0900eb6d90f91eb2be067ff41c60a3244fb3af88ed9bd65515a4f016fb4fa86794be7edb01ba74a18b60de3a614620d1f53ba31d18d6a7fa30185a6c6251c68aecdac333f2ae135f7aff025f29d9865075ea8a1f183d158cdcfd3d2d7a4db060522e4d969424edababe6405659f5438055a0f1aa17c417d89775a496a61baf8bac95ef46b6057add586266528fa3eb6c071e3f39d8394edcdb79409d5255a7385abfde8ff4b211957925c7b27362df9496f0c398ef559dd2e6dd64de483d332d4c8494b0a21a46e2eb5654bb6ab4aaa3dca75890b6438650a394b64b45be8be9476df807df8bf1991d38c54e9a67f581e3219197230d20fe8a4abc709bd49adf5b5d0b134fa919cc340e6840231dd5fe5faca752375701ed2d227c7a2a744e2268f7545a6ca328fab98ab8cffbb222527726c8c967b95dc5e233438be0b36e03fb2931128276831154848f63fb33de8af1ac09b4707b0f53e928d34a891abd2b5310f722499dfc7fa2176d3e344db48057eb58af5a6ae669c99fb5cb9ce84a0f9fbfbf9965e58b9dc8a43f356a0852716d1e08fc97cfeef68cc336a5535ada0fe3b235e9cda4aecd48991df6ec40c2536995e7e6a7c3b6eb3c78c2bed3b7c0f1368c5e95b2d44ccc56e61ccc5ef09e76509a75bca00f05328b455f9a015e7bacf429d5761c58c0c6d324b748e58aa2433f180f674fd61169c8e1fa076b0af3c41a591ab0f70aef9bffa41468fe88c98b14a144940468d028bae34a27597c7a049993b7b95c21463f59ee7212983cc38df11d188a90222bb6f637f565c0000c695a6303f325dbd72e6cd562a42130e4e7aa0bb20388c17cf05924baecea0770d78bed099abd9f3dcd6a591cffbb3c4f0cef0299d4be1fe30214923e687ddca5494ec6c65a59df1c71caa7ca1701bdca3f3b32ccd8600defcbb62310918730934f4c30420b9aab1f69f58f22607ed9bb4ffa6dd14e16e3318bba85b68844acb12481b73c7c0b857f62c18ccf1ca4274826a238366659caacd431fb7cb2e7fe8c4b1c3fd12bc22aec6da4f1a7ef4decca72bb2363adbf5b359c4013c2199e9cb2fd031d97f419616b9a8f80946d7a3aaf9ac4ede20a0684ddc66964726c9631b6160fa961e6ae4b5bcb8f1faeb4ec042056abe2246dfce271e9c40039c7c114161aebe924f80691bb38ffcb768fcdc591ff8afbfa270046ca517919560e78cc003034a51f01ac929da10eb164edfacff5c074333f30f1cf7c5aefd6d34763f96eb804435cf687e70aac9cdd623a2a903f2c6017902e13b794feb50e23aaca6fc1c5687c555f5ef32f344045870bc565cb84fb55f4c2869a0ef882c8d9bb7b3c050e50e1801adc0352d3a327b3eac5f93d090fea5686e6f1ef38f277485bf4fe26d7e661d19c5be56875786130e6cb4a6fe969152c68ebb1116930dba70b3a17fcae34e10d31526e287e255e0abe6a60f02c82eaf43fb7d04ca803424f78254b3bd627137394de435124bc8630c16d34b816a0856601f5a38dd710eea9b01357b11470716830c6bdb9450e8b591f4273575522fb5064ce27fb841ae9c2e19ab199ac48a5acf121ffd2b9f58d724497424714e17939236a8ccb589458e8ce5a64c48f543bec8b6237fed63961e96b7437776fc52ccdfd18a39e00d48233324a26f9998f641ab5f9eae5f1d417b254dbaf477bc12a7fde10dbf378590b227113463d5761f4e0a261b4676951afb884f7ca48f400fac64e3acf157775e18021c77b327bdfd644a065f363b9d0bc9e4a19cf3d620aa33a41aa3ba12e989902b8275e89bc29bb20b713fb1b16f8633c25d4e567e71c163f241483e9d2f3ebe65f5b2b9581d3bf670fc527331e24c25ee39f6d71de0e5d89dd6f8b179320393918cfe98fc44681a1282cd21122d8c8cde79cddda7c37e42f179bfc59f968d0a4f7bc05605a62baef69d629b28b14bf574d2c3a5c5e8a3aafa3860fc64c2e77fa18765d6856ce436fd77eb6485a68430dc4d27abb60718899e97de411c2e67329ba7f9a426348fa14d49ed3dc9dcc5b120107dc168485899b1afcb43c5f1b2a263b10dbef8c10e03c1c70be7cf239cde92d311906b18aa125e261ee0f474034f72c8e56724d376de14e25357bb244e81baab1f697a2936ff45857faf218b8046758b9eb84a5ee6ff29934c96ff1641fa4c82de2e385021e7da75112f3addfc21eb761e9f3b8c89c210b3767678d0aa7d6bc489824a56c2a464df1b46035956d2e53e1c635584fdfe9d5c2c7f09ff4512ff4533fd2e8e972ea8ce94e3b420e7fc4080f998c1f5d45157175b46a7f47638f1f58ac21f34566fa973a22d1b5cd54277c88580073720ddf7df6d72472c25f39575d2e6408dc2455558afc9d693911f3112c838f3be1d9b950a72739205e3f927c2dd6ff755ea95ed2fc9a57f7779f3cacc291886f2a227acd1adf7e31ec8d6ebd7d57f0d1054a1396a94c17114b128c438205986aed773c981a60c448a929a07b6405b6476a055b09f1b3464034881a65d1bb801706ae15ee334dfcc6306a594308015755c05e3e13653841c8fc9680b80e6b3a5579f2c0ef5bc88c554d98571681aaee04a38eea5bda5cdeed7e8ac99e277b13f47ba0daac41656e40f233b738131f38400b7a21940163f69928f7194742ecebfc940a29fe87f45533a54aa5a8ed677098259c792a056f976e6b3dc2ea3afe2e05a2ac66cfce7d30f6781c47b6e9fa361ec0fbdb3f090e6a44bbfb680940dcf2aa8a7d5c8237ac2f6621f7098ffef6ffc71000f1555cf110920103274e819e3162304e03350caf156cb6cedc68d71ee00299c9d5f0ccd12b9ca9d6a5e50ad5bebf146521825ce1967f5458e75ebe4d7619e38760aa7c3c33aabbd2e41015b6790f318ed9e9ddde4112ab56891231f8301590a1b912a27f9d07f056957a2ef78d68460c7abed1d22a7b86e5b3c1c1151cc4f6afe522cd6b0fdc8a44c4e56cf3f8156294dd0f91460f23c58a358b94bf1da7646ff932a7337e2655598c6123a7b516affe03566d71655ab8cdcf372a2661fe1b11a18b118b9234f5c4020792e12049244697b0817cfc920631ea0b826f938a3ff8fa68843ea2d653a660298d1f5275febad19e0709ae6ea5dbffcb3913b5dc1d750a35c072ee2de5f5ff09297b165d0c35827719b770680580228feab38176c92ad54d57de64d2b0de4b64b0e78262006947ccd7f153edfbe33df3136eee8ae379cabc7efa5acf91477a03e24d8957f3ace807d1a56c81da4e4f01f7052bd7a89051d67425d5c8a1e7f34ba3ba576a481b7ed3f210b179956f1412d21fc882b259a313fae8f3759e132945c769700a3c23380f9391a3b8f62ab038eb234b622acd9ecec2e79643bbdff0073724c624458a5e3c709409be90beac94627afd8564ee11788eaf4a61e13985dd92648bdbf0dbf10d43add0efdd5cda83b270f5d3d81ea2620d605a6b2cdfc0018696640f3b0aa53bcdf27f950a0ade8348b56f5df0104ee301fd92d765bf2332a8151049d64773923a25a693688b9eec709a033be9855f87d6b115db95c87a5d7e08b934233ffaa3ba98c4ecfef895256ef6f6435deb9850db32460fe963ec7ed0061979084ffbf2589e607cc69ad7690ae204a968f4f234f8e2376d95018cc09038675c15bbc56e7589828c978e40da5a93cce1241e0c4ba51dbd5b503b441ee880deece7e3dbf005816847ce8571e7933d8363919cddb43bc73c6f8bea4ac5ef54327ce104a76cad13fa319a44f221ff773a66d60e9d00bc1d9bfa053628cb9bffe34381ef9cf34ab92ad147a50b56f2bf29728bd60ece68537a6b34a2324787aa966868b51e43a81c941ff5526b64b0a43dc87f244d4c7f4c18c4fe967c022b0ddc1f5c0376bc6477484ba524e64d690a132b6b87d2951ddc5aac576a8321dd90e337828135e0f4d3532c1d8fc3fccd1192e92d1d987ed26d7f28836f222244b16cf4fe3f89af5a89a0ebebd92f158285e236ee1275cc7546cc4662c593f0d4114f10deeb6c1bfc795a4cfdb791778421bf3086faf92d3cea6c335ad"}) ioctl$BTRFS_IOC_SUBVOL_CREATE_V2(0xffffffffffffffff, 0x50009418, &(0x7f0000000680)={{}, 0x0, 0x0, @unused=[0x101, 0x2, 0x83d, 0x8], @name="a285fffa9b658978f0b16e26ed642320a85f983a0132d36ef69dfd1a6dd0659ad752ff8458b9e40abc5d62affca8ec4a5215d9ce3342932bc9ca461ad94568a8274b0392dcb0a4b71bd8b0d8846d83f39a3b4e14d096f97abc794f2b3a82e599701bfc1ba44a6136358df20672778e5f208e54d99f797311c55585ecc3448a6343669bbd3d757b097ae3345652ab85f2dbe07c5be824ced1a1e7fda4046fda3b1cb176a61904a8ef1b1c1ede95cc398dd04ecc2bf2c0c5533f0ac891ecccf9aaf1aacd72df4e0ac968544d51713db368c597d4cfbefd8c813d741a7ee443a28a8fa64de1904d43d6682531221a31601e81636998c8b568afd594192f68daad78257ffe239400a2f8493462fa57db5fe87a83ca2105977172f87267bf9c2e0416870f4b49c160a8dd73642dc8555c17fa5478a69b6dc4f365629a5ebccd55a48419dd4c29b31fb8eb9745d249f71e06281b2286ded5ea61ba27ba4552143156930214fe785c738e95866a32367fc88c2a44c4d69501d27ebf303c8eafc80964a2376a08c520b2074ae257c61f654dc3afeb4fd1b5a838de1960f442821df0f18e7dbcf7afc88667c748c54c85e63db1b072c0ab1698a05d93bf024082df657cf5e5179b88c943382f54af5bf51346bba2fcf22e2c523c021782e3ba8f71ed7acdb855136f664049706a63b23a833ad83794987596907356ad500d38227442b0b325e9fb2e0fda32c0c175b0a2c4b73f130731e8004e1f9fb9c7a9bc1969a8fd3a62194fdd27b8a1bb540c50db94b63f363dbe861f30a7a1eaccfaf303e85bac9b1855f3a3faaa733544ab0e97c92d7b79935259588652ea0fb77b17dc722c02a8ae1b1c21445f62526c95e133b73852fef39b4e00aa2fe1843284849f06e562637c43482f4fe6dd3a1d92eb8b57b554b7b711383c08b4ddd0142971a065cdf5ebfaefe1ad664deffaf210ccc7f0a0e48ccacbd0c846c201234198f08707ccd722cc6edc5060fad69220b209b3fa6ec49c833af13b023c55fd85d99b1f399ea9ff0998b06ba1cd457dfab73a0d3bf7df55ad34b1fb933512ea576808b6aa5e75f4e80b3f8f9b396372ca6eeccdeeadd08101f115edeed52d71ca89069d6fbd6231bed4a4c74e59e8080e15fb2e571c11c2d237e90ddab43ade306f8b341f3740cfdc8b9f176d747e090ffe1c0e3549792dfe81eebc58635a48c95edb767277a5a1f89176ed59284a334419766fb8d2147d2c783c22b8b5d25bc4d4547d61bc4ed90e3ee51060520c55e9604ddafb1ee0b6dc23dfb6f3424b40d57b4fb9e0fc396d94033beb5bc0a07516e77269bf6bf6110d81ceb797c80816b53763e1f84634e7a1c9442c3bd457888d73ce704f94f61ce6a204de23dfba07cfaf61d2bd5f10fc068b0012ed098637554bf9016dfc4d954eda4d59a480e7a6723d3a57fd2d855c11a5e47982fbfd5bb0a4edeff45b0ee8b59421d82ff8cc23740bf1cb326ba3b6999d7ade3026048121267e1ae32a5f5e24ec00f60451716aebc8a56d1bd1e9c918e5a74f4e2424a442e2aa0e6ff76ed4675222308bc421ce1647209151e6fc9f17f9affd968a231bbd7a009f2eb18aacd3e191c40cf9e212dd0133df18b60c77977c5664da5a71266815b0e934a1f28b97945e16b8013dd94fdd643535a7b9f80cd0c6d960677790ebe31319e65c75cdc0ed5bc23e45d058f12dc4e596c213a42c2aa21216fa1a74ac966a1b194a452782efc9ef5c1d598a0c1113d555b2f8735f2fd154c40119d79abb3ab9871116c70e3ec708c6cbda9b60c6ec5ece62e748843087b4a7947bd9b73e052af8e1b95028e26d2a3b831e3ef3a12cf5bbcc7ddb5792e582d2068aedd57ebeec39f70726f08ad87c1a8624895bbd46b7b88d2a68f6d557a2c44acf6c2126d5e064fa2797fec9e13b84600f7c0d4a99546ce4ec57dfa7e1bd6aee36ec3d02150f3f2167fe912ce79ed2c3fceea5c4176f5c90e3488177a9e01ef401f027d82f8afb2978dfaf818a30181438a196f34acf207471cf1737accc8a360b4cd86bec997faed5b879fa8d1f3cbaaf41eec65a85908cfe6e5e36dbb5ea89791572679d7db7ab3f3f1d694c5bc8e855df490114ccd76724536668002a41697242ea59eb0ef43669d4963ee5c5961041ef53e9741bb5c17faaca492a23c86741f082d230abc9c574f5c952e71f7cafaa30111a20fd702cc95b196c0ea9fe930bacb1c2117b89b1e8647d5c7008618d0d5a9c36507c4b49f30eb2f09cc686a1bd79d454beb3b406227843442efc22abf041a95b7ed30dea57383ce242643681bbbf21fb398eb07bcda1eb017f11b53611abf72fce477ae2d8009b0b0b18c5d6451e1423dffb9abcef0835826ead328f5fedb8cc454b5be5f390c556d0d8553db97a844001b9c78e49d92139673790ac052294f8fc3d7f7c4eecb129f723aa5fd66cbbef6589371b39d14ff0fbe8aecc9b5616a547b533c422d7bc74ce27b5390fbef5f9ea486ecaf3bce8c47eb82c7f42c1204e8f21b6ae2e75a45c18462c0ea02cd266025b772b8e3f98260b696899bf331e47b8c66ddd6aa11f6c65fe19972457c77c353a47b6544b4ae25b6bc7571d18bec498672e822547934fb0340a7b65a815d6f0d78d6211024c7af86391603c1e40c0b38d169b4fa7a8caf9d5909e85a780ae8576b5c73a801baa0c7ee754c0af604df0f55a2e562433d18452174024e729b61c083e8208c88a7388269ee960a0db5bdb9888c525e6dd8d2432f701fb80148eada945827cf159a791553964bac7c51d946e9eb3e5298003f6d126c7984225a9083c5fe67adf1999c8cae7a74d7b31d35fc21a1b64ba49f8d119ddb0bdc32f462f42dfaca3d15846a5e73ceddaa6b13fc80abddf990af3949109ee37cb1a2d0ce80fcf8c66a870317c5400dc4f8ff32dec93e87699ed7674dbf6f2e2ae319bbbc56f72ad1c880a6bc72de76f766d58dc480da16b09bab44a0c9dd4399a0871a9d38d9d9756bb86781447444b6ab8918af1a5990c0ddb4c779dc1cad350bff0706c7c528a9019f990ea76853bcf96c2a0acf6a37e2253ec2a540a12f300717171c97aa74292d481a4d9e6df259ac01e793268523290bbb927390ec75c6335f59a0e8f9eab3e682b0c8947dee742a5dc9262ba939dbbb9d39c0bc7d7f423dbc2ffac44ea6b54d12bff14ab0837729072f3f0831e37e616eb24b28da12dc5629f10cefa7f0923993db8a503a93c9e758f74918b28d23c6828291ffa24f6685fe6b3f98f9906b8bb445bcc22b5f35a60132a49678b1d7818d1685526b4d7490b7e59b623ae2148e8de715d8ac38d38c5d6e270f9339484d9fcd8937d67f62d6c674324b7d89528f27f3202391d17fbba5601cb893bcb0dfb189fbe4155e5783d1f94e569d0274ba50158e0065a8a066f06a937da59bc2cb0855f8e030da9929612f8dbf4adf8ca6d3548951b622f0bbe350ad9f7fccc8a252331d8e36244cdaf970e51c0ca6334dd35b28bcb6f037aa3f6a827242bee53e73324e219e5638fc35462091882cd1dd663df1bf31c97a38428b2f40673409088a2af512ceb2d1f9c478efc2f052700718a734b517701cda1bd7aa857bfa4f0012661eb9c05a4bdb2043d1ed70da4c39610b97f585edebd2d7d7b2197437f3038bf3a2cf2e94e367f091c66a94e05fd91b29a323dce02527adfde1bd03e12dc91e0af8b3a3b8050670b062550a5d766dd1fa1bfcf6a429ddeab2f4ee19671a01b86103cf170e93229c63f109a15a2747d2d94f3bf1da5746b6b0b27cde06a15c21add4ed2e809bba12acc18a9877644361c4d8c75728417eb725b057d60b6b27eb842e66a54fc377d680897768f5387119d38781d2fccfc5f3989b3eaccd73f8154d374569ec0c26b1362247aafbc074c771d9b6754b5fa51640058ad96a5210a00b7ea2de61c0915f6f22d9b480514112c7c96305186ed3d157af64e6296e2ba99c48212addb36c33bcc0a4703fd0d1b0dafa9c9844749994467f7b274c95d97331b80574d81ba7f2c29c00c0398515b38d3e6352a5cdfa873fa9f84e0341ce8b66428d36a9365f28aaed89ada62ab194985b33477d9f6e0dc9c914d22e23f8f063e9be4c5d3a18391a5bfe7e84f2de4775233f1e4cb49465310a69bb88eba46e583bba89666b1f3c4212fd6ef2852f3337768116021ce92839bc54c3e0c4f410fafcaf36ca0f07e2e9713dd1288a932b1bb7b048150b78e7e3392d2429c4ea0b05c79ce03a70a1cf31ff38411187d41d935d9cee0a52fc9144a3c7e37db6c8cac0621a811e64c0c493ff405a56112575396d24d5df1db3e1fcfe92967d32a38430560f8751e35854b673ac1b29773186d248ff216277e2c6b63f1353556e44140f0c88f2d130a9dfc4e7f7a8091a0c1774e0e9ceff105e331202f334c9420f40b8affd16249f82636702aa5ace1a6a65c01b5a0d43835236c3305983fca63d27b3522b8d8348bfb1dfa739ff1e6784f488697fac382001effb33c03671888ec1fa4451c401b4a5262bab9f4a1b6206ce018c089aae9e190d1e0f26de8ccb933a2bfb1a492b088da98a8eb6a23a5ea6fe2cf7e3535097e9cae7c79a94fb3a32f43eeacecedb4797dcd8ecea874b61a7c34a31b9774771276271bedd3ee27da981f2708c1d89b4659952cf4c4f57c1288da387b942d29d2bf684fbc54bc58e0cb993a00274a946e4447b646797cefe4c870bc238fc5727d6f0ffe510798f218c7ebe17b2eb2d892928e90dda0f13ca35c5fdb581c4427646e9d54fb161fa19ca179617cf4b9f806fcd55fbc783861a64d70a1ba515750860ea12dbf8c3b8e9c3f6adf14637b0bfb70ef777a09964de5718124fea6ff22ced06215ace8684f7dab6bc9dde47c7d012c47bfbf409bb974c0c005d96f791fc3be4d023e9a29bd9ed6d109eb2a1d10db6b3eaa7bcccf94e503b956f3287d889165772af60d4c6334f1ae7eb34408d78d10416e6462f97d981b8276e091b736facd8d742a87372ffd00fff04cb2fe256bd79856f1dcfb411a0e0f873968e2a72ecaf55a7832d144bd2137a42ce8341ea700567b2ccfdc658b9286153e82780123ec78da898816cb8f9424ea8b2637d08e718e0283631f1633f1fdc4af5bd3e1a2a7ddcb0e147c5ec94f62808369039033adae925aa17732f8ef374cafd9e6953726cbbe88244b629ae953d199306f8dd6d175dbee7123aea70964fad12a8afa3766d4e0adaf5f7b8e25614ab32bba0abfca1ee28f2d7a0911f4fa7966ccd58260334d77f20cd4bcad7f4ac0d73cb87146fa2e77a7eb7bcf64fbd887a9c0635233489e4442bb9732666038db0ecc5d0984ae60eac9e7f3c5b27c77457877c608f58cc37e71cc7b826ab7bfc79320ac02895c874669cc3d579cdd18bf7af79cdfb63cb88ac4d9a8b574bdcdc12bcc196b81c773e0c59cd7bbb49ff1b6da62f2b3ba557dd0257c828095ce8033022b36f17ef17b4783fe3f3047c4383f81ff9d4a46b68c7bd6728afaae5219058688f71a3b37d3d19004908ee6a388de14b192d54f9cfc6ae617f958fd92293874f96e54da7fdd113804132f2a0aa676615ea2edfde5d0c6e287633c7692eadf2983031d8cc6f7b1819fec03d7ed00b967f8531e795d1f1af8afce16aa8a56766e20c4dc7e35920aef2b6d7b091e2005112f8c3e7fe728ed03e379180fcfdaedea24cb5ec322"}) ioctl$BTRFS_IOC_SET_RECEIVED_SUBVOL(0xffffffffffffffff, 0xc0c09425, &(0x7f0000000200)={"a2613ea4a56145d573601160863a259b", 0x0, 0x0, {0x7fffffff, 0x2}, {0x80000001, 0x7ff}, 0x3d66cefe, [0x0, 0x6, 0x401, 0x80000001, 0x4, 0x7f, 0x10006, 0x3f, 0xfffffffffffff89c, 0x8, 0x2695, 0x24000000, 0x40, 0x1, 0xfffffffffffffbff, 0x6]}) ioctl$BTRFS_IOC_SNAP_CREATE_V2(0xffffffffffffffff, 0x50009417, &(0x7f0000000100)={{}, 0x0, 0xc, @unused=[0x0, 0x1, 0x7, 0xfff], @subvolid=0x40}) ioctl$BTRFS_IOC_SET_RECEIVED_SUBVOL(r0, 0xc0c89425, &(0x7f0000000200)={"1f901b1e2b3105a6f1acdd4dba347197", r1, 0x0, {0x9b, 0x1ff}, {0x7fffffff, 0xe8}, 0x7d0, [0x31, 0x5, 0x8000, 0x9, 0x6, 0x1651, 0x1, 0x3, 0x9, 0x2, 0x1, 0xe21d, 0x6, 0x7db, 0x36, 0x1]}) r2 = socket$inet(0x2, 0x3, 0x2) connect$pppl2tp(0xffffffffffffffff, &(0x7f0000001680)=@pppol2tpin6={0x18, 0x1, {0x0, r2, 0x1, 0x4, 0x0, 0x1, {0xa, 0x4e20, 0x6f86, @private0, 0x1}}}, 0x32) setsockopt$inet_int(r2, 0x0, 0xca, &(0x7f0000000000)=0x10001, 0x10) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x0, 0x10, 0xffffffffffffffff, 0x0) write$binfmt_elf64(r2, &(0x7f00000019c0)=ANY=[@ANYBLOB="7f454c460901ff05d30000000000000002003e00320a00000b0100000000000040000000000000009502000000130000070000000600380001000900000000000500000000000000ff0f0000000000001f00000000000000ff00000000000000000000000000000002000000000000008100000000000000020000002b55b56902000000000000000200000000000000010000000000000000010000000000000c000000000000000000010000000000d086566af4cf49de589e8f6f5fdd118759cd551cac7759d24cf7b1730b917ce9c1d8895abfef6a0a17c612b4623250f5f4d7b1c5379b1d737dd7a5eb4d82ce3f349bcf1096fe66a3e3cd109ec75c82fa2a57b85a616e3162d0bf50fb566caac671256df5764b7cff9d62109f97d67a7153d8bda64dca603e07a4162b9847da67e19196b398cc42beb2cd3960072a3b1b6c63e69e975a8de4ac058ef39a3eab35f139080be7dfeeb5f56c0c60eb5664b4f6e9eb4b0f84b2ba78710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7ffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ed321f13a5a51788dd44334f552a2b5b0c282cd7b55da9af1081b61f890466cf7cf1ad79e5529d4454b41af92b2e75aa96b7efb9fa61482c99"], 0x76a) r3 = socket$inet(0x2, 0x3, 0x2) setsockopt$inet_int(r3, 0x0, 0xcb, &(0x7f0000000000)=0x10001, 0x10) ioctl$PERF_EVENT_IOC_SET_OUTPUT(0xffffffffffffffff, 0x2405, 0xffffffffffffffff) r4 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r4, &(0x7f0000000080)=""/196, 0xc4) getdents64(r4, 0x0, 0x0) perf_event_open(&(0x7f00000000c0)={0x4, 0x80, 0x2, 0x20, 0x5, 0x0, 0x0, 0x1, 0x4340, 0x2, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x30, 0x2, @perf_bp={&(0x7f0000000080), 0x1}, 0xc400, 0x0, 0x7537, 0x3, 0x4, 0x7fffffff, 0x4, 0x0, 0x67929f61, 0x0, 0x4}, 0xffffffffffffffff, 0x1, 0xffffffffffffffff, 0x8) 16:42:11 executing program 3: syz_mount_image$reiserfs(&(0x7f0000000040), &(0x7f0000000100)='./file0\x00', 0x400000, 0x6, &(0x7f0000000200)=[{&(0x7f0000010000)="00040000ec0100001302000012000000000000000002000000010000611cad49e10000001e000000000000000010cc030200010052654973457233467300000003000000020001000200010200000000010000001231231212331233123112341341241273797a6b616c6c65720000000000000001001e003ac1655f004eed00", 0x80, 0x10000}, {&(0x7f0000010100)="000000000000000000000000010000000300"/32, 0x20, 0x800100c0}, {&(0x7f0000010200)="ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x1000, 0x11000}, {&(0x7f0000011200)="00000000000000000000000012000000000000000002000000010000611cad49e10000001e00"/64, 0x40, 0x212000}, {&(0x7f0000011300)="010002005c0f0000000000000000000000000000000000000100000002000000000000000000000000002c00d40f0100010000000200000001000000f401000002003000a40f00"/96, 0x60, 0x213000}, {&(0x7f0000000080)="0000000001000000010000000200000028000400020000000000000001000000200004002e2e0000000000002e000000000000003ab548bb55914773fbe5aaed4100000300000030000000000000005cf90100535f01003ac1655f3ac1655f3ac1655f0100000600000000005b079dac3978592e2be226edf103", 0x7a, 0x213fa0}], 0x0, &(0x7f0000011500)) 16:42:11 executing program 0: r0 = openat$incfs(0xffffffffffffffff, 0x0, 0x0, 0x0) clone(0x13102001ffe, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) socket(0x0, 0x0, 0x0) r1 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r1, &(0x7f0000000080)=""/196, 0xc4) getdents64(r1, 0x0, 0x0) bind(r1, &(0x7f0000000180)=@hci={0x1f, 0x3, 0x3}, 0x80) poll(0x0, 0x0, 0x8000000000000200) r2 = socket$nl_route(0x10, 0x3, 0x0) openat$uinput(0xffffffffffffff9c, 0x0, 0x0, 0x0) r3 = socket$inet_icmp_raw(0x2, 0x3, 0x1) getsockopt$inet_buf(r3, 0x0, 0x25, &(0x7f0000000100)=""/18, &(0x7f0000000140)=0x12) ioctl$UI_SET_EVBIT(0xffffffffffffffff, 0x40045564, 0x0) ioctl$UI_SET_RELBIT(0xffffffffffffffff, 0x40045566, 0x0) r4 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r4, 0x0) preadv(r4, &(0x7f0000000280), 0x18, 0xd9f, 0x0) getsockopt$WPAN_WANTACK(r0, 0x0, 0x0, &(0x7f0000000040), &(0x7f0000000080)=0x4) sendmsg$nl_route(r2, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000001140)={&(0x7f00000000c0)=@newlink={0x3c, 0x10, 0x503, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x1c, 0x12, 0x0, 0x1, @bridge={{0xb}, {0xc, 0x2, 0x0, 0x1, [@IFLA_BR_HELLO_TIME={0x8}]}}}]}, 0x3c}}, 0x0) 16:42:11 executing program 5: openat$fb0(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) r0 = openat$vsock(0xffffffffffffff9c, &(0x7f0000000180), 0xa2902, 0x0) sendmmsg$inet(0xffffffffffffffff, &(0x7f0000002900)=[{{&(0x7f0000000000)={0x2, 0x4e21, @private}, 0x10, 0x0}}, {{&(0x7f0000000040)={0x2, 0x4e21, @empty}, 0x10, 0x0, 0x0, &(0x7f0000000300)=[@ip_tos_u8={{0x11}}, @ip_retopts={{0x10}}, @ip_pktinfo={{0x1c, 0x0, 0x8, {0x0, @local}}}, @ip_retopts={{0x14, 0x0, 0x7, {[@ra={0x94, 0x4, 0x1}]}}}], 0x60}}], 0x2, 0x0) sendmmsg$inet(0xffffffffffffffff, &(0x7f0000002900)=[{{&(0x7f0000000000)={0x2, 0x0, @private}, 0x10, 0x0}}, {{&(0x7f0000000040)={0x2, 0x0, @initdev={0xac, 0x1e, 0x1, 0x0}}, 0x10, 0x0, 0x0, &(0x7f0000000380)=[@ip_tos_u8={{0x11}}, @ip_retopts={{0x20, 0x0, 0x7, {[@ra={0x94, 0x4}, @rr={0x7, 0xb, 0x7e, [@multicast2, @broadcast]}]}}}, @ip_pktinfo={{0x1c, 0x0, 0x8, {0x0, @local}}}], 0x58}}, {{0x0, 0x0, 0x0}}], 0x3, 0x40000) perf_event_open(&(0x7f0000000240)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6005, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r1 = socket$inet6_sctp(0xa, 0x1, 0x84) setsockopt$inet_sctp6_SCTP_PEER_ADDR_PARAMS(r1, 0x84, 0x9, &(0x7f0000000000)={0x0, @in={{0x2, 0x0, @empty}}, 0x0, 0x0, 0x2bf, 0x0, 0x32}, 0x9c) bind$inet6(r1, &(0x7f00004b8fe4)={0xa, 0x0, 0x0, @loopback}, 0x1c) setsockopt$inet_sctp6_SCTP_EVENTS(r1, 0x84, 0xb, &(0x7f0000000100)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1}, 0xe) sendto$inet6(r1, &(0x7f00000001c0)="9162a42aae", 0x5, 0x4000, &(0x7f000005ffe4)={0xa, 0x0, 0x0, @loopback, 0xa8b}, 0x1c) sendto$inet6(r0, &(0x7f0000000140)="e905d775a006fc41329dd907e75924fb827b7190e5", 0x15, 0x800, &(0x7f0000000200)={0xa, 0x4e20, 0xbdd, @private1={0xfc, 0x1, '\x00', 0x1}, 0x401}, 0x1c) [ 2026.477332] REISERFS (device loop3): found reiserfs format "3.6" with non-standard journal [ 2026.493643] REISERFS (device loop3): using ordered data mode [ 2026.509418] reiserfs: using flush barriers [ 2026.526907] REISERFS (device loop3): journal params: device loop3, size 512, journal first block 18, max trans len 256, max batch 225, max commit age 30, max trans age 30 16:42:11 executing program 0: mkdir(&(0x7f0000000240)='./file1\x00', 0x0) mkdir(&(0x7f0000000040)='./bus\x00', 0x84) open(0x0, 0x101000, 0x4e) creat(&(0x7f00000000c0)='./bus/file1\x00', 0x0) mkdir(&(0x7f0000000080)='./file0\x00', 0x0) mount$overlay(0x400002, &(0x7f0000000000)='./bus\x00', &(0x7f0000000100), 0x0, &(0x7f00000003c0)=ANY=[@ANYBLOB='upperdir=./file1,lowerdir=./bus,workdir=./file0,metacopy=on']) syz_mount_image$squashfs(&(0x7f0000000140), &(0x7f0000000180)='./bus\x00', 0xfffffffffffffffd, 0x6, &(0x7f0000000fc0)=[{&(0x7f0000000200)="6d0b0e72", 0x4, 0x10001}, {&(0x7f0000000400)="63fdf505b1a710c8b912cd03df588585ad15a60ed3443cd1156c5dab7711d76c715a075804c8540e8896ecb2939723774f22981348d1a44f476391297595c82c8526cd19f731e0f83327b9588955073cb0426c42048a2a03c2e8db4df96997a72216ffb7cf752d16040d68bdae60457b551ea22373", 0x75, 0x1f}, {&(0x7f0000000300)="698c5da2c8ab4a58f7d9e5f7b1597dee6659304a053da9cab73ce7da8254bcf68a44c95b146519030f95c2cc7b", 0x2d, 0x2}, {&(0x7f0000000480)="8f7a9c19f64b485260b8f7be3e8a219383401e497d3cffbc058a395e983458caccbf4df5d9f38cf7b1751cac7f4e08e30f56d847b5187d8a0693b3b17aecb44f4b656190b01daf53834e4248f8a7a4902c2b928a3cedd8e32dc267954e91b2db396b90ac0cd2a7d0f2899376391a844c953ab6bf76a6f94daf22206f46566141db3b0aca34a48fe24959b730bb11913be9243fbacc3b047eb2261f59627db22185a17700ff5fbeaf90a14933ae40fdb06e7eb6cc8e4a8d2dd584c7f57794dc60387dac", 0xc3, 0x6}, {&(0x7f0000000e00)="ee27b275eabee0ab9c3bae9bb8900067a7236bea342f16dbe1c32b8a421ee05c6c1cadb3adb6c286aa807131422dbab6c0d2a1ffb2412cb22a180dd44b6a450e50ac92abb15103afa66046fae44e2dd406528b36271ee22818d1de9c247c3fe52b71a5352221673e9b212659645aa7eedb039f0b81ba916e939dcd345ea632f27a8d4f6489f65867e9b35b8a79c883f61399d7658c0cebaa05b99b3f4baef72ae21d846fd27627", 0xa7}, {&(0x7f0000000ec0)="3a20af3f2364c3d55938b3e0d9dcc451d36e90d8260c2d52590f4371d659f7f8a6807bab92c07e9c495cfa481e7e4a1f409e9b8257578264c9956a3012cc639d081626f748554fd0f4ab50cb38ebf6043facf139507eece0298c8c35e3bc3df415101e3e4a4a88339084fae49e3fc52d25c8942c4a39042c60f7d415ebe5e3cc73e7981c5f19f6b241ec8a6d694c7e3c97515ee3e8a0b781b65ac82e267592f9cb8b8aa6ca34cf250ec58ef4843550647c976063f553e17277da02fdc88ff6a16ba53f5bbbaa72cbec1e7a82fca9ad20513232a55fb3709abda104556a483e98e5d63c7c0c2428", 0xe7, 0x6}], 0x2000030, &(0x7f0000000580)={[{'MAY_APPEND'}, {'^0[$@'}, {'\\'}], [{@smackfsfloor}, {@fsmagic={'fsmagic', 0x3d, 0x40}}]}) syz_mount_image$ext4(&(0x7f0000000280)='ext4\x00', &(0x7f0000000340)='./bus/file0/file0\x00', 0x1, 0xa, &(0x7f0000000c00)=[{&(0x7f0000000600)="ec672bffae97f47db843ccb41b346863e186e66199f2650787e8baf99d0becd2e04df4a0acb5e5f27c803204d1accebab2771c9819fb351c94aabe172d1b23774b3af330ca70cb7dbdd04dff53e470bf6b6b7fc5c4e97bf862f8018fb1fa34c9ab8d0bfba31b096f217796ca9c950e917fa2e940827a0cbffdd737185ee2aa11253c282aede91238ebab3393b4f6a0c42bdb1e68f451ba564790f579b69e534e096e608c940574f9b2856dfde1c18e3d29cdf2b7a1ba424fb717b330cb9f72b62eeab799a9a2473b042bb50d3f9a7ba1158b1edd7414799d83279945a80211f62865b3d1b52a36090b", 0xe9, 0x81}, {&(0x7f0000000700)="0fe2194c4471bc8f4e6701b0a62b1e89b77dc1ffc9ac5a18ccabad98ac03254e0114dd8e5c279cbbbc3dba64eac539190e2b0606f6f6b70bd572ced086e135e66097a26f5b6d2134b6dbac1c472539a2bb9c131ce97055a4f4", 0x59}, {&(0x7f0000000780)="9f35dc96469101b54ed254366b4fe4598886353bd958cf059c0dfdf973394abb3c68ea57e80e22ab993ec0a36312fde8e8a69d3375f8c48d81513676b09493b13adecb1ac55f0c6cadcadcedd41039498d3c2ca97966d92e212f0a2d0c17f2d83aae2b6469b7aa4429537e66d77921070716a1", 0x73, 0x8}, {&(0x7f0000000800)="3475c0fcc978cbe019a06aa713d6a919b72acc25434b0cbb95b9ad8dfdfa6e4e2086b0f1d78dffe32e065a339e556633914b5d17b03aa86e47182aca3fef08ba17f97a4453054f917c65517eb8d5a744f74f4f645857fe5e2fbae48fc82a37e621899056e25ed2658a1ca010a7e674376ba9785b34a140937b50d2275a5aa8a55a5c785304ecb4bc71146987e399181161866a7af4e8734ecdd014fed5ce6a6a06bd994cd6cbbb21799b42614189ff3a18eacc54863f5ce81ed04a648e54b06beb8e5d168a198101a2d24f0aa282a5ae6d59edfcce87e1054e9697832f596b01ae4cad407cb80e5225a7a2db5fdbbdd2293ff7b7a5fe", 0xf6, 0xffffffffffffffff}, {&(0x7f0000000900)="e98df8571b0b478991ad3861bd76fb77d8df86e539f1a3b8c92bd8555247695e1057eff80161b4010c4f0ff51df27324ed74d4ba5f381994e8a3ff0db90b5347f51f8987e4a2f24a298967e1e1f220d3598aafa92f0b9ef934c3a055a96de2e6df73f165f077357272a85768b6626fe0e93380b9bb95308790c125abdfc9cf21ffe7369bb543845ae0c0c18eb6a9c1a955018797dcbb6a75bb3ac1c49faf45c5aa0e8a90c9f6fd51dc29f8b0ba910c25cff082d266e4f7c1286f91f96c17fcce0b9fcb023be6", 0xc6, 0x185000000000000}, {&(0x7f0000000380)="b496b845b6941d8b42a5af968ee230fbe7aa6f6dbdbe9c952899397e2bc037199c9299043f438dfe0072e1fce8bbcc9d7841", 0x32, 0x401}, {&(0x7f0000000a00)="c87fcf694da0f54004b2e4bd07a5fcef3fc732ed89731a9674d06fd28f8be4c10011454ce56828428f9de0aa85b6e9233f217d51fa8c", 0x36, 0x6}, {&(0x7f0000000a40)="5aa951e25fd2adcd99ab8eecb993c38d70a5c4fae9554819877922faecb8999e6bb42b53879a11ab9834b1fc32ca2c1f36556324b0906799245846bb795f8deaf5c30145fd616c5dfee7d55db2cb720a8a00", 0x52, 0x7}, {&(0x7f0000000ac0)="da9c2c4ce6db0cb9799946f33c15fa73e3e8c7542d0bc1b9c1dbf2772eae5f476531384a81ddc87f38e0e14e677784faffa37c7a524f2aa098c641ea8ab80085b8836c0227", 0x45, 0x7}, {&(0x7f0000000b40)="f0699a75db93e3bb8a8fb093fd67a3e8317ed066725d5526b8dfd05f42fce13600a599f2fe80cfca848e8016d14ae6336a5ec6632a0fc10554b70d11487f94ee348bda8541a278791f056a13bb3d2d01c091f925e4e150e1c3884d6116c4e0124bbc48b232c66677b07accdd88ea60a84960a625b5b6d5764a40fcef2e1bbf71c234cfffc06bc6b2b5e371f3befb95b198f201a49a9565fd3e1a3b145448d6499e053b538490604f", 0xa8, 0x5}], 0x28000, &(0x7f0000000d00)=ANY=[@ANYBLOB='barrier=0x000000001c352bf3,noblock_validity,nombcache,block_validity,jqfmt=vfsv1,dax,sysvgroups,max_dir_size_kb=0x0000000100000000,nolazytime,pcr=00000000000000000036,mask=MAY_APPEND,fowner>', @ANYRESDEC=0x0, @ANYBLOB="2c686173b8bba0f48f86ac7a47e9c97e686277e1a833e92c646f6e745f686173682c736d61636b"]) perf_event_open(&(0x7f0000000040)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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) link(&(0x7f00000001c0)='./bus/file1\x00', &(0x7f00000002c0)='./bus/file0\x00') [ 2026.577953] REISERFS (device loop3): checking transaction log (loop3) 16:42:11 executing program 5: r0 = syz_mount_image$v7(&(0x7f0000000600), &(0x7f0000000640)='./file1\x00', 0x6, 0x4, &(0x7f0000002c00)=[{&(0x7f0000001940)="d5b1c0ac2c9d0c91a9ebf51a5e36ebdeffc42620c36fcecd1465f56889c9e0acb05228a6c64f3ad1da5fbc4ae850e9a2412a08ad665b9ad25770e48f30c890c77a8f5bd492b714e16ad03fa0e00df84bc356130f27954e64f91a1eaecc56f1fa63acbf279b0a25031212b5ee5dfa21255397fd3e2c70cb5fc3a333c508c603d839c11837436cd9ae80780f", 0x8b, 0x3ff}, {&(0x7f0000001a00)="ac59aece97edc2af3fd8a093ebb0edf58cb93887ae64667cd2b155fe605ed46296acdd626fdbb68d5dd1bfe9510b602f1999c64b7bcc5db63a350d5c40980db3d89024d33b5d4f9de5e69e157f4369c785975cd78270b842f4638b6d13db8cc866a578f64104a9d45b201509bc3b92912a997093c996a5bbf228e20d523af96203d47403737e4f3130df407c096a0edf67a2549f620c3bfb07a90bd42ec11f088d03dff335ee52e4f14f9effae3ba45133c38546b149b8a2d882db755a6849c464118ddbbd9371a4ba68ce0b", 0xcc, 0x6}, {&(0x7f0000001b00)="115c8b6dc8c26d5066d56a710f7d786c94ccff6038c339f69a526bb30b5c6eafb5eefa7ffa280e84c5a1ea678c21c0221c2b81dbb7c2aba14dcb2663c513847f6b2f37b98f2bd253d48a3b2edc88852b6b733b69f21be2977c0f4410827cdd3276d592a474891fc7d6107bfdbe4cb1a1d35a9dfc2fdb0d28157e0a968419dd0a634bd2775c7115c4e079a908f96dbd0edaf4fe7623bdd25639369ee9694f642c1089611a1eb809a7f13ca6a3735003baa5546532003635ac9fc4d3d3379a687109854853251c784f389a5b7b81142f8732a14ca60be4f38f5ebda557f448a82cf91f4e34387eb863ad926901e01eda60ecaacc788430740db126", 0xfa, 0xe40}, {&(0x7f0000001c00)="cfdba646cecf0c09436072ec0e7651f4f692a21900b8fe11375fb84947f4884a4989addb38c55b191a66f6400725d28aafc2b8d5ff54fcbefa4335a28ded6b21bcc4baf764a4de368a5a62e878854ee686e51cccb6814a62c9e6ad883d7e2829c7ec3d08eb140c823df2483cf61a0858ad3b8cf7019828b2412a265f224c6afbe373461692c48ed743dec7aca2500e82b63412a8b090669e94b2a545bd3f5b7a48d412d0b6980a0180152dc69cec3fee77f077f3f9fd9dd6bc0d174e3571b11c6c364492ec37d187acc8bf3cad67d4e6380bba8ece7b04230118710609a2598e9b6e6f61a3394a6dbe99c19e6efec9238f5893c21fe824fb2b798f6e2a8350886bac13825fec207d174ad67316b515e3dfae1c234f38ddeb70e6b5114e1bb24dfb9f9d7747c2d7079e3a3eab7f36476c3c9827ad897469ac4dddec3df151de7463329e2e2f679dc1220bd0105f215e10dc2493c6dc4e24cedaa955734503f216a8f33582a220f259e0425342543ddf61ed00e3d85a57c717dfaca1fd2bf0990280bcc05298eb00b5d3014d428ba32821be8f1494e1b82853eac75e32dcd90a9dad8887e633ecbf43261ade11b9f8a94d952b6c8fe0fba88c7d5d48a39c2f91b47896b74e0374fa5b236daeeba9d36de0f77a5e5910f6cd56a08ad222877fde30574ed09b077783fe90bf274cfb08197d4b6dc4a9974223b4bd22c6d127d018e7db990085ffc68b984b2e3334c290b551bea058b24633bf581780bbdff95e083a0058fd54beabb35e00a06de7b39ac1be31ee2ffb35ec19cc50466738cbce6a7feaf5fcd43ff2754acb283ed9e8beca62a5d73f4f544a7c132393ad07d612d02deb826b6195e857682e4c9563ea97f8e8a94a0d363ba0312ab8998c9a36dd8828ea9adb1b9db671e27ed6eca923fd7b49c53991bfa695a9faf808a3db2ff6c4e5e679867938bfeeb3ae4db0d6b82ac09082c9553e677d4e8929d4a21b90e222703ad23358a3ec7ee67fc69a3ebda5873eef048db8e62b273c8649cdd13713ce51533e91f01e9fcd1034683675729501956569f6802c6d1618b13604e48b568261525e3e7b41a243a3c9eae963be66bf8fd8538cf9829c9d47a5627d69a573ac2287023344e917ba6b20d6bc6947cd454146bbe6cccfc2ceb47771a7778a0d295d2ca14fd3357f5ad86611e4d53695f1f9d87eb81bbc64eda1c35a96695c3846350eb8599f3b75c7935df907c3bcecf6b0dc08a5ba9972d3c84fe35ee47f9de4f38846c255f912a8d065f6440bd17d49c4c1124865900762bebf6a13defa0172de7b6467c1274456cb05c91803fd8d07a109793f62c75d8ec85c03c1f6daaa416884b84cf75f5ad72fcb7c17f7586f430f711eaa8db06b045d9221c4c52f57a808fab05626a3e6e1fa3ed48c587460358de068d273a847f3b8d8929b134f7d32af1dec502a6debb13d328f47bedc34a3188cbfee1e76ea2fc101128e85924f1b37268fa18f6e7df8c0b5544d273c1354a49de65c433bb66e5bf5f3f943e925fe9c8f1656ed4453c05f739ebda27fa38b75cbf14be715593318fa2de30ba54e7ccd93d903b7e248fc39d0f78e59f9128905d5666aa0d3facddf1419d90022c527f608da5c63664cd1d369bdcb127f415b16e2b842f74212dff816cc2e10d93bfd33babde7875805512ee6fe43fb9cc46317b6bbb3bc0ca4577a5eb3d0ef15cebbf32375dad44b1fc5bd15f267ab8dd293eab392ef879891848fc857174ed4e0982eaa4d3a4843214d82347fcae7c3aba16d418c6ffdbc4de0da03e2b0bb4f39451b0667e10a3297faa2058969533d0f0db578722bb7a8bc74da11d5aad8a0fea5deebc017920bf4d1ae879b504b2a1a8e0a3cb44887bb95ba7e0a8225853a0b65a8e32fd67be309c7a3c32c686bd9eaba63068697825b5a6b7195788249f90205ddd3096c8d8958fdfd02e390a17265de55201fd386537f8fa19c4d6034cca635110808ab53b88e66edb5d08220cd67066db1efa62c263401494510345620a89e88b8318b78769ceb460afba265a5cb35d6b172d9a4eb46a615887d67a034e3f972cf105bef31d337b57365768ddb0b7e98fbc92f74471fe715a173d6e74972c61c3175e7e89a4061e9860d63e8cc1ea55a41f2b2ca4fa6df0ded485dc4e936891cd1a84e97421318e5a31ce5ae4957da4f9445caa968c15f56a6c78044fe7f77926dc46a8a127feb405729cc0347e40d16fc964ec7fe0f5263cf4c6180a3d22289ba93dbeb6e9c90f85396db99e570984610b5a27fc2d7c2a0355e3fb8e90c99d85056b1046d0c989d01dd365e7d9d1a929cc228e378b91afe0f906923f18d9c05e4c1ae42034b4045f5ea749d47214bd2f7644ce70a26e95ce1ae146b46cc04968308ddeb7fe79375e703b3b4f9ab1d69790319a0d1aab4e573ee0648b32298c8b0b52abcece77f760c17d661b2bee8cfd83ab02ee9feb34cce4c66995203018772582d95c019f350d26c865528a488a8d4746c29fb793977b6b51d3d24c9515f18287a0acfa1d4c60c3044fa894d4d40d885655a3b998d7799740bfa7c054afec46f1a15c82d7e75480e730d17916a2a245d4b031b960fb3976f77a1e3e013b86337de91e94c9186e29a34252b444063152a9097384f7693da03522bd32b8b9eadf2c0d516bc79c82a9fb27dc7f7c1124b7b0e59c0e2e7aa72abb5d75d237b0652b45433d84967a29a60dc943d7f98d9b92c4969d8beca4ac81a6fafa8adc92e02cddf30f0d2c9ad884a1aed5600300a1d1b8a3846ea5928ed6a4cacb6fe88f173e691a3f9cea7b7c9048f79ad9277b8e7833b7d3c7c891bc46c4ba308e7d0f1d8848e68bc50ec691c506d34015971b376198454cac262386107c2a6fdc72c41da5fece3c6e6bf4373581ac30859a003d2f1cc655076b65d4374d179dd82bf1d503474962e734e00dd0f02e706fb9d46c8f4e36234b0431fe91ff5bc80ddad9ca00c45e6437c8095c0fb5743bf893a54ab15012e38c8597ecf405f1d5bb561120c64c2d2aa513419b0bfb19b82ad7a20e4779b289676131f8faae3b0fd3e892ed7b50521d9ab223fd33faffdbb6b39789ca07b52422aac37eefce080675f08526c9418b80668b61de0a3b4552040f3d9e4a44da207b373ff0cc80203faf0d88061cf1ff845de875a0624c8ca49d19124b39cc9095c13cdb748322781074a975c7a96c53fc97cc17f05390993c454bac755246b998fa6accd1831bcb30005f0f5bb5304033b5d374a3b15bbbc511b31a645f4ffbe8d7bcb33317aa0cde5a02250b9fcaeb94dd0edc2741ad58337c652975700625e94e2bf1d4d43a954eb0882109ef58aa47b2700158c6f741d61098681100d35405f7df4364ade387c0d11e9527c2520d1d00d8f66af133ae86aa9f53a9771bffe6c37c9cd8ebbba2ea1ccac3f90ff8d635615ec5c2d02b8fb416869ae8b23b820b7e85fbaae4ae092dece239db07b32649ed4b18fd222210cc4a8c31e7dfd2c51077dfc902132cf8781abdfa0cba479645f817b9d9fbe45c9fabb0224fc7029dfdb2d88fa06bbfc26edc5d7e3d808cfa153c3b5671725c765009f235088c4009dfd94c78a9a75e9b2408d82bc9535555c6c58533518321f12b330100e10468c4bed958624b487c172bbd90ca48cd697f88d35339538c1f34e5f5d590ad4f57aea35d6ebb12fc0bdde6b07b72a1be6691fae804bdc6dba77aaae5cbbf92a22495566de5f621c4e1572e58d4a60e1fdf0fc271fc1678f64a140d6ad15bc44498a7048866ad3da808c186b29c6456e0c07ee71bb38a7dd90a3c1293f1274347361c1139934d57b22be38d8ef040abad109fc9d387e1fb5068da01c1823cfb3b1aa6a2df85280d031407dc126bad0823fd0d7a23c97ac50d3ce5135fcccc31867cd0fda73a00b47826e420884eadad90291028bfe6c5b39b5b9b791273e7384545b12cc00fba463f8a52fc508f28fe5a17c0606b4b1a82e4fcb09f233666661e2d75c0fdf5760fd1a3619028cb172dd2f3ed12975ef8d497d520b434cfec04156e0f30c5aec7bc86042fa98f6b9d3a09a344367f756f1eb3954813226cf0d4f877ff8c55b4e630e296d78af9f51774c2f2585b39e289b77d80b678d16348f54e1bc7e77f353f3e1303287e1f8feceb8f203d8413549dfedaf04c4dfbdc11e46d06a9cd031d885ea87e58ec9ac4fb169be18dde914aec144f0401f425f711517f012697a916fc8feee829ab1056ba0f4d3837a78bd5e02940a1aaa26b6605242423e3c0e6c0a25680b01701ee13b5cc2a5cb2324c6cfce0d007eb0aa723376fd922249ebeab81aa51a489786b4c4eeeeb6b9f9e67e8fcdc785056ad789266f8c12f283830245d3dafdd64cb5d1d4320bda4637dd8b7df61e42e431d405b0ade2060f1afeb270f54945a33fd01a30d7c810f833b7c2c204a08fc5439abb474297a13832d82e81f067d4eb950eb5e36442a4e3eb51199166962d3c21a9c0ad61bdd97a131a3ac3dc23394ac6409abbc066ecd949b4ab888bb5d57e91e43a02d3c333dd39af2de779a0aa8e70cb96e7dd04aff0191d1b0e4640623194ea85a579d3b3137fbb4877cb0f5a6225ad8cbf521308ec39883bf8fe2d9f2e5848c6c1b0ea7f44cb01e3903882212386d4edfccf5e4a30aff84713e8b50bcc2baf31556fd02466dfbc599c4bf1cc38569faf7ced47078fbf82690a6e2133ba64b0aa83789f9921e7f239ff60ff0703c6909259a9af5ce995bf1baf95a6a94e0c488195ec99d8ea21aa7e96c5798d85ecb6bfdf8aaf74099a186b0daaab02fd34660e8db42b2322c533b36626fd46be8b4b8c4a2de414a83ee689d6af3f32dddec9751b44461a01f2cba9798e81cd473eae5a328b91fbaaa38909c70c5975448d123f5bfc1646e0e6a3a12650ebf8cf16889e0ea36df8774430051fd2b2f42bc0969aa4366484a8b5756c7e1c70aedbe1333cfcf1a9f938c71de4e4eea41ac2f03ce11c1433cf86642ddc2fda2f5f270f5147957aa2ed5786014bc27ee887e50243960b42a0c9e601e1d1cdfe6f9b9a95d7ffe2bf2ee8014ff36b1ae13b32ec7ab511c593de5a700a51f132085ca3ce6c6a1c4a784c231399a4513b946a19b2297df1e59bebed99f801c94017a1a7196dee83dd589265fb0fe87a4da4c5f83d305fe935dd1dd2bef485d085b3c5f39a84e92bfd7c6be51d0943c3802eab02b0951472fcd73fd6972c412b5cb1ad167e93b09da7271f8d52de7e48a098d165fe1c445f081592a115a955f9ff1051fdb515a74216230c0f7997a865a5c7e0b13b6ad2d0e1a545a52b4f73b2f686a79e893a757affe7db4770f9cf06d2154aacd084a1e19eb9cb230d5201e0c10828eee1028af7a282010d183a0fb567e4afadf10c49541a59ad802606b3e9c4622877f7b1982b7310f290e2041cef180d61a12f841b7c79b6724268bd986b372a3c9e579a077564d89bcb94f9454af060a88bfc16332ccc34f791ef157c358abeb58d9f87167ac044e51c9d923f14b1f6226dd3c89e44f3ad7cf844b86984c63e71fe4edde0dbd77de4ad92405e8f3fa6e77f584a2e6da49d158ccc104243238035afc941286d1cac34286b5747f0c1035afb23c714458a41ff09affc5d140d1a265752b5db24eab8899b3b2e1463a4aa134f311c2435f741472fd4ad4b0f8ca30e9f3c87f61dfdc5baede412d9496236b9857c52af91bf4602dc3a3ba2499554e291eb7edfd46d2fb575c6965cc8ed1b7d6c7cf342e5f3b9c9e1f4bcdc360653dc7fc47aaa58f787", 0x1000, 0x2}], 0x11, &(0x7f0000002c80)={[{'(\x9b'}, {'ext3\x00'}], [{@defcontext={'defcontext', 0x3d, 'user_u'}}, {@smackfsfloor={'smackfsfloor', 0x3d, '*-'}}, {@smackfsfloor={'smackfsfloor', 0x3d, ','}}, {@fsmagic={'fsmagic', 0x3d, 0x6e790334}}, {@smackfsdef={'smackfsdef', 0x3d, '\''}}, {@smackfsroot}]}) preadv(r0, &(0x7f0000002fc0)=[{&(0x7f00000006c0)=""/34, 0x22}, {&(0x7f0000002d00)=""/13, 0xd}, {&(0x7f0000002d40)=""/126, 0x7e}, {&(0x7f0000002dc0)=""/18, 0x12}, {&(0x7f0000002e00)=""/188, 0xbc}, {&(0x7f0000002ec0)=""/200, 0xc8}], 0x6, 0x8, 0x3) perf_event_open(&(0x7f0000000700)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) mkdir(&(0x7f0000000400)='./file0\x00', 0x0) mkdir(&(0x7f0000000300)='./bus\x00', 0x0) mount(0x0, &(0x7f0000000140)='./file0\x00', &(0x7f0000000000)='configfs\x00', 0x0, 0x0) mount$overlay(0x0, &(0x7f0000000200)='./file0\x00', &(0x7f00000000c0), 0x0, &(0x7f0000000480)=ANY=[@ANYBLOB='lowerdir=.:file0']) r1 = socket$netlink(0x10, 0x3, 0x0) pipe(&(0x7f0000003040)={0xffffffffffffffff}) sendmsg$SOCK_DESTROY(r2, &(0x7f0000000500)={&(0x7f0000000080)={0x10, 0x0, 0x0, 0x8}, 0xc, &(0x7f0000000280)={&(0x7f00000007c0)={0x1178, 0x15, 0x8, 0x70bd26, 0x25dfdbff, {0x1d, 0x3}, [@INET_DIAG_REQ_BYTECODE={0x51, 0x1, "0a56c37e61636b88f10ed801e51a79f7fb6e2cb42d520f46418a0753f6cfd34c2f188f4b1d4e32c0e31af51bd8da57625d6bc664d6a5698bb01699effeda2a3157220312c0c8af73241911c017"}, @INET_DIAG_REQ_BYTECODE={0x4}, @INET_DIAG_REQ_BYTECODE={0xe1, 0x1, "f69e66dd063540ea5d4dc1f7815f16d3cfae3eedbecbef02db74f6d634d8577e62c6f1ecb791c627a86ec6a210bb1e13c41e01c5d6791f3bc58a14fe5daec5b943c594879b1cabe544b6c10c19e53d5f3f222fa7f8c3880acc852c816331299681d7a795c76e14c0e801ff6b1ad674c28c17e4d2c54554d5db9ae125152b44e403990edb71533ccc92be5f73effa259278d94ad79450304cfb3242b46722f8bab381bae398776afd284bc78d4bef67bab03f266497ab91392477d5067fa6baf28d9c65b3f3fc465517e4047bd2eed191b2896a197fbe497a90a4dfc450"}, @INET_DIAG_REQ_BYTECODE={0x1004, 0x1, "353af9a62906f927e6dee9bbcb72a6c56ea663c766ccb826619cc77f054d038503ddf89032cb9f5f7c38bd8c0e89abb0e5e3d8f13af63523620310b1dfeed8a023824305f465f8019cbe9fe0bf74e4e76c5b0bf7508f53ad28474b69531ed5b3b4a5e16ec5424b535f582ee5d9bda6fad6361d24f69a0ea4b10f1752feea540c357e6e648f070eb7c95a6b1982bb7d5923075853f6d862820178a0b8e66413c24621b8698f387534e991e4e080636ab22b6476db256cf661cbe3f727140623e540efebe974ee349d94b617f9bead34ad5c97f23f6edea8e79eefbc1b8fe00fb1164a433dcf959b9e6074089f8ad3c2592eaf33756220a3c951f6fdb6cf7b4fd04d99f2a0750c23ed94b2a7162eaff5f9d52d2e2c5352c471351b8fe84b8c07266110f46e1d2a4b1989cc25b88ede4fe89f7cd5f4fe5e80cdb18c7eff1715dca17fb9300809c941537294c3f3ccd50ab07b7be4a170bbcacfa606494ff65863e3c2968d621953a21376d8ba6f8364deec1f8453e0b12c30e2287f150cdb772483010c770782445c05261026eb21ad2842cb006d703f03fde4eca2b2e97b49ad6911b5ce80fc659e0593bc96b37d0465d998c040f32e1a4c739297579e2446f7f24e47105c20db2d037bb12056663735cade0478f6b5fa1ab500c6e0ae7a9555c975cbabb3286fde140175637ea8a6c5e2775c9f18186976c1b48bb8eda223e19dca81ecff08207f17b94b1c8f2ea8c527649dca3e9ba74ed854b7ab61caaf69d8924d972b559e1952bd258249988bb26bbe0ca22e9294005199308718462a4302dc9bc32a0be263fca09f5d10b2a07ff6213e02ab98aea805a307d26b088f1240eb75210ea76ae2b1ad8fc115c29c1dd28a255ef32fd17903b03d57c0bd86eae2ca171486ac518bad1be60c239587280967dafdb1fdb767be0936c206daf94d4cc40f0662d638049aa38b83715d5f3019c51cad1e0f4f12c74cde26ead252b7197e792f06367a6daccbc07d305cca40ce286b6c07f72e7fdf1393031e41bb446a484d6807fec3b2e4106bdf6269f7ef79d1cd1fa28c8bf2df8ca22d49e2bb690b042fc52e518e9e6053996c39500cd60d02415d116cfe824bfab1733095528e061750863e2ccf45e38f6cb0690ffe5dc66f848d0509fd86b74179411229a83cc9b6024a71c32e3360c6a2d011eb088472b20f10254aafacb5f29d562c8b0170cd9013de78b7bc9b3db84a1e001afe88e76d19a175606bdc18cc3c770ca1c9c37fe27e937b1e7aeb03d0d6f5e69e0c6f895f9f0b12e52c1f3d399ae523387129a8c397e2067b3e0ad953cd298edbe4aac9c7a9b0771da007aba0ecdb79cac143f2b0527ec671b162899f074ea94eb13fd69dd25ae133665d962be1cc58a7804e42da9f73ee4b5334a5f0397f24cb6afd0f6bb6bda80bfca89e87c2555aac1661002f9f4d1b072a90869c2355ab4e479401cb4422f4489e0230f7aa37907f48ff2555139e7ded9a01fefc1b08d967cb1c6d0a8f473c38478545a96f1a2bff64c8d2921b38b575e812882da4f7e9b9ee8bb425551b63db3af0e7ec7e8f7335cda64ef49f0f1846cac666010e2d84d55129d56a5a527a1f0694f0f463ace8b084d61b350544f61479bd993d4f8610985435828c85ac26101ecc853457ee3b11e10f4b2523c917f54929bfdc97aa97c3b8684ae6c6437bb42444aee12538321ded25953ee8b757e1ff51b53a61029d16e893cd180e46ae98ebb513c6f7c70b30389309eeb1580632bf14787c380462e0d08ab61cd75170a6b3123edcb23f591e19b6c11e711893e10f964b2a0a33b3badd30261ddcbd5d6a1af2dc65c30e27fe0561137bfb4b586eb64acef174da945bc0162790c11a95ac6d791491003a4994ac3665ba73974500ea2b95b189d28423efde99a0b1bdc44068c89f2a5beddaa422fa8fe3eb846cf1799a448059b7e0800cdba88f52b17c17c915c117743fc3d763584025f1987e4a64e9235ca5ccbce60d4b45a0c30a4ef49a31fe127f62afb9d41eec84d6f66f55437f92270469da449554c25b364914c6a2fe1c5d33c336993485f85ec53efa375061fcf9ff265330a6d592afdf5e17c3bd181ef2b26ea367da67764bab8a642884ee85e9bbde65179fc2f3a8fac43e3351fc4d13625b3dd409784e4effdeccafb08d660b06401b3ec8e27e6bcfe83534e9ba37380683fe74fdcfe1799ca22f0ecda392e3b36c5cd93ddcffe5d5dc7ebfcc4d76afbecd8214aa03f1c704b066e9e1136a4d102405b492bba11b771ba241a889b35707e47e9a84f00d39eeccc5efd0ee64c380063c213924c6d405e0cc0af4aa92efb8ea37287f3130bb2ecf9e1618c712dc1f4da78ff4d062d06d2ed1c6cfaa939377d0cb21aedfdd61d878803606235fa30a681b9e448944419f3ad1aa452a6c10b6779fa8eae348616a4f8fde8c08ff2b8ab79988c309f053b03f5e00cc40565fa6e7d6d707c10b98f3d572918157566d78c306f89d5cf3fbf8d29a83f40923ddd8f7ef4727ebe7167111ba875c11d9e4bdfa1ff53c545f14917b93f0f45f6e8b43385d08635d20672227ca35859ff5993aa39ae608cbe8f0c04a3b1bc3e16a89abbf9d956c46cbb13edb0e3dd344c9afb320ad529f601fc91875561afc1fef1c8d69421f6b53da13340bfdb2d8f3b3bd8bbb9e5bcbab0de9f74b36e0e1ad5327d1a80442834c9fc1205d4e8355c29b06ca4c45f83fa6c2f2d6c37c0c902c58121669e253c5598bd668b22ebcf2645c1c65fbf3bbff47808e1f9db9e8fea64dba91e40d3e99d46c2fc50c2c4b458aabc5c897f8ab8392739a12e66659f44e20736a4e8ffce0042fe2ec2e8ac3eaf09cfb2c62cde4224d61cea242c90dc27f69d5cf287ddb1689e1caf16727dd0286312747b23c849ce9461d5f85d75d85786e0ca8f493537b35b224538bb2e352f1586eb2966903def60c00c539ea884ea391a807de0b754e7f16947a2572c00a49ca266710d63c575fefc5767c0f603a21582c0af0f4b7cbedae1fa8e52407a7622bf55ca8a80b02e9bea9fc693fe66d0f2cba4189309c2bac25a98c265a0384749107942e81421e8231759d9e1d1bd0cc7159d44c61effb316ec6a33cad5e1ffa7a69371c1d740f677503f20bf4d645a5bc6300e39577ab0d816e5be48d8ad76369cec1cd0646625fa9710f921720f5d77964af00bf77dcb44ea16ab1fd7e20062a40c111dd83cd43d49c10bdf5596e7d8313ccf8837bc400ae3a472378d0312122733eebc7c2645aca8104c3126d086e97e79fe65a2668e44ab16def64646684a3f9c4417c565c6b886264b18c7f24a851ff55886e71c5ea8e00d538ca6bdfa4110a6b0ed6a8d1427a0e6615a867c92d27a31e5758fe273f7661d630036b711306152629e6310c2a023f9a3bd5196716ee6e2ebab10b682350e1d0c69fc58562a8665ddb703867139de5f4c8411ee5eefd3cc631c3ee88ea336f50acdcf0609a7b257a829f00501bfa863bfa56a97e0e1607d3793c88c8e97aa90eefbdcccaf962471f9f3e6123b8f678b991c56f372b8a3a76c60f89930121c9cf5e156de290de44b1f5f8ff1e9fa62465e7bd8daa791841a9a365a2dc59193d4f3e79e7beca9ae80ebfb382c3448fcdd8010c77767edcb3584c296196d18a908d310e57f7b433607f9791ddb9dc7f5d98d34858b286f70e47533e5d5a8c4d7591ee757670c0a47d61236c91be26b831429f468deb487ae133e8eaed31b30d6c768df2abeefb556e555adcf4e76d5dd5e7ae8d88e4df1fae0aba7d6167bf4f55cb4d1f280abf84a00598be90017523161abb4eed68170ab0456850beb77ea7170a67884c67af15654d9d6e1b4e78afa9ec600c1612b8c686156f3a6aeefe3aa26c6001fe0ba90373af7b843f71879277134ed62adcf6b3a3d04f3b690d4862839f139549e3c9321f68f8082e0cc577be67ec7ae63953eab29112e5f4308c6549601245dd8824e24f5ec6187409525c0b484315bf8d7a2e9bcca4375e8f44b2eab2658be3dadf4d9d815f938bc13f429a22a451042e7118e3603e0f6e92077eea0f9551695eddc6b82024d60ca02f285e328748e3f4f3d47075e49f31916d610054bb6f77af0ebcb8ccfbaa4f48fc34112f89fbfb1a86e2f454af8144d9321fcac54b12f40c88d8e3f08710dacdf022b30757cd43d15bbfda297409837a9076f94ee5262e927a2276bf1b112201328d0d2cb3cf52798e5333bda59b955ac4d986daefcb7d2a18ceedaffca04695f03ed5de427a6814fa17322d6187ed62c268633db3135c8d855d117f4187a37daa2e574ce1317a38e105f8512ce691184035c86a44ddda80b57864343013350f2b13a143b7bbc3eb9e2cb5c99a4fe05d84fc6afb0610dfb8efc14d3a0b055a1786bd6b7c77d4c30e651ac36390e9268de20812f9381133940db6c9d8593e2d0d382ce3d1cd23fce2771f705c85c6b365ba6d779cac6f07ad8fdce33029676275203b39016132e6f68bc21504f55c4120d38cc2423ee0f3af4ee6618ce68d3a215990b79e0da4c57a04961f372fe46b661b65b3a27cce3d0475d920fd9605c8aa33c1b998957312760c5b565fa90942d60e9e049b1f5fbd4dcefda88d999a8303b89ac0346878b05d4ac7d8a72d5e0705e4460923fd6a8428999a1dcaecf1886386d8831e8ca17c739835a279cf003f2124c239bed42d992a4d475296bf473409c7ea2128765bef92473b8ed36e9b02344acd7f0145b5c76cef12dc314ed9c168f0fc10b8d131edd66b93929c767413a37a0a5c7f12c1b78c418483bb6bbef5eb04a070ff731e4b877fbf47dcbe4d6eba73828df517aaab21c5c77d3774fad005c1c6b5bbb26bfc81dc2aa9876788f6a7270bed9e8d440dc64329437497811d80626daf6694420f65c83147a09b541f429f43a04cef7702a241bdb7430d3b859b8e79973beb5fc231d8e64f049dc797350b331674080c222033c4285109f8513e0a20ce8d961b794330c351580ede73b522825f0b465c8438352db85fb7072cf828984d60f0403be0e774c492d46f6c19da80276844bb33f6960ef4be8bf20171af31efec8d27a6287d8004f83254a2f9e24dc510f3f485086034eb8b74b531f3721fabc17caecac28421403db83c3c83d05339c3cc2dbe72347c12d32419f1bed1d1563db18df998923ad5b0a2fcd63620cc0bb5dd4d9f0100e4f478f0f35c99cd14c644b1db964a4d7b901886555855022cc1bccc9224eb432a65b48dc19f7d6593876472505372e0078cd35dbd0f00897567e878c7d71c1b920aa0dfc962586e82156d70ec597ac1b2193d0ac0a13f08061644aaf20d510dbb16786c003cb870443577a7ee03aee248c91dae4b1825cbcc630d6e89cac72a924f37e549ffcc46da206daf0bd789cf5565e743236d475ddc3bca2f2d45b1b908725a979c1a9fdb9319bcdb56314051ec6d9ec8cdc80f10b3cd0f4b4b757425260e9d92b5585a93a2812d89a451cfcf38db18e97cbb15397b42a92c00d6645da2ec2c2f41a0c35c5371c66448a156a8d6f6e2d4633b16800a902b6a4ab847dfe5d095f7d6069e2041f48210cddfe63d8fb86314f227a7674d160cfa7948855c29acdff248bd485112e592edb9698f7ed5c6db28a0651a87c11399262add94f764c3f89252a913a0fa75db07c44f56dc626fc8ed4e83d5dbfc782d171c0d1e413fe98e37dbc66305bec2c9b0a673e97cb6437d0062a764c35ee3c2bcb4b447d725bc619fcccc7b937b33f74f7eee93f87133eb8c058b9f10e6"}, @INET_DIAG_REQ_BYTECODE={0x1d, 0x1, "4686997223c9befcc1f5172629f25e1d97080c0f212fd225d3"}, @INET_DIAG_REQ_BYTECODE={0x4}]}, 0x1178}, 0x1, 0x0, 0x0, 0x1000}, 0x0) syz_mount_image$ext4(&(0x7f00000002c0)='ext3\x00', &(0x7f0000000380)='./bus\x00', 0x0, 0x1, &(0x7f0000000680)=[{0x0}], 0x5, &(0x7f0000000780)=ANY=[@ANYBLOB="61626f72742c6572726f72735b72656d6f756e742d726f2c646174615f65729b135c326f72742c6e6f696e69745f697461626c652c00"]) open(&(0x7f00000005c0)='./bus/file0\x00', 0x121000, 0x48) mkdir(&(0x7f0000000240)='./file1\x00', 0x0) getsockopt$sock_cred(r1, 0x1, 0x11, &(0x7f0000caaffb)={0x0, 0x0}, &(0x7f0000cab000)=0xc) lsetxattr$system_posix_acl(&(0x7f00000003c0)='./bus\x00', &(0x7f0000000540)='system.posix_acl_access\x00', &(0x7f0000000580)=ANY=[@ANYBLOB="020000000100000000000000040000000000000008000000", @ANYRES32=0x0, @ANYBLOB="100005000700000020000ffd8797931f1574e3ae87dc32eae1c582c8bce6dc7c056b"], 0x2c, 0x0) lchown(&(0x7f0000000340)='./bus\x00', r3, 0x0) creat(&(0x7f0000000180)='./bus/file0\x00', 0x0) chdir(&(0x7f00000001c0)='./bus\x00') creat(&(0x7f00000004c0)='./bus\x00', 0x62) rename(&(0x7f0000000100)='./bus/file0\x00', &(0x7f0000000440)='./file0\x00') [ 2026.752120] REISERFS (device loop3): Using r5 hash to sort names [ 2026.771661] BUG: unable to handle kernel NULL pointer dereference at 0000000000000000 [ 2026.779660] PGD 230a7f067 P4D 230a7f067 PUD 20d04b067 PMD 0 [ 2026.785559] Oops: 0010 [#1] PREEMPT SMP KASAN [ 2026.790067] CPU: 0 PID: 6558 Comm: syz-executor.3 Not tainted 4.19.202-syzkaller #0 [ 2026.797944] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 [ 2026.807388] RIP: 0010: (null) [ 2026.811277] Code: Bad RIP value. [ 2026.814640] RSP: 0018:ffff88822cedf8a8 EFLAGS: 00010246 [ 2026.820006] RAX: dffffc0000000000 RBX: 1ffff110459dbf18 RCX: ffffc9000c355000 [ 2026.827366] RDX: 0000000000000000 RSI: ffff8880ae0cd000 RDI: ffff8880a20b67c0 [ 2026.834641] RBP: ffffffff8878d7c0 R08: 0000000000000000 R09: 0000000000000000 [ 2026.841913] R10: 0000000000000005 R11: 0000000000000000 R12: ffff8880ae0cd000 [ 2026.849308] R13: ffff8880a20b67c0 R14: ffff88822cedfa38 R15: ffff88822cedf8e0 [ 2026.856584] FS: 00007f51b96da700(0000) GS:ffff8880ba000000(0000) knlGS:0000000000000000 [ 2026.865163] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 2026.871416] CR2: ffffffffffffffd6 CR3: 000000022f4a5000 CR4: 00000000001426f0 [ 2026.878864] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 2026.886406] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 2026.893763] Call Trace: [ 2026.897241] __lookup_slow+0x246/0x4a0 [ 2026.901230] ? follow_dotdot_rcu+0x1040/0x1040 [ 2026.905834] ? __d_lookup+0x411/0x710 [ 2026.909646] ? d_lookup+0x18e/0x250 [ 2026.913385] lookup_one_len+0x163/0x190 [ 2026.917390] ? try_lookup_one_len+0x180/0x180 [ 2026.921992] reiserfs_lookup_privroot+0x92/0x280 [ 2026.926870] reiserfs_fill_super+0x202c/0x2cf0 [ 2026.931465] ? reiserfs_remount+0x1540/0x1540 [ 2026.936230] ? lock_downgrade+0x720/0x720 [ 2026.940475] ? snprintf+0xbb/0xf0 [ 2026.944231] ? wait_for_completion_io+0x10/0x10 [ 2026.948909] mount_bdev+0x2fc/0x3b0 [ 2026.952545] ? reiserfs_remount+0x1540/0x1540 [ 2026.957076] mount_fs+0xa3/0x310 [ 2026.960451] vfs_kern_mount.part.0+0x68/0x470 [ 2026.964952] do_mount+0x113c/0x2f10 [ 2026.968756] ? cmp_ex_sort+0xc0/0xc0 [ 2026.972481] ? __do_page_fault+0x180/0xd60 [ 2026.976743] ? copy_mount_string+0x40/0x40 [ 2026.980994] ? memset+0x20/0x40 [ 2026.984506] ? copy_mount_options+0x26f/0x380 [ 2026.989013] ksys_mount+0xcf/0x130 [ 2026.992756] __x64_sys_mount+0xba/0x150 [ 2026.996749] ? lockdep_hardirqs_on+0x3a8/0x5c0 [ 2027.001519] do_syscall_64+0xf9/0x620 [ 2027.005333] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 2027.010615] RIP: 0033:0x467b0a [ 2027.013817] Code: 48 c7 c2 bc ff ff ff f7 d8 64 89 02 b8 ff ff ff ff eb d2 e8 b8 04 00 00 0f 1f 84 00 00 00 00 00 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 [ 2027.033157] RSP: 002b:00007f51b96d9fa8 EFLAGS: 00000202 ORIG_RAX: 00000000000000a5 [ 2027.040868] RAX: ffffffffffffffda RBX: 0000000020000200 RCX: 0000000000467b0a 16:42:11 executing program 0: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000100), 0x0, 0x0) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) r2 = ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x0) ioctl$KVM_SET_CPUID2(r2, 0xc008ae88, &(0x7f0000000000)=ANY=[@ANYBLOB="0100000000000000000000000000000000000000ff03000000000000000000000000000000000000857257d03fc61fa3be78534522f6aafd5b89ced7f7d375a995746dbd1a475d5dc96531f8b918b8f67a54c15f47d678c401efff63a797ba87f37fa1b1b33c1bb5f2b0d0ab003d903cc551cc23bbcc4e2a83f84d589d2e880aadd6fed7c2ec0e69613551979febb43ed767d71105d3a412f49d4de7ba1129b5b284a73583ce27be752bc71755c7d9e3f20bae87"]) r3 = openat$uinput(0xffffffffffffff9c, &(0x7f00000000c0), 0x802, 0x0) r4 = openat$adsp1(0xffffffffffffff9c, &(0x7f0000000180), 0x206800, 0x0) r5 = openat$binder_debug(0xffffffffffffff9c, &(0x7f0000000200)='/sys/kernel/debug/binder/failed_transaction_log\x00', 0x0, 0x0) ioctl$KVM_GET_NR_MMU_PAGES(r5, 0xae45, 0xb4b3) ioctl$F2FS_IOC_DEFRAGMENT(r4, 0xc010f508, &(0x7f00000001c0)={0x4, 0x2}) ioctl$BTRFS_IOC_QGROUP_LIMIT(r3, 0x8030942b, &(0x7f0000000140)={0x0, {0x13, 0x2, 0xfff, 0x8, 0x7}}) 16:42:12 executing program 0: r0 = perf_event_open(&(0x7f000001d000)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) getpid() sched_setscheduler(0x0, 0x0, 0x0) r1 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r1, &(0x7f0000d84000)={0xa, 0x4e21, 0x0, @private1}, 0x1c) setsockopt$inet6_int(r1, 0x29, 0x43, &(0x7f0000000000)=0x1, 0x4) setsockopt$inet6_tcp_int(r1, 0x6, 0xa, &(0x7f0000000080)=0x8, 0x4) setsockopt$inet6_tcp_TCP_CONGESTION(r1, 0x6, 0xd, &(0x7f0000000180)='dctcp\x00', 0x6) sendto$inet6(r1, &(0x7f0000f6f000), 0xfffffffffffffea7, 0x20000004, &(0x7f0000b63fe4)={0xa, 0x2, 0x983a, @rand_addr, 0x7f00}, 0x1c) setsockopt$pppl2tp_PPPOL2TP_SO_RECVSEQ(r0, 0x111, 0x2, 0x1, 0x4) pwritev(0xffffffffffffffff, &(0x7f0000000840)=[{&(0x7f0000000300)="deba1fabaaa37a46153a95dcf1e270f9da2193976642a961816e9f5be1cfaa26aca799d1ef8f474a518a1e72d2dd8a2b3e18959385b6d054c4587407c1ff2e430469dc0da8ce2d9d27849a0900689433c2fd1da036bdd578", 0x58}, {&(0x7f0000000380)="c64cb32fd03ccb0aec7a3faab6874d53a7e1a4a749d8dc8281e9307e61af0bc43c2e6e3916f4c62f3e9139697a4736243d53231a1dea2949142dc05dd34d72fff27ec9d5d19a47d80c1740537491af423bcebd313c57fa0260db24bce7f5e332a8e044ded7de517ed06a4d9cdbf5bdffb2873ccdff0c6eb2754b930f9facd0687a3b5037c36ef804f6a7b32ff1939c16c37c14925dda39eb18610be75369ebaf0fecbb5aa263cec83b579182604308d2eed4d59c", 0xb4}, {&(0x7f0000000440)="cc1448f78b34583ef048619818f3c802df08c32e59ff295b5192668f56776734f2b1ac28f5231c71a536ad09412c59ed8d9434618767c38535ad72e7398aaf3f79c3e6ea8dfdeac4dd97a2bdc6a9a2324bef54175f4574d13c03f6bd0db27114ab4d29d00d4038fecef80183676d0231c303dcf68d5ef6f2956613a54414c7b99bd139", 0x83}, {&(0x7f0000001300)="bee96ca84a66db53602ee74e2e051f020168446b3886924da4351650dbe6926bd1d619053ae4acf9b5a5286385fb5dc4f194bc7a456ad8933a7affac8f7ace60cdf96bfb6c88ee679761d4579fc820a72b00c8e382cc102fc1f59cec79dc7ebe9011f27faf9675e363e08c42fc512d56dc7d578630aa524dc469d3e4de796d87687b3b4d5c8d0b9291a0df60c0400ca214dffa9fc671caf541cbfac38db48566d926869a01089e4139fb9db040626357c87e8761b98d7f018a3310cc7ff5b9dbfadaf33338113f1744cfea23676031a2387fa1ce7a12b7a1ca36cab231fd79e1b3142c1ed3a1e4b95a0be59add711a5eca5770a0d58baea68697c448b9ac4b52b76af9576642e8497ea3c6449f674b1f7a58f36d10df9a9d507dce1e0b047e7336b52f901e6757cf19af21918f869c1ab9247efba9e22e84d538271194035c0cd0b5d0ebe87e81cc5969b991e5f9f51596f137be1e87a5d990e0760118fd9c6e1a2af347ad579dab779902b42dcc50106dd24cc13de0d2cdde65406767b93822390f2537cb0f82309f423a3e317a556245682ec2892a8d170143152bf4cfdfb9737c5a36f0fd3538ed45c2a277bca51902efea02ae9366787b2513ffbc27b6cd43788d741c1330e3cf526e675e0255fce4ccc9c808d5b46b9b11e4331af29589e128c8026693057fa4aa3f8de18bfca23d05a793ae2a194bed4cbc92c3d29436cf708d1da916b70893132cf9aa41130fd7ed186c3e9fcc9888f767ac2f2d6536e457f0962bd7883cd09c6c22356b49f34472b9264e2c1ac8e3c4fc4a619cc7d518871c7f7f115030b6993b0307226253fe661ce4902d934885f53af23fddeeb3ff039a8225f9da0507782ea40738ff9ed65e962bce40a542e08ee9de9bbf3821e786d887a5e9d9877306c9c563c47e29b7f6896ba1a4a2bcab9eefc9b8ffda225cb0639b4b78912479d59bb4f415770aba3b60dc02012df62e89323b7ef67a352af56f99982476ca5807671051ea7e924b9affbe1f6f61f44ca3364ce1cc8abd781f1a26551468460b7a71a4732795aa68dcc88e743088474b9f6dcc4166f1d5c9c39fa89c4c6c52478bfdfdf5272a5db557d246ab2917423ba3e0abee631d0eeaca20517d7eb71167731bce0d60d09eb685256aa8e27952729a4f9e20af4cfd0771908cc732e674d3c95edabb7cfb922d8828f10a2db7d6c77ae1f5af537419bef7bd8227797612ec4c39da5a8bfc690cf271aa61bf972b83d6963aa985ab365405efb492250fbef1011f796538d9f1466582816ad36daec09a175ec9bfd14edf88e172ea2370fc25642fd5c2ad157114946f8122f0512204efd6b3b190839235ad830e34a0aca590303e5f08cf06e80877b6ac796af25430996fcec9890db7a271d1cacea1a0003686e267c7362fcf26a6e2a351e22c698920a6667453e10827c213b88caa69758c0d41e488e67ff4c5b3c54e3c03c5e7775a8bb925abf56dd542ccef5adb0ce794a90b3eae436001dbb392292632ea52224ca736c1a3e9b2c67e878cfeae611dfcb228312a1d528903ae053eb6e07dd4c0905c21ac50b3cb02baa6d108c2364beaf4738c36c2624c06d663fc21f411ff0a53f96807c0c2e0c1fc889c81eafc67c8f0f9cca5f278efa90d2b3de1adedf283ee4b81162c0ef27862e50192ba042448fb9d1f802b13cfb5fb6c729f7e6bf6f160576fb2b1611475ae16947bfdf6599a3394deebb12e59f1cbd9514edae28c347a0fd91f40f1ed6fe0fe5c9552f2655bf95fd29347b3c4ae2cdd736e715d4c9f26509a67a2588b7f89422d1be306a53e25d59a7beb5e9b44889f16b9b9a197ffbe49c0da031caaea344d5e73b3cd1deede6bdca4a33e4007d501eb5ebbd0598bcbf6ec0a3801d820f5dae83e8f78f5cd94f01b5d564d528e8e0cfcbd86f6adbc6a7e69971cf21c4da357a18b2233c55fbe8e5148d6ad6823d40152fb1f0471eeca9f61ef54d14c172728e17ad9057973252206c8d85e7866e667317efa3c6f02178e1a7bf2f08061399af370c721c1bce1c806fd11be3b7aa054f02e4991cc9e29f14d73f545d1c7727e94eb159057422b3ab2fbaf1a6d07e658785412287930316d3d6496e7835fe0806c765d99d38d53f37411f9313753f16169300301b200725828926496934c909ec796df6d83b1cffb12487c146d1fee0b651d6d050b9415d8862bff7e9449c796d4b6655f31c83d1e518fe0eb2421a1e1c6c86508fdb75ead3466b15be0b1d9a0cf8dfebc07e06d33be233908277f02982bcb6af8021673fb656f3e5e7415a24798a626fc82bafe4e07501710b8cf13f293a4500aaa20eb78b3fc3d4483abefc45b2e0707981bfa094ea54f55ac00aa514f13642b28c51a5ce3aab28a25f7ed7366e0e01839212b48b937cd7cf32f667850d4ee9ce25218037456b0dcc0f521725cb265957cc012b52810d5414ca82b6e9f88fd159bab3c934273be8fdb6a9082da62507af16a2afd132fdc8690908b1e621964501cc2d8d50aa11febaa9a38f2f423342749ae9e92d854a5344b8eb9023d4601d65fe3093faec3a991891b3683866214c7a03e28f3c4385a596f5f2218e4ae99f193acd8173d9181ce5b0520fd7618bbcb63f71630417c1976090c8f4c0e41eb4a5b2d30079a607bc587b1c12fb40ed2103727ec0d7651cddaa2fcb4b8005247befb4103be290a6cc1fbed1d716546716ef9898bc71c563a7e4b58addb2216fe61926412e71486a62876a1da9290de8c5af8bcb636b93af70419b404ea30edd68dd5a4a094e0d52ae9c9968608047307b3fca0e0694c4b0419ff95f7746d7cb6d784466074a57ce1225874d00ce9798d7688c0cd425c1ad236f5c2d2c200d59fc07d09f94479061f5de8ca2a7f8e2a3a260dfe8adfd21b5f5a664bef28213eb501c673a0eb05ce9977fbbe0c4dee53d759198a1ebb3b5dde17997074aed7998b8ef8d2ac66585b1fddb84fe08e8f42476d7ee7a04c2837c3b8214d67892e7a1a6eccd64f3ec3a612adc299aa56e2eeae6efc2b2943501674e8e576bc274d2214dda54d00723975cf61236a92896f66b27987395f554e0af691e29ccee33acb4e6e255737c02ecdb11a3025f87d6821d30541ff97d00a4d8ecea7793a055dfad68e716cb71ba5f8996c1abbfb9c9157e95948d3f3a7e5f7e6e2b9dd881aac547eb2d3e71894668a8f88c4ef5953a275834ff27e50ae19f5d28e2202c61f204ea4b63ba21db1ed0fa5f72ee33638a3e1edd9e1a852b27b4782138d4e437b537cc61c782501fe3683f8205087bd4bda87d331c1d829c8fbdb0fe61f272dacd5eb687205551e602ff9edba8129f24e1028147df822cfc09535e2b06d446d42a8f393642f57bcaaed48226e535a3f5bad63a2631c6a68289368da5e3b7b9be89de4c40e52056ad707f9a8fe041bfa438a62eab41cce41c5aa93cf3ec146837737085745255f509de6cfd95196029a45fcf597b1653c88783c4843bb27bf7107be546c2f33720731318613167f69a9ef132f0b0eb65d7a2e6c73d33c68cf74fcefd815e59b4b911cb152b8e1cfd64eee601dc2773c5eaf35eba009dbe171cb7c6aa1d615b304656435c01d4830fc9556fdada89d72f1d9d7ece413beac32ce66257a6ec37d813d3287a5304ca9145647ef5b2fc2bd598f4e493a9cf8b648fc2bc8915e5778214cce45ddfd685aef3416256361f033d2987b7b012fe27d53ecf324b0e89286f16649c6b592ca7a98c3fc6ce219a062b9368fc64da288b942826199626468d7bc566ef62cdfd61c48c98a3b743ede9971c0a534e610416f78c9d2dd16f0e287c8349920ca70878ea2d512ba7f75d62dc5ac79d4aa87fa9efd8cc8bf16636388b57a4b1f4ff50654d21654f66cc2685a5db55748a56ff88d3c90f612280db05bb6d0b3a43cd4f7a6fb58e462a1519d1ffba0df27a8e49b7d9dba88b9af8ce8cf731fdd039dbb3900daee339d3da718144ad56fb2c48ec4c16a02f351d43b1a0a290d7ecf85502e7aa8cf5fbe0fd3b6967028232a6e87ea29322e039c6d0e03aad6eef5d9d9c361e80f9b9ea14be050d6c8cf66c4176b1f6a200e5564ca199d935084858a20f85dc6b38b8fd41289ca3ad8a4e19049c82019be14177832ff92c564b86c12bf6ef310778e5de86d942540008551490512fffe49f59e75a4e64333b7d1f09e22a0926b62c7dafaf293e9045689cace037adeccfce47d064de3a52ee96f9ac1f718db55de59392c617a80cef0dd0db4faae3182f0bbb339bb7b156dc534bd50f0a4731387801a59fcdd2a7f9c7c7b46737a963d2a7390ecbae777fc6f9887af00f97b9e18e2b67e5061f22457ec5c254758e3f871e2ad88096cda8b1c7c06f6c5da0e2d6a5a16235ce2f278845879f1a3c1b9fdeea4be37d3f46e02288cda75e34f57c178208f215fe54a61590bd996e2b4a4d3b38c053f786194553b2c0526e15f9b1c00760c020d688c8f6c2770699edea590941ab10943d5064b780b2c87c196723470050373a8f5bdec55b302a7afb8243b0ca256ef46c50c478dcfca2f466d6dee32601b02d7941916cb334df1ce041de55756ec8ae38419da6a9f4f7f60cef5778ff8506020ed465e647935e76480d11dd840f39c90ca523d245ed33a93d0ca794b7af727779914862e6b69a3613113ecdd595e314ade64f3b3359d46b7fb0838133d2d106291143ca8e96d3236fb98792ae0a2cde2b4e9a79fa30bab1a4dacb50fc6d81a4a72c7374173c4ac65bd684bbe616c3e300d3da84838fcb5c69a68b555d3076089701369a308b4825a7ecdf57b01da3eae48b4be80370e76511cb47ec1e72942e69076de2babdec9b5a521061ef3c8e03d2872b69cebf7f6bacc594d5ff3d8c0ddfa6b76749b359a0fabc0a56374a27182ab9f93da4a8cdb6a10a034d7ab43a2d0979bd517f493e19a66d88dfd87c4e51c7528699a50bd6dea2ccbd071e62bfe13adbff27f4c2f984881e7b38ba7718360b3b3aa16d18bf555589049ab36296030b60b52c276a8d94d93cf146feaf09b0dbacdcc581e0a8b43f39c76b3b75450c433e2ba7c7d03a0c096c7051d91437af407bffeac43aa654a115077d2630d04486382da84ad5705594bcf9d70c2ff949560df8c6cfec4b551d8d1efccd8bb681b5a8cd925c47f70305dd89228e5bfc247006d83022bb7b47cd51ce5d732802b9fa06c0caadd5c55ce341526616f6f33afc11b925b31a1a4a3c4d38c60341625c22fa0f60e16dc9ab773c948f11d2bacb54cfc94034f1119e9666d38c6f3950157cc0df89fb3e16f8f0fe353c0dceabc0364edd7021c1b74413583d8040a89d24ea80495910aba5c4c8fbc60eb22f06ed31af938fdabd3f02ebbb658b88f1a1a781ea0085d19793bad7a939deb02256f263dfe98228ca5ee47ba8101748aedc73027d098ffa50fd89061d9f4cc9f4237d5de0e4d5acbfd646eb50d57fd6ef264673a662477e22b0fe51c2f28b7c5ff9ece9aa0a73958e8ebd624c51b1867ea762ea9e70ef7d5a125e764c5ae492a0905477f4d400ec20a366b3995eccf56f622535c3d166d705deeb0154e47c67aff63df89470cafb68877a37bea24ec3a89baa576f95c051fdd07620b1091eecd724632ffd8e92f0bcca23520291f1bf97eb51dc8b6a09cb8d26b97b65be83aa03143490c8a8e30ae2a328b448ea53be91fd14c79431882e1e5d01a633ca1cbcdeac7fbc05ea08088007429a6dc1b54c3e3ce683f916dd33345e39cef6019cc5b019cc618b27a53e9f4e44b4dae6b", 0x1000}, {&(0x7f0000000500)="f507c113158db56e40551f487f893970093d58916ae9bd13fa055b324adbf79e56e495d08d9a8a6446e5566899fe6ff253181be47df503d781677565da5ee0263054d9ed631de131357ea53834060803f830fb753f2c0161e51984da78669d7bce38293acabe1163cacd323eb37d13d0ea2a125be95917d5a800008c21aad37e47c66163ccb906bbe2c373195be7ebce1e1a8402665bcad52edf33fbdc6aa9368ea1bfd9", 0xa4}, {&(0x7f00000005c0)="7bfcff0eb35104dbbbc5b68a4cb9cb546d4e41b49b331abaccd1e3b619356b8c04f967a06aef14aa1dce93680c9e4a24858995eeef9dd6e1f2adf79bb76db75c23b8e8f2eece397f6f981a65d395bde54c2e490927270c625c5969d411512e345984f32fa16e4733eba75af5981532a82ab076d8f84d89130cbeb241ee2275a31a6089c2bb1d6dcb657170ddcdce386d7b93019baf212919896b71b82342966e3e84fbfb1351dc84504d6d52720f", 0xae}, {&(0x7f0000000680)="78f000a7adbff3d0331f019375e53cdaf147f278a618a8d451ac46779595bb75d280da8a3c21707838249137d3cb8527bbc52f2844e7aa714de167089c24a2f29207888e31c2d162fcc70293fa3bfcefbc93a5e2450774ae7d0defffe7c0b7e4e63695fa83a8fafd0f22f3a1b92929421d6390fb61ad1a1dab5a2bc2c8ebf404a77551c457299d65c2448cc412be282be795a67fdd6a492824add084e67883ff58d9111109c8b7358c61d105704d8f51e4e5a5f262c83ea5a665f46241005967e4c882d4dc58660438219d0d1bf61779", 0xd0}, {&(0x7f0000000780)="7ac41a74da077e10e26eaa7618430666de0fe0509aceb1014ba0027d51188262b57b7c2ab64f832333772c8b538ad2a9665b818179580e8068ffc55e032598388030e62ffc0d8cb06c7d32f937e04d793d539eb6feb9e67dd41120fa025a28e97489ab13c39153090e2cd7a2068e312a0a87250ddac627ceca267d56d7703840bd953ac5c993f73d41bffb9de209406e1d48e28243e6a748b9bef92482b1197448789778e528227dddfbd1ffd1421df0b1a6", 0xb2}], 0x8, 0xc3c, 0x1) setsockopt$inet6_MRT6_DEL_MFC(r1, 0x29, 0xcd, &(0x7f0000000280)={{0xa, 0x4e22, 0xaa2, @mcast2, 0x5}, {0xa, 0x4e24, 0x0, @private2={0xfc, 0x2, '\x00', 0x1}, 0x73f}, 0x0, [0x9, 0xffffffe1, 0x0, 0x7ff, 0xffff, 0x4, 0x9, 0x1f43]}, 0x5c) bpf$MAP_GET_NEXT_KEY(0x4, &(0x7f00000012c0)={0xffffffffffffffff, &(0x7f00000000c0)="e7a120b1107740ce45b83688fc32bcefa56ccd2a19fae620b8c39a458609bf5fbc21ebe86d6a44a90abcddf45e03de02752695b411bc01e04409624ed35841ed51471c01a3c11ac784d849ee3b536e3ff9482a3fed757ffef1830a4980477ddd682192ec8ad990a2f42ff50c79ed5635caa5a2184449b06d2c8515b9a4d1f789de230578d9e97d311dcd04c225f5afb27aefaaf5e1e5883e3f9adc9f969ff540161e488afc13697193afd11948a22776b4236ccaa0e26dd82791e6fd7081f282930a58c9d0", &(0x7f00000001c0)=""/167}, 0x20) 16:42:12 executing program 0: socket$packet(0x11, 0x0, 0x300) perf_event_open(&(0x7f0000001340)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x0, 0x0, 0x0, 0x0, 0x800, 0x0, 0xfffe}, 0x0, 0xfffff7ffffffffff, 0xffffffffffffffff, 0x0) r0 = socket$inet6(0xa, 0x800000000000002, 0x0) setsockopt$inet6_udp_int(r0, 0x11, 0x67, &(0x7f0000000100)=0x2e4, 0x4) connect$inet6(r0, &(0x7f00000000c0)={0xa, 0x0, 0x0, @mcast2, 0x5}, 0x1c) write$cgroup_subtree(0xffffffffffffffff, &(0x7f0000000240), 0x0) sendmmsg(r0, &(0x7f0000004d80)=[{{0x0, 0x0, &(0x7f0000000380)=[{&(0x7f0000000040)}, {&(0x7f00000012c0)}, {&(0x7f0000000480)="0c22fcc310e8a4d628dc3f33cd1758b784d34ef62ecd943b96c5573b05e34886b55503a08eeac42aafc204e9fec654b4b0853f4c32d8d6f8968a96b81710a9ed49ae96ea22eb07accdc99ed31fb48b921b4c9af7278829eb32247169da3593e5e73371e858cd87b9c876b91e091e933496ae3a6b5a00a79f50110980c83af2fd44e0f08908f806be4146080def894a3ac87c3d214e32b0e031c8873b6ed3cdb9c160ee236576cb5a749ee356d4f5df961b35ec3667bcfa641e2c812a5eefbd78546783b6bd280dc4ec1cd015bee7d07f0993d60000707cc21f04d6a8384518354d686194770a0be8c90886d12ab465126c4c7b60187a0c94e6de69e4ff23ce761dd9df61a5a6e6d3996ae38f26edd2747d3f1ffa2143439302fe26c9740bd87902002baea87ccfdebd03cc0c4926193be90d325fef5d6f95ca5e9a469ed61b05901fc0f5fac1dd760d4f1dacadc135053792b9b13e41c073a9817910f7a055ff6ed11a6c7e2cd6783036dd0285c0143fc252f6c7c73802fe343c8ca7844178c2b35d834e0af94409b0f32aea5284b1290f50482770213a931c1a145d7cdea2e55b5ad4126010a81acc8560507dfb63bacda2815c13958d0140271a9689cc460168cb7bef2254c9cbd6a64c1d4da07c869b6e2cc2195594391ca49604396255e185cb36aed4eea108e66bc39ba48d38f3d6b75910b88a37d6b9c31047574e2dabfaa89a6546c9c455da42ce3b829fd91baf17b37ac55574d38874a797805fa1ffeae382b95214ecf8f502b41c77e3d80c6c13868ca389de505cedf09a94e16ff54dcd3d6d096af768d9fa1e217d62728c91d618cbe7f5001b9cfa10d9e3928522abac512c2ca32f4ad4f1fff5824e5df87911ab4f35aade3188893bc407f26b431e7b2afa96d5967f9c835d8b153e5c00812d820f0c7dc42609a811a391e30b2d65655cf628c7be2c0c7ef9173fc01ea3cc525d42c3ac36f6f626ac7b7af3565ab7978696b39cdcc6da9e3bd1eb44a58fdc2cb0d2b71cae1ad6bd18ed3c38699252eafce377258bd6163199dc29320761a182e1682223ea6da07f626aa250f4ecc4336c2729fec606d0ef7ec077045e11b4a8141bb7f0b261e1", 0x319}], 0x3, 0x0, 0x0, 0xffffffe0}, 0xe4020000}], 0x3e8, 0x4000000) preadv(0xffffffffffffffff, 0x0, 0x0, 0xd9f, 0x0) splice(0xffffffffffffffff, &(0x7f00000001c0)=0x8000, r0, &(0x7f0000000200)=0xffffffffffffffff, 0x200, 0x0) bpf$MAP_CREATE(0x0, &(0x7f0000000440)={0x1c, 0x3aa, 0x7, 0x6, 0x200, 0xffffffffffffffff, 0x81}, 0x40) mremap(&(0x7f0000005000/0x4000)=nil, 0x4000, 0x1000, 0x0, &(0x7f0000003000/0x1000)=nil) 16:42:12 executing program 5: perf_event_open(&(0x7f0000000040)={0x2, 0x80, 0x3a, 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, 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, 0xffffffffffffffff, 0x0) timer_create(0x0, 0x0, &(0x7f0000000080)) r0 = open$dir(&(0x7f0000000000)='.\x00', 0x0, 0x40) mkdirat(r0, &(0x7f0000000040)='./file0\x00', 0x181) r1 = socket$unix(0x1, 0x1, 0x0) r2 = socket$unix(0x1, 0x1, 0x0) perf_event_open(&(0x7f0000000100)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) openat$null(0xffffff9c, 0x0, 0x0, 0x0) bind$unix(r2, &(0x7f0000003000)=@abs={0x1}, 0x8) ioctl$FS_IOC_FIEMAP(r0, 0xc020660b, &(0x7f0000000400)=ANY=[@ANYBLOB="0400000000000000030000000400200001e80000018d2c0074000000000000000700000000000000ff0000000000000000080000000000000000000000000000000000000000000000010000000000000000000000000000ffff0000230000ec3e26e0e22f62895f710000000000008000000000000000000000000002000000ca0bfb1d1f00000000000000000000000001000100000000000200000000000000fbffffffffffffff00000000000000000000000000000000060000000da73ad295eaadd4dd9ed8ca565f2bb9088093e7f11532977508cb17d6331e4c7a676cdba39c3de9564e81d0d77a08da982081a8ea148de120fa576b182ec8702baebed7218625d840fb3a618b8ed381fb96ceb66cd6929844bf41b1867f783050e8b4232ce028385bc1578b16638260247fbe47feff1e1f068d3e901be5e03913c5ee0686072554b65bef5c185e58d32a00"/345]) listen(r2, 0x0) connect(r1, &(0x7f0000985ff8)=@un=@abs={0x1}, 0x8) r3 = syz_open_procfs(0x0, &(0x7f0000000080)='net/ip_tables_targets\x00') sendfile(r1, r3, 0x0, 0x800000bf) umount2(&(0x7f00000000c0)='./file0\x00', 0x3) perf_event_open(&(0x7f00000012c0)={0x2, 0x80, 0x60, 0x0, 0x4, 0x2, 0x0, 0x400, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c66, 0x8, 0x0, 0x0, 0x0, 0x6, 0x1000, 0x1, @perf_bp={&(0x7f0000000180)}, 0x80c20, 0x0, 0x2, 0x0, 0x3ffe, 0x3, 0x8000}, 0xffffffffffffffff, 0xfffffffffffffffc, 0xffffffffffffffff, 0x8) clone(0x180000105, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) perf_event_open(&(0x7f0000000200)={0x0, 0x80, 0x0, 0xac, 0x0, 0x20, 0x0, 0x0, 0x1804, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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, 0x0, 0x800000020000c49f, 0x800007c, 0x20000, 0x3}, 0x0, 0x2, 0xffffffffffffffff, 0x1) mount(0x0, &(0x7f0000000140)='./file0\x00', &(0x7f0000fb5ffc)='nfs\x00', 0x0, &(0x7f000000a000)) bpf$MAP_CREATE(0x0, &(0x7f00000001c0)={0x14, 0x36e, 0x0, 0x9, 0xa00, r3, 0x3ff, '\x00', 0x0, 0xffffffffffffffff, 0x1}, 0x40) [ 2027.048235] RDX: 0000000020000040 RSI: 0000000020000100 RDI: 00007f51b96da000 [ 2027.055681] RBP: 00007f51b96da040 R08: 00007f51b96da040 R09: 0000000020000040 [ 2027.063101] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000020000040 [ 2027.070383] R13: 0000000020000100 R14: 00007f51b96da000 R15: 0000000020011500 [ 2027.077661] Modules linked in: [ 2027.080978] CR2: 0000000000000000 16:42:12 executing program 5: r0 = creat(0x0, 0x0) perf_event_open(&(0x7f0000000100)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) syz_emit_ethernet(0x36, &(0x7f0000000000)={@broadcast, @random="e0d35b1004bb", @void, {@ipv4={0x800, @icmp={{0x5, 0x4, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x1, 0x0, @dev={0xac, 0x14, 0x14, 0xc}, @local}, @timestamp={0xd, 0x0, 0x0, 0x0, 0xfffd}}}}}, 0x0) clone(0x9000200, &(0x7f0000000040)="66f8aa687655a869fc311e9b3f4fd46847c7418d6f1da5633568acaa6866979589d7742c21ba8dc0507966b1ba9d1425f30704c322380aa011f322915dbc0dc94f9d8e6e2bbec9f0654deec63124918d8844bcdd3ceb8197f99b9f8fa1cca30107186538af1e97686a1adc4f9c201dfd1813ff3ce6a27399a99694355e1842cd478deb2fee474417826ab43764451852f937ea4c06ecee9c2a3a6d9c28eca25dd8d77e482b", &(0x7f0000000180), &(0x7f00000001c0), &(0x7f0000000200)="63b3697d3d8b05f7b4189495b8f00864ede1602f93ac6b244f7fd612fb7179da9477025034ca66933ba2eba3c5b9346ef47dcc1adcbae18fb6f1b9409f466c6541bcba856cf25ea40e24f9495f9c3c18c196af66d02554107455d751ed2635c438013e98e99d6bdfe509e7ecd5050818ea3cacfc1f04af8fd05fe75c8eba1b466bbf560fbfdded9bbcdcc1a6d7eca6e0c21fe921a02aafc4de95702a0cf962fd28d38e0660f52afdcd3529de01b327e8a48269e8a1cd1c835962fdcc21e250bc93f5") syz_emit_ethernet(0x0, 0x0, 0x0) mknod$loop(&(0x7f00000003c0)='./bus\x00', 0x0, 0x0) memfd_create(0x0, 0x0) syz_emit_ethernet(0x0, 0x0, 0x0) syz_emit_ethernet(0x0, 0x0, 0x0) mmap(&(0x7f000001d000/0x1000)=nil, 0x1000, 0x2, 0x2010, r0, 0x0) 16:42:12 executing program 1: r0 = socket$kcm(0x10, 0x2, 0x10) sendmsg$NLBL_CIPSOV4_C_REMOVE(0xffffffffffffffff, &(0x7f0000000240)={0x0, 0x0, &(0x7f0000000200)={&(0x7f0000001840)=ANY=[@ANYRES32, @ANYRES32], 0x3}}, 0x0) sendmsg$kcm(r0, &(0x7f0000000000)={0x0, 0xffffff70, &(0x7f0000000080)=[{&(0x7f0000000040)="2e48000037000505d25a80648c63940d0224fc60100604400a000000053582c137153e370948018035481700d1bd", 0x33fe0}], 0x1}, 0x0) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r3 = syz_genetlink_get_family_id$netlbl_cipso(&(0x7f0000000180), r2) sendmsg$NLBL_CIPSOV4_C_ADD(r1, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000040)={&(0x7f00000001c0)={0x40, r3, 0x1, 0x0, 0x0, {}, [@NLBL_CIPSOV4_A_DOI={0x8}, @NLBL_CIPSOV4_A_MLSLVLLST={0x18, 0x8, 0x0, 0x1, [{0x14, 0x7, 0x0, 0x1, [@NLBL_CIPSOV4_A_MLSLVLREM={0x8}, @NLBL_CIPSOV4_A_MLSLVLREM={0x8, 0x6, 0x64ba}]}]}, @NLBL_CIPSOV4_A_MTYPE={0x8, 0x2, 0x1}, @NLBL_CIPSOV4_A_TAGLST={0x4}]}, 0x40}}, 0x0) sendmsg$NLBL_CIPSOV4_C_REMOVE(0xffffffffffffffff, &(0x7f00000002c0)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x80000000}, 0xc, &(0x7f0000000280)={&(0x7f0000000100)={0xdc, r3, 0x100, 0x70bd28, 0x25dfdbfe, {}, [@NLBL_CIPSOV4_A_TAGLST={0x4c, 0x4, 0x0, 0x1, [{0x5, 0x3, 0x5}, {0x5, 0x3, 0x6}, {0x5, 0x3, 0x6}, {0x5, 0x3, 0x2}, {0x5, 0x3, 0x2}, {0x5, 0x3, 0x7}, {0x5, 0x3, 0x1}, {0x5, 0x3, 0x2}, {0x5, 0x3, 0x6}]}, @NLBL_CIPSOV4_A_DOI={0x8, 0x1, 0xfffffffffffffffc}, @NLBL_CIPSOV4_A_DOI={0x8}, @NLBL_CIPSOV4_A_MLSLVLLST={0x34, 0x8, 0x0, 0x1, [{0x24, 0x7, 0x0, 0x1, [@NLBL_CIPSOV4_A_MLSLVLREM={0x8, 0x6, 0xe4}, @NLBL_CIPSOV4_A_MLSLVLLOC={0x8, 0x5, 0x44912e60}, @NLBL_CIPSOV4_A_MLSLVLLOC={0x8, 0x5, 0x4c6b4ae8}, @NLBL_CIPSOV4_A_MLSLVLLOC={0x8, 0x5, 0x7cf6d98}]}, {0xc, 0x7, 0x0, 0x1, [@NLBL_CIPSOV4_A_MLSLVLLOC={0x8, 0x5, 0x5fa365f1}]}]}, @NLBL_CIPSOV4_A_TAGLST={0x1c, 0x4, 0x0, 0x1, [{0x5}, {0x5, 0x3, 0x7}, {0x5, 0x3, 0x1}]}, @NLBL_CIPSOV4_A_MTYPE={0x8, 0x2, 0x1}, @NLBL_CIPSOV4_A_TAGLST={0xc, 0x4, 0x0, 0x1, [{0x5}]}, @NLBL_CIPSOV4_A_DOI={0x8, 0x1, 0x1}]}, 0xdc}}, 0x4011) 16:42:12 executing program 0: perf_event_open(&(0x7f000001d000)={0x1, 0x80, 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, 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(0xa, 0x400000000001, 0x0) r1 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000040)='ns\x00') getdents64(r1, &(0x7f0000000080)=""/196, 0xc4) getdents64(r1, 0x0, 0x0) setsockopt$inet6_buf(r1, 0x29, 0x22, &(0x7f0000000000)="04306b31fe101c2a4bca5f540f79621f3720a83767d59f1b0098691c2b76983abec6284fd147798dc2eeed857c6ef0fe363d4468e00b62808583c784a3a5b55bc8a8c1662ea9a3efa0b6f87459b88228ec", 0x51) close(r0) r2 = socket$inet6_sctp(0xa, 0x801, 0x84) setsockopt$inet_sctp_SCTP_SOCKOPT_BINDX_ADD(r2, 0x84, 0x64, &(0x7f0000cf6fe4)=[@in6={0xa, 0x4e23, 0x0, @loopback}], 0x1c) connect$inet6(r2, &(0x7f0000000080)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) fcntl$setstatus(r0, 0x4, 0x42800) r3 = open(&(0x7f0000000080)='./bus\x00', 0x141042, 0x0) ftruncate(r3, 0x200002) sendfile(r0, r3, 0x0, 0x80001d00c0d0) socketpair$tipc(0x1e, 0x5, 0x0, &(0x7f0000000180)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$TUNSETLINK(r4, 0x8912, 0x400308) [ 2027.338478] ---[ end trace 592ef6b3c274cd9e ]--- [ 2027.345036] RIP: 0010: (null) [ 2027.349095] Code: Bad RIP value. [ 2027.363774] RSP: 0018:ffff88822cedf8a8 EFLAGS: 00010246 [ 2027.376074] RAX: dffffc0000000000 RBX: 1ffff110459dbf18 RCX: ffffc9000c355000 [ 2027.394073] RDX: 0000000000000000 RSI: ffff8880ae0cd000 RDI: ffff8880a20b67c0 [ 2027.417999] RBP: ffffffff8878d7c0 R08: 0000000000000000 R09: 0000000000000000 [ 2027.441510] R10: 0000000000000005 R11: 0000000000000000 R12: ffff8880ae0cd000 [ 2027.459248] R13: ffff8880a20b67c0 R14: ffff88822cedfa38 R15: ffff88822cedf8e0 [ 2027.474991] FS: 00007f51b96da700(0000) GS:ffff8880ba000000(0000) knlGS:0000000000000000 [ 2027.494602] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 2027.509576] CR2: 000000c04284b000 CR3: 000000022f4a5000 CR4: 00000000001426f0 [ 2027.528127] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 2027.538577] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 2027.548227] Kernel panic - not syncing: Fatal exception [ 2027.553698] Kernel Offset: disabled [ 2027.557405] Rebooting in 86400 seconds..