eb1bfb1c0b1c1b1c2b1c3b1c4b1c5b1c6b1c7b1c8b1c9b1cab1cbb1ccb1cdb1ceb1cfb1d0b1d1b1d2b1d3b1d4b1d5b1d6b1d7b1d8b1d9b1dab1dbb1dcb1ddb1deb1dfb1e0b1e1b1e2b1e3b1e4b1e5b1e6b1e7b1e8b1e9b1eab1ebb1ecb1edb1eeb1efb1f0b1f1b1f2b1f3b1f4b1f5b1f6b1f7b1f8b1f9b1fab1fbb1fcb1fdb1feb1ffb100b201b202b203b204b205b206b207b208b209b20ab20bb20cb20db20eb20fb210b211b212b213b214b215b216b217b218b219b21ab21bb21cb21db21eb21fb220b221b222b223b224b225b226b227b228b229b22ab22bb22cb22db22eb22fb230b231b232b233b234b235b236b237b238b239b23ab23bb23cb23db23eb23fb240b241b242b243b244b245b246b247b248b249b24ab24bb24cb24db24eb24fb250b251b252b253b254b255b256b257b258b259b25ab25bb25cb25db25eb25fb260b261b262b263b264b265b266b267b268b269b26ab26bb26cb26db26eb26fb270b271b272b273b274b275b276b277b278b279b27ab27bb27cb27db27eb27fb280b281b282b283b284b285b286b287b288b289b28ab28bb28cb28db28eb28fb290b291b292b293b294b295b296b297b298b299b29ab29bb29cb29db29eb29fb2a0b2a1b2a2b2a3b2a4b2a5b2a6b2a7b2a8b2a9b2aab2abb2acb2adb2aeb2afb2b0b2b1b2b2b2b3b2b4b2b5b2b6b2b7b2b8b2b9b2bab2bbb2bcb2bdb2beb2bfb2c0b2c1b2c2b2c3b2c4b2c5b2c6b2c7b2c8b2c9b2cab2cbb2ccb2cdb2ceb2cfb2d0b2d1b2d2b2d3b2d4b2d5b2d6b2d7b2d8b2d9b2dab2dbb2dcb2ddb2deb2dfb2e0b2e1b2e2b2e3b2e4b2e5b2e6b2e7b2e8b2e9b2eab2ebb2ecb2edb2eeb2efb2f0b2f1b2f2b2f3b2f4b2f5b2f6b2f7b2f8b2f9b2fab2fbb2fcb2fdb2feb2ffb200b301b302b303b304b305b306b307b308b309b30ab30bb30cb30db30eb30fb310b311b312b313b314b315b316b317b318b319b31ab31bb31cb31db31eb31fb320b321b322b323b324b325b326b327b328b329b32ab32bb32cb32db32eb32fb330b331b332b333b334b335b336b337b338b339b33ab33bb33cb33db33eb33fb340b341b342b343b344b345b346b347b348b349b34ab34bb34cb34db34eb34fb350b351b352b353b354b355b356b357b358b359b35ab35bb35cb35db35eb35fb360b361b362b363b364b365b366b367b368b369b36ab36bb36cb36db36eb36fb370b371b372b373b374b375b376b377b378b379b37ab37bb37cb37db37eb37fb380b381b382b383b384b385b386b387b388b389b38ab38bb38cb38db38eb38fb390b391b392b393b394b395b396b397b398b399b39ab39bb39cb39db39eb39fb3a0b3a1b3a2b3a3b3a4b3a5b3a6b3a7b3a8b3a9b3aab3abb3acb3adb3aeb3afb3b0b3b1b3b2b3b3b3b4b3b5b3b6b3b7b3b8b3b9b3bab3bbb3bcb3bdb3beb3bfb3c0b3c1b3c2b3c3b3c4b3c5b3c6b3c7b3c8b3c9b3cab3cbb3ccb3cdb3ceb3cfb3d0b3d1b3d2b3d3b3d4b3d5b3d6b3d7b3d8b3d9b3dab3dbb3dcb3ddb3deb3dfb3e0b3e1b3e2b3e3b3e4b3e5b3e6b3e7b3e8b3e9b3eab3ebb3ecb3edb3eeb3efb3f0b3f1b3f2b3f3b3f4b3f5b3f6b3f7b3f8b3f9b3fab3fbb3fcb3fdb3feb3ffb300b401b402b403b404b405b406b407b408b409b40ab40bb40cb40db40eb40fb410b411b412b413b414b415b416b417b418b419b41ab41bb41cb41db41eb41fb420b421b422b423b424b425b426b427b428b429b42ab42bb42cb42db42eb42fb430b431b432b433b434b435b436b437b438b439b43ab43bb43cb43db43eb43fb440b441b442b443b444b445b446b447b448b449b44ab44bb44cb44db44eb44fb450b451b452b453b454b455b456b457b458b459b45ab45bb45cb45db45eb45fb460b461b462b463b464b465b466b467b468b469b46ab46bb46cb46db46eb46fb470b471b472b473b474b475b476b477b478b479b47ab47bb47cb47db47eb47fb480b481b482b483b484b485b486b487b488b489b48ab48bb48cb48db48eb48fb490b491b492b493b494b495b496b497b498b499b49ab49bb49cb49db49eb49fb4a0b4a1b4a2b4a3b4a4b4a5b4a6b4a7b4a8b4a9b4aab4abb4acb4adb4aeb4afb4b0b4b1b4b2b4b3b4b4b4b5b4b6b4b7b4b8b4b9b4bab4bbb4bcb4bdb4beb4bfb4c0b4c1b4c2b4c3b4c4b4c5b4c6b4c7b4c8b4c9b4cab4cbb4ccb4cdb4ceb4cfb4d0b4d1b4d2b4d3b4d4b4d5b4d6b4d7b4d8b4d9b4dab4dbb4dcb4ddb4deb4dfb4e0b4e1b4e2b4e3b4e4b4e5b4e6b4e7b4e8b4e9b4eab4ebb4ecb4edb4eeb4efb4f0b4f1b4f2b4f3b4f4b4f5b4f6b4f7b4f8b4f9b4fab4fbb4fcb4fdb4feb4ffb400b501b502b503b504b505b506b507b508b509b50ab50bb50cb50db50eb50fb510b511b512b513b514b515b516b517b518b519b51ab51bb51cb51db51eb51fb520b521b522b523b524b525b526b527b528b529b52ab52bb52cb52db52eb52fb530b531b532b533b534b535b536b537b538b539b53ab53bb53cb53db53eb53fb540b541b542b543b544b545b546b547b548b549b54ab54bb54cb54db54eb54fb550b551b552b553b554b555b556b557b558b559b55ab55bb55cb55db55eb55fb560b561b562b563b564b565b566b567b568b569b56ab56bb56cb56db56eb56fb570b571b572b573b574b575b576b577b578b579b57ab57bb57cb57db57eb57fb580b581b582b583b584b585b586b587b588b589b58ab58bb58cb58db58eb58fb590b591b592b593b594b595b596b597b598b599b59ab59bb59cb59db59eb59fb5a0b5a1b5a2b5a3b5a4b5a5b5a6b5a7b5a8b5a9b5aab5abb5acb5adb5aeb5afb5b0b5b1b5b2b5b3b5b4b5b5b5b6b5b7b5b8b5b9b5bab5bbb5bcb5bdb5beb5bfb5c0b5c1b5c2b5c3b5c4b5c5b5c6b5c7b5c8b5c9b5cab5cbb5ccb5cdb5ceb5cfb5d0b5d1b5d2b5d3b5d4b5d5b5d6b5d7b5d8b5d9b5dab5dbb5dcb5ddb5deb5dfb5e0b5e1b5e2b5e3b5e4b5e5b5e6b5e7b5e8b5e9b5eab5ebb5ecb5edb5eeb5efb5f0b5f1b5f2b5f3b5f4b5f5b5f6b5f7b5f8b5f9b5fab5fbb5fcb5fdb5feb5ffb500b601b602b603b604b605b606b607b608b609b60ab60bb60cb60db60eb60fb610b611b612b613b614b615b616b617b618b619b61ab61bb61cb61db61eb61fb620b621b622b623b624b625b626b627b628b629b62ab62bb62cb62db62eb62fb630b631b632b633b634b635b636b637b638b639b63ab63bb63cb63db63eb63fb640b641b642b643b644b645b646b647b648b649b64ab64bb64cb64db64eb64fb650b651b652b653b654b655b656b657b658b659b65ab65bb65cb65db65eb65fb660b661b662b663b664b665b666b667b668b669b66ab66bb66cb66db66eb66fb670b671b672b673b674b675b676b677b678b679b67ab67bb67cb67db67eb67fb680b681b682b683b684b685b686b687b688b689b68ab68bb68cb68db68eb68fb690b691b692b693b694b695b696b697b698b699b69ab69bb69cb69db69eb69fb6a0b6a1b6a2b6a3b6a4b6a5b6a6b6a7b6a8b6a9b6aab6abb6acb6adb6aeb6afb6b0b6b1b6b2b6b3b6b4b6b5b6b6b6b7b6b8b6b9b6bab6bbb6bcb6bdb6beb6bfb6c0b6c1b6c2b6c3b6c4b6c5b6c6b6c7b6c8b6c9b6cab6cbb6ccb6cdb6ceb6cfb6d0b6d1b6d2b6d3b6d4b6d5b6d6b6d7b6d8b6d9b6dab6dbb6dcb6ddb6deb6dfb6e0b6e1b6e2b6e3b6e4b6e5b6e6b6e7b6e8b6e9b6eab6ebb6ecb6edb6eeb6efb6f0b6f1b6f2b6f3b6f4b6f5b6f6b6f7b6f8b6f9b6fab6fbb6fcb6fdb6feb6ffb600b701b702b703b704b705b706b707b708b709b70ab70bb70cb70db70eb70fb710b711b712b713b714b715b716b717b718b719b71ab71bb71cb71db71eb71fb720b721b722b723b724b725b726b727b728b729b72ab72bb72cb72db72eb72fb730b731b732b733b734b735b736b737b738b739b73ab73bb73cb73db73eb73fb740b741b742b743b744b745b746b747b748b749b74ab74bb74cb74db74eb74fb750b751b752b753b754b755b756b757b758b759b75ab75bb75cb75db75eb75fb760b761b762b763b764b765b766b767b768b769b76ab76bb76cb76db76eb76fb770b771b772b773b774b775b776b777b778b779b77ab77bb77cb77db77eb77fb780b781b782b783b784b785b786b787b788b789b78ab78bb78cb78db78eb78fb790b791b792b793b794b795b796b797b798b799b79ab79bb79cb79db79eb79fb7a0b7a1b7a2b7a3b7a4b7a5b7a6b7a7b7a8b7a9b7aab7abb7acb7adb7aeb7afb7b0b7b1b7b2b7b3b7b4b7b5b7b6b7b7b7b8b7b9b7bab7bbb7bcb7bdb7beb7bfb7c0b7c1b7c2b7c3b7c4b7c5b7c6b7c7b7c8b7c9b7cab7cbb7ccb7cdb7ceb7cfb7d0b7d1b7d2b7d3b7d4b7d5b7d6b7d7b7d8b7d9b7dab7dbb7dcb7ddb7deb7dfb7e0b7e1b7e2b7e3b7e4b7e5b7e6b7e7b7e8b7e9b7eab7ebb7ecb7edb7eeb7efb7f0b7f1b7f2b7f3b7f4b7f5b7f6b7f7b7f8b7f9b7fab7fbb7fcb7fdb7feb7ffb700b801b802b803b804b805b806b807b808b809b80ab80bb80cb80db80eb80fb810b811b812b813b814b815b816b817b818b819b81ab81bb81cb81db81eb81fb820b821b822b823b824b825b826b827b828b829b82ab82bb82cb82db82eb82fb830b831b832b833b834b835b836b837b838b839b83ab83bb83cb83db83eb83fb840b841b842b843b844b845b846b847b848b849b84ab84bb84cb84db84eb84fb850b851b852b853b854b855b856b857b858b859b85ab85bb85cb85db85eb85fb860b861b862b863b864b865b866b867b868b869b86ab86bb86cb86db86eb86fb870b871b872b873b874b875b876b877b878b879b87ab87bb87cb87db87eb87fb880b881b882b883b884b885b886b887b888b889b88ab88bb88cb88db88eb88fb890b891b892b893b894b895b896b897b898b899b89ab89bb89cb89db89eb89fb8a0b8a1b8a2b8a3b8a4b8a5b8a6b8a7b8a8b8a9b8aab8abb8acb8adb8aeb8afb8b0b8b1b8b2b8b3b8b4b8b5b8b6b8b7b8b8b8b9b8bab8bbb8bcb8bdb8beb8bfb8c0b8c1b8c2b8c3b8c4b8c5b8c6b8c7b8c8b8c9b8cab8cbb8ccb8cdb8ceb8cfb8d0b8d1b8d2b8d3b8d4b8d5b8d6b8d7b8d8b8d9b8dab8dbb8dcb8ddb8deb8dfb8e0b8e1b8e2b8e3b8e4b8e5b8e6b8e7b8e8b8e9b8eab8ebb8ecb8edb8eeb8efb8f0b8f1b8f2b8f3b8f4b8f5b8f6b8f7b8f8b8f9b8fab8fbb8fcb8fdb8feb8ffb800b901b902b903b904b905b906b907b908b909b90ab90bb90cb90db90eb90fb910b911b912b913b914b915b916b917b918b919b91ab91bb91cb91db91eb91fb920b921b922b923b924b925b926b927b928b929b92ab92bb92cb92db92eb92fb930b931b932b933b934b935b936b937b938b939b93ab93bb93cb93db93eb93fb940b941b942b943b944b945b946b947b948b949b94ab94bb94cb94db94eb94fb950b951b952b953b954b955b956b957b958b959b95ab95bb95cb95db95eb95fb960b961b962b963b964b965b966b967b968b969b96ab96bb96cb96db96eb96fb970b971b972b973b974b975b976b977b978b979b97ab97bb97cb97db97eb97fb980b981b982b983b984b985b986b987b988b989b98ab98bb98cb98db98eb98fb990b991b992b993b994b995b996b997b998b999b99ab99bb99cb99db99eb99fb9a0b9a1b9a2b9a3b9a4b9a5b9a6b9a7b9a8b9a9b9aab9abb9acb9adb9aeb9afb9b0b9b1b9b2b9b3b9b4b9b5b9b6b9b7b9b8b9b9b9bab9bbb9bcb9bdb9beb9bfb9c0b9c1b9c2b9c3b9c4b9c5b9c6b9c7b9c8b9c9b9cab9cbb9ccb9cdb9ceb9cfb9d0b9d1b9d2b9d3b9d4b9d5b9d6b9d7b9d8b9d9b9dab9dbb9dcb9ddb9deb9dfb9e0b9e1b9e2b9e3b9e4b9e5b9e6b9e7b9e8b9e9b9eab9ebb9ecb9edb9eeb9efb9f0b9f1b9f2b9f3b9f4b9f5b9f6b9f7b9f8b9f9b9fab9fbb9fcb9fdb9feb9ffb900ba01ba02ba03ba04ba05ba06ba07ba08ba09ba0aba0bba0cba0dba0eba0fba10ba11ba12ba13ba14ba15ba16ba17ba18ba19ba1aba1bba1cba1dba1eba1fba20ba21ba22ba23ba24ba25ba26ba27ba28ba29ba2aba2bba2cba2dba2eba2fba30ba31ba32ba33ba34ba35ba36ba37ba38ba39ba3aba3bba3cba3dba3eba3fba40ba41ba42ba43ba44ba45ba46ba47ba48ba49ba4aba4bba4cba4dba4eba4fba50ba51ba52ba53ba54ba55ba56ba57ba58ba59ba5aba5bba5cba5dba5eba5fba60ba61ba62ba63ba64ba65ba66ba67ba68ba69ba6aba6bba6cba6dba6eba6fba70ba71ba72ba73ba74ba75ba76ba77ba78ba79ba7aba7bba7cba7dba7eba7fba80ba81ba82ba83ba84ba85ba86ba87ba88ba89ba8aba8bba8cba8dba8eba8fba90ba91ba92ba93ba94ba95ba96ba97ba98ba99ba9aba9bba9cba9dba9eba9fbaa0baa1baa2baa3baa4baa5baa6baa7baa8baa9baaabaabbaacbaadbaaebaafbab0bab1bab2bab3bab4bab5bab6bab7bab8bab9babababbbabcbabdbabebabfbac0bac1bac2bac3bac4bac5bac6bac7bac8bac9bacabacbbaccbacdbacebacfbad0bad1bad2bad3bad4bad5bad6bad7bad8bad9badabadbbadcbaddbadebadfbae0bae1bae2bae3bae4bae5bae6bae7bae8bae9baeabaebbaecbaedbaeebaefbaf0baf1baf2baf3baf4baf5baf6baf7baf8baf9bafabafbbafcbafdbafebaffba00bb01bb02bb03bb04bb05bb06bb07bb08bb09bb0abb0bbb0cbb0dbb0ebb0fbb10bb11bb12bb13bb14bb15bb16bb17bb18bb19bb1abb1bbb1cbb1dbb1ebb1fbb20bb21bb22bb23bb24bb25bb26bb27bb28bb29bb2abb2bbb2cbb2dbb2ebb2fbb30bb31bb32bb33bb34bb35bb36bb37bb38bb39bb3abb3bbb3cbb3dbb3ebb3fbb40bb41bb42bb43bb44bb45bb46bb47bb48bb49bb4abb4bbb4cbb4dbb4ebb4fbb50bb51bb52bb53bb54bb55bb56bb57bb58bb59bb5abb5bbb5cbb5dbb5ebb5fbb60bb61bb62bb63bb64bb65bb66bb67bb68bb69bb6abb6bbb6cbb6dbb6ebb6fbb70bb71bb72bb73bb74bb75bb76bb77bb78bb79bb7abb7bbb7cbb7dbb7ebb7fbb80bb81bb82bb83bb84bb85bb86bb87bb88bb89bb8abb8bbb8cbb8dbb8ebb8fbb90bb91bb92bb93bb94bb95bb96bb97bb98bb99bb9abb9bbb9cbb9dbb9ebb9fbba0bba1bba2bba3bba4bba5bba6bba7bba8bba9bbaabbabbbacbbadbbaebbafbbb0bbb1bbb2bbb3bbb4bbb5bbb6bbb7bbb8bbb9bbbabbbbbbbcbbbdbbbebbbfbbc0bbc1bbc2bbc3bbc4bbc5bbc6bbc7bbc8bbc9bbcabbcbbbccbbcdbbcebbcfbbd0bbd1bbd2bbd3bbd4bbd5bbd6bbd7bbd8bbd9bbdabbdbbbdcbbddbbdebbdfbbe0bbe1bbe2bbe3bbe4bbe5bbe6bbe7bbe8bbe9bbeabbebbbecbbedbbeebbefbbf0bbf1bbf2bbf3bbf4bbf5bbf6bbf7bbf8bbf9bbfabbfbbbfcbbfdbbfebbffbb00bc01bc02bc03bc04bc05bc06bc07bc08bc09bc0abc0bbc0cbc0dbc0ebc0fbc10bc11bc12bc13bc14bc15bc16bc17bc18bc19bc1abc1bbc1cbc1dbc1ebc1fbc20bc21bc22bc23bc24bc25bc26bc27bc28bc29bc2abc2bbc2cbc2dbc2ebc2fbc30bc31bc32bc33bc34bc35bc36bc37bc38bc39bc3abc3bbc3cbc3dbc3ebc3fbc40bc41bc42bc43bc44bc45bc46bc47bc48bc49bc4abc4bbc4cbc4dbc4ebc4fbc50bc51bc52bc53bc54bc55bc56bc57bc58bc59bc5abc5bbc5cbc5dbc5ebc5fbc60bc61bc62bc63bc64bc65bc66bc67bc68bc69bc6abc6bbc6cbc6dbc6ebc6fbc70bc71bc72bc73bc74bc75bc76bc77bc78bc79bc7abc7bbc7cbc7dbc7ebc7fbc80bc81bc82bc83bc84bc85bc86bc87bc88bc89bc8abc8bbc8cbc8dbc8ebc8fbc90bc91bc92bc93bc94bc95bc96bc97bc98bc99bc9abc9bbc9cbc9dbc9ebc9fbca0bca1bca2bca3bca4bca5bca6bca7bca8bca9bcaabcabbcacbcadbcaebcafbcb0bcb1bcb2bcb3bcb4bcb5bcb6bcb7bcb8bcb9bcbabcbbbcbcbcbdbcbebcbfbcc0bcc1bcc2bcc3bcc4bcc5bcc6bcc7bcc8bcc9bccabccbbcccbccdbccebccfbcd0bcd1bcd2bcd3bcd4bcd5bcd6bcd7bcd8bcd9bcdabcdbbcdcbcddbcdebcdfbce0bce1bce2bce3bce4bce5bce6bce7bce8bce9bceabcebbcecbcedbceebcefbcf0bcf1bcf2bcf3bcf4bcf5bcf6bcf7bcf8bcf9bcfabcfbbcfcbcfdbcfebcffbc00bd01bd02bd03bd04bd05bd06bd07bd08bd09bd0abd0bbd0cbd0dbd0ebd0fbd10bd11bd12bd13bd14bd15bd16bd17bd18bd19bd1abd1bbd1cbd1dbd1ebd1fbd20bd21bd22bd23bd24bd25bd26bd27bd28bd29bd2abd2bbd2cbd2dbd2ebd2fbd30bd31bd32bd33bd34bd35bd36bd37bd38bd39bd3abd3bbd3cbd3dbd3ebd3fbd40bd41bd42bd43bd44bd45bd46bd47bd48bd49bd4abd4bbd4cbd4dbd4ebd4fbd50bd51bd52bd53bd54bd55bd56bd57bd58bd59bd5abd5bbd5cbd5dbd5ebd5fbd60bd61bd62bd63bd64bd65bd66bd67bd68bd69bd6abd6bbd6cbd6dbd6ebd6fbd70bd71bd72bd73bd74bd75bd76bd77bd78bd79bd7abd7bbd7cbd7dbd7ebd7fbd80bd81bd82bd83bd84bd85bd86bd87bd88bd89bd8abd8bbd8cbd8dbd8ebd8fbd90bd91bd92bd93bd94bd95bd96bd97bd98bd99bd9abd9bbd9cbd9dbd9ebd9fbda0bda1bda2bda3bda4bda5bda6bda7bda8bda9bdaabdabbdacbdadbdaebdafbdb0bdb1bdb2bdb3bdb4bdb5bdb6bdb7bdb8bdb9bdbabdbbbdbcbdbdbdbebdbfbdc0bdc1bdc2bdc3bdc4bdc5bdc6bdc7bdc8bdc9bdcabdcbbdccbdcdbdcebdcfbdd0bdd1bdd2bdd3bdd4bdd5bdd6bdd7bdd8bdd9bddabddbbddcbdddbddebddfbde0bde1bde2bde3bde4bde5bde6bde7bde8bde9bdeabdebbdecbdedbdeebdefbdf0bdf1bdf2bdf3bdf4bdf5bdf6bdf7bdf8bdf9bdfabdfbbdfcbdfdbdfebdffbd00be01be02be03be04be05be06be07be08be09be0abe0bbe0cbe0dbe0ebe0fbe10be11be12be13be14be15be16be17be18be19be1abe1bbe1cbe1dbe1ebe1fbe20be21be22be23be24be25be26be27be28be29be2abe2bbe2cbe2dbe2ebe2fbe30be31be32be33be34be35be36be37be38be39be3abe3bbe3cbe3dbe3ebe3fbe40be41be42be43be44be45be46be47be48be49be4abe4bbe4cbe4dbe4ebe4fbe50be51be52be53be54be55be56be57be58be59be5abe5bbe5cbe5dbe5ebe5fbe60be61be62be63be64be65be66be67be68be69be6abe6bbe6cbe6dbe6ebe6fbe70be71be72be73be74be75be76be77be78be79be7abe7bbe7cbe7dbe7ebe7fbe80be81be82be83be84be85be86be87be88be89be8abe8bbe8cbe8dbe8ebe8fbe90be91be92be93be94be95be96be97be98be99be9abe9bbe9cbe9dbe9ebe9fbea0bea1bea2bea3bea4bea5bea6bea7bea8bea9beaabeabbeacbeadbeaebeafbeb0beb1beb2beb3beb4beb5beb6beb7beb8beb9bebabebbbebcbebdbebebebfbec0bec1bec2bec3bec4bec5bec6bec7bec8bec9becabecbbeccbecdbecebecfbed0bed1bed2bed3bed4bed5bed6bed7bed8bed9bedabedbbedcbeddbedebedfbee0bee1bee2bee3bee4bee5bee6bee7bee8bee9beeabeebbeecbeedbeeebeefbef0bef1bef2bef3bef4bef5bef6bef7bef8bef9befabefbbefcbefdbefebeffbe00bf01bf02bf03bf04bf05bf06bf07bf08bf09bf0abf0bbf0cbf0dbf0ebf0fbf10bf11bf12bf13bf14bf15bf16bf17bf18bf19bf1abf1bbf1cbf1dbf1ebf1fbf20bf21bf22bf23bf24bf25bf26bf27bf28bf29bf2abf2bbf2cbf2dbf2ebf2fbf30bf31bf32bf33bf34bf35bf36bf37bf38bf39bf3abf3bbf3cbf3dbf3ebf3fbf40bf41bf42bf43bf44bf45bf46bf47bf48bf49bf4abf4bbf4cbf4dbf4ebf4fbf50bf51bf52bf53bf54bf55bf56bf57bf58bf59bf5abf5bbf5cbf5dbf5ebf5fbf60bf61bf62bf63bf64bf65bf66bf67bf68bf69bf6abf6bbf6cbf6dbf6ebf6fbf70bf71bf72bf73bf74bf75bf76bf77bf78bf79bf7abf7bbf7cbf7dbf7ebf7fbf80bf81bf82bf83bf84bf85bf86bf87bf88bf89bf8abf8bbf8cbf8dbf8ebf8fbf90bf91bf92bf93bf94bf95bf96bf97bf98bf99bf9abf9bbf9cbf9dbf9ebf9fbfa0bfa1bfa2bfa3bfa4bfa5bfa6bfa7bfa8bfa9bfaabfabbfacbfadbfaebfafbfb0bfb1bfb2bfb3bfb4bfb5bfb6bfb7bfb8bfb9bfbabfbbbfbcbfbdbfbebfbfbfc0bfc1bfc2bfc3bfc4bfc5bfc6bfc7bfc8bfc9bfcabfcbbfccbfcdbfcebfcfbfd0bfd1bfd2bfd3bfd4bfd5bfd6bfd7bfd8bfd9bfdabfdbbfdcbfddbfdebfdfbfe0bfe1bfe2bfe3bfe4bfe5bfe6bfe7bfe8bfe9bfeabfebbfecbfedbfeebfefbff0bff1bff2bff3bff4bff5bff6bff7bff8bff9bffabffbbffcbffdbffebfffbf00c001c002c003c004c005c006c007c008c009c00ac00bc00cc00dc00ec00fc010c011c012c013c014c015c016c017c018c019c01ac01bc01cc01dc01ec01fc020c021c022c023c024c025c026c027c028c029c02ac02bc02cc02dc02ec02fc030c031c032c033c034c035c036c037c038c039c03ac03bc03cc03dc03ec03fc040c041c042c043c044c045c046c047c048c049c04ac04bc04cc04dc04ec04fc050c051c052c053c054c055c056c057c058c059c05ac05bc05cc05dc05ec05fc060c061c062c063c064c065c066c067c068c069c06ac06bc06cc06dc06ec06fc070c071c072c073c074c075c076c077c078c079c07ac07bc07cc07dc07ec07fc080c081c082c083c084c085c086c087c088c089c08ac08bc08cc08dc08ec08fc090c091c092c093c094c095c096c097c098c099c09ac09bc09cc09dc09ec09fc0a0c0a1c0a2c0a3c0a4c0a5c0a6c0a7c0a8c0a9c0aac0abc0acc0adc0aec0afc0b0c0b1c0b2c0b3c0b4c0b5c0b6c0b7c0b8c0b9c0bac0bbc0bcc0bdc0bec0bfc0c0c0c1c0c2c0c3c0c4c0c5c0c6c0c7c0c8c0c9c0cac0cbc0ccc0cdc0cec0cfc0d0c0d1c0d2c0d3c0d4c0d5c0d6c0d7c0d8c0d9c0dac0dbc0dcc0ddc0dec0dfc0e0c0e1c0e2c0e3c0e4c0e5c0e6c0e7c0e8c0e9c0eac0ebc0ecc0edc0eec0efc0f0c0f1c0f2c0f3c0f4c0f5c0f6c0f7c0f8c0f9c0fac0fbc0fcc0fdc0fec0ffc000c101c102c103c104c105c106c107c108c109c10ac10bc10cc10dc10ec10fc110c111c112c113c114c115c116c117c118c119c11ac11bc11cc11dc11ec11fc120c121c122c123c124c125c126c127c128c129c12ac12bc12cc12dc12ec12fc130c131c132c133c134c135c136c137c138c139c13ac13bc13cc13dc13ec13fc140c141c142c143c144c145c146c147c148c149c14ac14bc14cc14dc14ec14fc150c151c152c153c154c155c156c157c158c159c15ac15bc15cc15dc15ec15fc160c161c162c163c164c165c166c167c168c169c16ac16bc16cc16dc16ec16fc170c171c172c173c174c175c176c177c178c179c17ac17bc17cc17dc17ec17fc180c181c182c183c184c185c186c187c188c189c18ac18bc18cc18dc18ec18fc190c191c192c193c194c195c196c197c198c199c19ac19bc19cc19dc19ec19fc1a0c1a1c1a2c1a3c1a4c1a5c1a6c1a7c1a8c1a9c1aac1abc1acc1adc1aec1afc1b0c1b1c1b2c1b3c1b4c1b5c1b6c1b7c1b8c1b9c1bac1bbc1bcc1bdc1bec1bfc1c0c1c1c1c2c1c3c1c4c1c5c1c6c1c7c1c8c1c9c1cac1cbc1ccc1cdc1cec1cfc1d0c1d1c1d2c1d3c1d4c1d5c1d6c1d7c1d8c1d9c1dac1dbc1dcc1ddc1dec1dfc1e0c1e1c1e2c1e3c1e4c1e5c1e6c1e7c1e8c1e9c1eac1ebc1ecc1edc1eec1efc1f0c1f1c1f2c1f3c1f4c1f5c1f6c1f7c1f8c1f9c1fac1fbc1fcc1fdc1fec1ffc100c201c202c203c204c205c206c207c208c209c20ac20bc20cc20dc20ec20fc210c211c212c213c214c215c216c217c218c219c21ac21bc21cc21dc21ec21fc220c221c222c223c224c225c226c227c228c229c22ac22bc22cc22dc22ec22fc230c231c232c233c234c235c236c237c238c239c23ac23bc23cc23dc23ec23fc240c241c242c243c244c245c246c247c248c249c24ac24bc24cc24dc24ec24fc250c251c252c253c254c255c256c257c258c259c25ac25bc25cc25dc25ec25fc260c261c262c263c264c265c266c267c268c269c26ac26bc26cc26dc26ec26fc270c271c272c273c274c275c276c277c278c279c27ac27bc27cc27dc27ec27fc280c281c282c283c284c285c286c287c288c289c28ac28bc28cc28dc28ec28fc290c291c292c293c294c295c296c297c298c299c29ac29bc29cc29dc29ec29fc2a0c2a1c2a2c2a3c2a4c2a5c2a6c2a7c2a8c2a9c2aac2abc2acc2adc2aec2afc2b0c2b1c2b2c2b3c2b4c2b5c2b6c2b7c2b8c2b9c2bac2bbc2bcc2bdc2bec2bfc2c0c2c1c2c2c2c3c2c4c2c5c2c6c2c7c2c8c2c9c2cac2cbc2ccc2cdc2cec2cfc2d0c2d1c2d2c2d3c2d4c2d5c2d6c2d7c2d8c2d9c2dac2dbc2dcc2ddc2dec2dfc2e0c2e1c2e2c2e3c2e4c2e5c2e6c2e7c2e8c2e9c2eac2ebc2ecc2edc2eec2efc2f0c2f1c2f2c2f3c2f4c2f5c2f6c2f7c2f8c2f9c2fac2fbc2fcc2fdc2fec2ffc200c301c302c303c304c305c306c307c308c309c30ac30bc30cc30dc30ec30fc310c311c312c313c314c315c316c317c318c319c31ac31bc31cc31dc31ec31fc320c321c322c323c324c325c326c327c328c329c32ac32bc32cc32dc32ec32fc330c331c332c333c334c335c336c337c338c339c33ac33bc33cc33dc33ec33fc340c341c342c343c344c345c346c347c348c349c34ac34bc34cc34dc34ec34fc350c351c352c353c354c355c356c357c358c359c35ac35bc35cc35dc35ec35fc360c361c362c363c364c365c366c367c368c369c36ac36bc36cc36dc36ec36fc370c371c372c373c374c375c376c377c378c379c37ac37bc37cc37dc37ec37fc380c381c382c383c384c385c386c387c388c389c38ac38bc38cc38dc38ec38fc390c391c392c393c394c395c396c397c398c399c39ac39bc39cc39dc39ec39fc3a0c3a1c3a2c3a3c3a4c3a5c3a6c3a7c3a8c3a9c3aac3abc3acc3adc3aec3afc3b0c3b1c3b2c3b3c3b4c3b5c3b6c3b7c3b8c3b9c3bac3bbc3bcc3bdc3bec3bfc3c0c3c1c3c2c3c3c3c4c3c5c3c6c3c7c3c8c3c9c3cac3cbc3ccc3cdc3cec3cfc3d0c3d1c3d2c3d3c3d4c3d5c3d6c3d7c3d8c3d9c3dac3dbc3dcc3ddc3dec3dfc3e0c3e1c3e2c3e3c3e4c3e5c3e6c3e7c3e8c3e9c3eac3ebc3ecc3edc3eec3efc3f0c3f1c3f2c3f3c3f4c3f5c3f6c3f7c3f8c3f9c3fac3fbc3fcc3fdc3fec3ffc300c401c402c403c404c405c406c407c408c409c40ac40bc40cc40dc40ec40fc410c411c412c413c414c415c416c417c418c419c41ac41bc41cc41dc41ec41fc420c421c422c423c424c425c426c427c428c429c42ac42bc42cc42dc42ec42fc430c431c432c433c434c435c436c437c438c439c43ac43bc43cc43dc43ec43fc440c441c442c443c444c445c446c447c448c449c44ac44bc44cc44dc44ec44fc450c451c452c453c454c455c456c457c458c459c45ac45bc45cc45dc45ec45fc460c461c462c463c464c465c466c467c468c469c46ac46bc46cc46dc46ec46fc470c471c472c473c474c475c476c477c478c479c47ac47bc47cc47dc47ec47fc480c481c482c483c484c485c486c487c488c489c48ac48bc48cc48dc48ec48fc490c491c492c493c494c495c496c497c498c499c49ac49bc49cc49dc49ec49fc4a0c4a1c4a2c4a3c4a4c4a5c4a6c4a7c4a8c4a9c4aac4abc4acc4adc4aec4afc4b0c4b1c4b2c4b3c4b4c4b5c4b6c4b7c4b8c4b9c4bac4bbc4bcc4bdc4bec4bfc4c0c4c1c4c2c4c3c4c4c4c5c4c6c4c7c4c8c4c9c4cac4cbc4ccc4cdc4cec4cfc4d0c4d1c4d2c4d3c4d4c4d5c4d6c4d7c4d8c4d9c4dac4dbc4dcc4ddc4dec4dfc4e0c4e1c4e2c4e3c4e4c4e5c4e6c4e7c4e8c4e9c4eac4ebc4ecc4edc4eec4efc4f0c4f1c4f2c4f3c4f4c4f5c4f6c4f7c4f8c4f9c4fac4fbc4fcc4fdc4fec4ffc400c501c502c503c504c505c506c507c508c509c50ac50bc50cc50dc50ec50fc510c511c512c513c514c515c516c517c518c519c51ac51bc51cc51dc51ec51fc520c521c522c523c524c525c526c527c528c529c52ac52bc52cc52dc52ec52fc530c531c532c533c534c535c536c537c538c539c53ac53bc53cc53dc53ec53fc540c541c542c543c544c545c546c547c548c549c54ac54bc54cc54dc54ec54fc550c551c552c553c554c555c556c557c558c559c55ac55bc55cc55dc55ec55fc560c561c562c563c564c565c566c567c568c569c56ac56bc56cc56dc56ec56fc570c571c572c573c574c575c576c577c578c579c57ac57bc57cc57dc57ec57fc580c581c582c583c584c585c586c587c588c589c58ac58bc58cc58dc58ec58fc590c591c592c593c594c595c596c597c598c599c59ac59bc59cc59dc59ec59fc5a0c5a1c5a2c5a3c5a4c5a5c5a6c5a7c5a8c5a9c5aac5abc5acc5adc5aec5afc5b0c5b1c5b2c5b3c5b4c5b5c5b6c5b7c5b8c5b9c5bac5bbc5bcc5bdc5bec5bfc5c0c5c1c5c2c5c3c5c4c5c5c5c6c5c7c5c8c5c9c5cac5cbc5ccc5cdc5cec5cfc5d0c5d1c5d2c5d3c5d4c5d5c5d6c5d7c5d8c5d9c5dac5dbc5dcc5ddc5dec5dfc5e0c5e1c5e2c5e3c5e4c5e5c5e6c5e7c5e8c5e9c5eac5ebc5ecc5edc5eec5efc5f0c5f1c5f2c5f3c5f4c5f5c5f6c5f7c5f8c5f9c5fac5fbc5fcc5fdc5fec5ffc500c601c602c603c604c605c606c607c608c609c60ac60bc60cc60dc60ec60fc610c611c612c613c614c615c616c617c618c619c61ac61bc61cc61dc61ec61fc620c621c622c623c624c625c626c627c628c629c62ac62bc62cc62dc62ec62fc630c631c632c633c634c635c636c637c638c639c63ac63bc63cc63dc63ec63fc640c641c642c643c644c645c646c647c648c649c64ac64bc64cc64dc64ec64fc650c651c652c653c654c655c656c657c658c659c65ac65bc65cc65dc65ec65fc660c661c662c663c664c665c666c667c668c669c66ac66bc66cc66dc66ec66fc670c671c672c673c674c675c676c677c678c679c67ac67bc67cc67dc67ec67fc680c681c682c683c684c685c686c687c688c689c68ac68bc68cc68dc68ec68fc690c691c692c693c694c695c696c697c698c699c69ac69bc69cc69dc69ec69fc6a0c6a1c6a2c6a3c6a4c6a5c6a6c6a7c6a8c6a9c6aac6abc6acc6adc6aec6afc6b0c6b1c6b2c6b3c6b4c6b5c6b6c6b7c6b8c6b9c6bac6bbc6bcc6bdc6bec6bfc6c0c6c1c6c2c6c3c6c4c6c5c6c6c6c7c6c8c6c9c6cac6cbc6ccc6cdc6cec6cfc6d0c6d1c6d2c6d3c6d4c6d5c6d6c6d7c6d8c6d9c6dac6dbc6dcc6ddc6dec6dfc6e0c6e1c6e2c6e3c6e4c6e5c6e6c6e7c6e8c6e9c6eac6ebc6ecc6edc6eec6efc6f0c6f1c6f2c6f3c6f4c6f5c6f6c6f7c6f8c6f9c6fac6fbc6fcc6fdc6fec6ffc600c701c702c703c704c705c706c707c708c709c70ac70bc70cc70dc70ec70fc710c711c712c713c714c715c716c717c718c719c71ac71bc71cc71dc71ec71fc720c721c722c723c724c725c726c727c728c729c72ac72bc72cc72dc72ec72fc730c731c732c733c734c735c736c737c738c739c73ac73bc73cc73dc73ec73fc740c741c742c743c744c745c746c747c748c749c74ac74bc74cc74dc74ec74fc750c751c752c753c754c755c756c757c758c759c75ac75bc75cc75dc75ec75fc760c761c762c763c764c765c766c767c768c769c76ac76bc76cc76dc76ec76fc770c771c772c773c774c775c776c777c778c779c77ac77bc77cc77dc77ec77fc780c781c782c783c784c785c786c787c788c789c78ac78bc78cc78dc78ec78fc790c791c792c793c794c795c796c797c798c799c79ac79bc79cc79dc79ec79fc7a0c7a1c7a2c7a3c7a4c7a5c7a6c7a7c7a8c7a9c7aac7abc7acc7adc7aec7afc7b0c7b1c7b2c7b3c7b4c7b5c7b6c7b7c7b8c7b9c7bac7bbc7bcc7bdc7bec7bfc7c0c7c1c7c2c7c3c7c4c7c5c7c6c7c7c7c8c7c9c7cac7cbc7ccc7cdc7cec7cfc7d0c7d1c7d2c7d3c7d4c7d5c7d6c7d7c7d8c7d9c7dac7dbc7dcc7ddc7dec7dfc7e0c7e1c7e2c7e3c7e4c7e5c7e6c7e7c7e8c7e9c7eac7ebc7ecc7edc7eec7efc7f0c7f1c7f2c7f3c7f4c7f5c7f6c7f7c7f8c7f9c7fac7fbc7fcc7fdc7fec7ffc700c801c802c803c804c805c806c807c808c809c80ac80bc80cc80dc80ec80fc810c811c812c813c814c815c816c817c818c819c81ac81bc81cc81dc81ec81fc820c821c822c823c824c825c826c827c828c829c82ac82bc82cc82dc82ec82fc830c831c832c833c834c835c836c837c838c839c83ac83bc83cc83dc83ec83fc840c841c842c843c844c845c846c847c848c849c84ac84bc84cc84dc84ec84fc850c851c852c853c854c855c856c857c858c859c85ac85bc85cc85dc85ec85fc860c861c862c863c864c865c866c867c868c869c86ac86bc86cc86dc86ec86fc870c871c872c873c874c875c876c877c878c879c87ac87bc87cc87dc87ec87fc880c881c882c883c884c885c886c887c888c889c88ac88bc88cc88dc88ec88fc890c891c892c893c894c895c896c897c898c899c89ac89bc89cc89dc89ec89fc8a0c8a1c8a2c8a3c8a4c8a5c8a6c8a7c8a8c8a9c8aac8abc8acc8adc8aec8afc8b0c8b1c8b2c8b3c8b4c8b5c8b6c8b7c8b8c8b9c8bac8bbc8bcc8bdc8bec8bfc8c0c8c1c8c2c8c3c8c4c8c5c8c6c8c7c8c8c8c9c8cac8cbc8ccc8cdc8cec8cfc8d0c8d1c8d2c8d3c8d4c8d5c8d6c8d7c8d8c8d9c8dac8dbc8dcc8ddc8dec8dfc8e0c8e1c8e2c8e3c8e4c8e5c8e6c8e7c8e8c8e9c8eac8ebc8ecc8edc8eec8efc8f0c8f1c8f2c8f3c8f4c8f5c8f6c8f7c8f8c8f9c8fac8fbc8fcc8fdc8fec8ffc800c901c902c903c904c905c906c907c908c909c90ac90bc90cc90dc90ec90fc910c911c912c913c914c915c916c917c918c919c91ac91bc91cc91dc91ec91fc920c921c922c923c924c925c926c927c928c929c92ac92bc92cc92dc92ec92fc930c931c932c933c934c935c936c937c938c939c93ac93bc93cc93dc93ec93fc940c941c942c943c944c945c946c947c948c949c94ac94bc94cc94dc94ec94fc950c951c952c953c954c955c956c957c958c959c95ac95bc95cc95dc95ec95fc960c961c962c963c964c965c966c967c968c969c96ac96bc96cc96dc96ec96fc970c971c972c973c974c975c976c977c978c979c97ac97bc97cc97dc97ec97fc980c981c982c983c984c985c986c987c988c989c98ac98bc98cc98dc98ec98fc990c991c992c993c994c995c996c997c998c999c99ac99bc99cc99dc99ec99fc9a0c9a1c9a2c9a3c9a4c9a5c9a6c9a7c9a8c9a9c9aac9abc9acc9adc9aec9afc9b0c9b1c9b2c9b3c9b4c9b5c9b6c9b7c9b8c9b9c9bac9bbc9bcc9bdc9bec9bfc9c0c9c1c9c2c9c3c9c4c9c5c9c6c9c7c9c8c9c9c9cac9cbc9ccc9cdc9cec9cfc9d0c9d1c9d2c9d3c9d4c9d5c9d6c9d7c9d8c9d9c9dac9dbc9dcc9ddc9dec9dfc9e0c9e1c9e2c9e3c9e4c9e5c9e6c9e7c9e8c9e9c9eac9ebc9ecc9edc9eec9efc9f0c9f1c9f2c9f3c9f4c9f5c9f6c9f7c9f8c9f9c9fac9fbc9fcc9fdc9fec9ffc900ca01ca02ca03ca04ca05ca06ca07ca08ca09ca0aca0bca0cca0dca0eca0fca10ca11ca12ca13ca14ca15ca16ca17ca18ca19ca1aca1bca1cca1dca1eca1fca20ca21ca22ca23ca24ca25ca26ca27ca28ca29ca2aca2bca2cca2dca2eca2fca30ca31ca32ca33ca34ca35ca36ca37ca38ca39ca3aca3bca3cca3dca3eca3fca40ca41ca42ca43ca44ca45ca46ca47ca48ca49ca4aca4bca4cca4dca4eca4fca50ca51ca52ca53ca54ca55ca56ca57ca58ca59ca5aca5bca5cca5dca5eca5fca60ca61ca62ca63ca64ca65ca66ca67ca68ca69ca6aca6bca6cca6dca6eca6fca70ca71ca72ca73ca74ca75ca76ca77ca78ca79ca7aca7bca7cca7dca7eca7fca80ca81ca82ca83ca84ca85ca86ca87ca88ca89ca8aca8bca8cca8dca8eca8fca90ca91ca92ca93ca94ca95ca96ca97ca98ca99ca9aca9bca9cca9dca9eca9fcaa0caa1caa2caa3caa4caa5caa6caa7caa8caa9caaacaabcaaccaadcaaecaafcab0cab1cab2cab3cab4cab5cab6cab7cab8cab9cabacabbcabccabdcabecabfcac0cac1cac2cac3cac4cac5cac6cac7cac8cac9cacacacbcacccacdcacecacfcad0cad1cad2cad3cad4cad5cad6cad7cad8cad9cadacadbcadccaddcadecadfcae0cae1cae2cae3cae4cae5cae6cae7cae8cae9caeacaebcaeccaedcaeecaefcaf0caf1caf2caf3caf4caf5caf6caf7caf8caf9cafacafbcafccafdcafecaffca00cb01cb02cb03cb04cb05cb06cb07cb08cb09cb0acb0bcb0ccb0dcb0ecb0fcb10cb11cb12cb13cb14cb15cb16cb17cb18cb19cb1acb1bcb1ccb1dcb1ecb1fcb20cb21cb22cb23cb24cb25cb26cb27cb28cb29cb2acb2bcb2ccb2dcb2ecb2fcb30cb31cb32cb33cb34cb35cb36cb37cb38cb39cb3acb3bcb3ccb3dcb3ecb3fcb40cb41cb42cb43cb44cb45cb46cb47cb48cb49cb4acb4bcb4ccb4dcb4ecb4fcb50cb51cb52cb53cb54cb55cb56cb57cb58cb59cb5acb5bcb5ccb5dcb5ecb5fcb60cb61cb62cb63cb64cb65cb66cb67cb68cb69cb6acb6bcb6ccb6dcb6ecb6fcb70cb71cb72cb73cb74cb75cb76cb77cb78cb79cb7acb7bcb7ccb7dcb7ecb7fcb80cb81cb82cb83cb84cb85cb86cb87cb88cb89cb8acb8bcb8ccb8dcb8ecb8fcb90cb91cb92cb93cb94cb95cb96cb97cb98cb99cb9acb9bcb9ccb9dcb9ecb9fcba0cba1cba2cba3cba4cba5cba6cba7cba8cba9cbaacbabcbaccbadcbaecbafcbb0cbb1cbb2cbb3cbb4cbb5cbb6cbb7cbb8cbb9cbbacbbbcbbccbbdcbbecbbfcbc0cbc1cbc2cbc3cbc4cbc5cbc6cbc7cbc8cbc9cbcacbcbcbcccbcdcbcecbcfcbd0cbd1cbd2cbd3cbd4cbd5cbd6cbd7cbd8cbd9cbdacbdbcbdccbddcbdecbdfcbe0cbe1cbe2cbe3cbe4cbe5cbe6cbe7cbe8cbe9cbeacbebcbeccbedcbeecbefcbf0cbf1cbf2cbf3cbf4cbf5cbf6cbf7cbf8cbf9cbfacbfbcbfccbfdcbfecbffcb00cc01cc02cc03cc04cc05cc06cc07cc08cc09cc0acc0bcc0ccc0dcc0ecc0fcc10cc11cc12cc13cc14cc15cc16cc17cc18cc19cc1acc1bcc1ccc1dcc1ecc1fcc20cc21cc22cc23cc24cc25cc26cc27cc28cc29cc2acc2bcc2ccc2dcc2ecc2fcc30cc31cc32cc33cc34cc35cc36cc37cc38cc39cc3acc3bcc3ccc3dcc3ecc3fcc40cc41cc42cc43cc44cc45cc46cc47cc48cc49cc4acc4bcc4ccc4dcc4ecc4fcc50cc51cc52cc53cc54cc55cc56cc57cc58cc59cc5acc5bcc5ccc5dcc5ecc5fcc60cc61cc62cc63cc64cc65cc66cc67cc68cc69cc6acc6bcc6ccc6dcc6ecc6fcc70cc71cc72cc73cc74cc75cc76cc77cc78cc79cc7acc7bcc7ccc7dcc7ecc7fcc80cc81cc82cc83cc84cc85cc86cc87cc88cc89cc8acc8bcc8ccc8dcc8ecc8fcc90cc91cc92cc93cc94cc95cc96cc97cc98cc99cc9acc9bcc9ccc9dcc9ecc9fcca0cca1cca2cca3cca4cca5cca6cca7cca8cca9ccaaccabccacccadccaeccafccb0ccb1ccb2ccb3ccb4ccb5ccb6ccb7ccb8ccb9ccbaccbbccbcccbdccbeccbfccc0ccc1ccc2ccc3ccc4ccc5ccc6ccc7ccc8ccc9cccacccbcccccccdcccecccfccd0ccd1ccd2ccd3ccd4ccd5ccd6ccd7ccd8ccd9ccdaccdbccdcccddccdeccdfcce0cce1cce2cce3cce4cce5cce6cce7cce8cce9cceaccebccecccedcceeccefccf0ccf1ccf2ccf3ccf4ccf5ccf6ccf7ccf8ccf9ccfaccfbccfcccfdccfeccffcc00cd01cd02cd03cd04cd05cd06cd07cd08cd09cd0acd0bcd0ccd0dcd0ecd0fcd10cd11cd12cd13cd14cd15cd16cd17cd18cd19cd1acd1bcd1ccd1dcd1ecd1fcd20cd21cd22cd23cd24cd25cd26cd27cd28cd29cd2acd2bcd2ccd2dcd2ecd2fcd30cd31cd32cd33cd34cd35cd36cd37cd38cd39cd3acd3bcd3ccd3dcd3ecd3fcd40cd41cd42cd43cd44cd45cd46cd47cd48cd49cd4acd4bcd4ccd4dcd4ecd4fcd50cd51cd52cd53cd54cd55cd56cd57cd58cd59cd5acd5bcd5ccd5dcd5ecd5fcd60cd61cd62cd63cd64cd65cd66cd67cd68cd69cd6acd6bcd6ccd6dcd6ecd6fcd70cd71cd72cd73cd74cd75cd76cd77cd78cd79cd7acd7bcd7ccd7dcd7ecd7fcd80cd81cd82cd83cd84cd85cd86cd87cd88cd89cd8acd8bcd8ccd8dcd8ecd8fcd90cd91cd92cd93cd94cd95cd96cd97cd98cd99cd9acd9bcd9ccd9dcd9ecd9fcda0cda1cda2cda3cda4cda5cda6cda7cda8cda9cdaacdabcdaccdadcdaecdafcdb0cdb1cdb2cdb3cdb4cdb5cdb6cdb7cdb8cdb9cdbacdbbcdbccdbdcdbecdbfcdc0cdc1cdc2cdc3cdc4cdc5cdc6cdc7cdc8cdc9cdcacdcbcdcccdcdcdcecdcfcdd0cdd1cdd2cdd3cdd4cdd5cdd6cdd7cdd8cdd9cddacddbcddccdddcddecddfcde0cde1cde2cde3cde4cde5cde6cde7cde8cde9cdeacdebcdeccdedcdeecdefcdf0cdf1cdf2cdf3cdf4cdf5cdf6cdf7cdf8cdf9cdfacdfbcdfccdfdcdfecdffcd00ce01ce02ce03ce04ce05ce06ce07ce08ce09ce0ace0bce0cce0dce0ece0fce10ce11ce12ce13ce14ce15ce16ce17ce18ce19ce1ace1bce1cce1dce1ece1fce20ce21ce22ce23ce24ce25ce26ce27ce28ce29ce2ace2bce2cce2dce2ece2fce30ce31ce32ce33ce34ce35ce36ce37ce38ce39ce3ace3bce3cce3dce3ece3fce40ce41ce42ce43ce44ce45ce46ce47ce48ce49ce4ace4bce4cce4dce4ece4fce50ce51ce52ce53ce54ce55ce56ce57ce58ce59ce5ace5bce5cce5dce5ece5fce60ce61ce62ce63ce64ce65ce66ce67ce68ce69ce6ace6bce6cce6dce6ece6fce70ce71ce72ce73ce74ce75ce76ce77ce78ce79ce7ace7bce7cce7dce7ece7fce80ce81ce82ce83ce84ce85ce86ce87ce88ce89ce8ace8bce8cce8dce8ece8fce90ce91ce92ce93ce94ce95ce96ce97ce98ce99ce9ace9bce9cce9dce9ece9fcea0cea1cea2cea3cea4cea5cea6cea7cea8cea9ceaaceabceacceadceaeceafceb0ceb1ceb2ceb3ceb4ceb5ceb6ceb7ceb8ceb9cebacebbcebccebdcebecebfcec0cec1cec2cec3cec4cec5cec6cec7cec8cec9cecacecbcecccecdcecececfced0ced1ced2ced3ced4ced5ced6ced7ced8ced9cedacedbcedcceddcedecedfcee0cee1cee2cee3cee4cee5cee6cee7cee8cee9ceeaceebceecceedceeeceefcef0cef1cef2cef3cef4cef5cef6cef7cef8cef9cefacefbcefccefdcefeceffce00cf01cf02cf03cf04cf05cf06cf07cf08cf09cf0acf0bcf0ccf0dcf0ecf0fcf10cf11cf12cf13cf14cf15cf16cf17cf18cf19cf1acf1bcf1ccf1dcf1ecf1fcf20cf21cf22cf23cf24cf25cf26cf27cf28cf29cf2acf2bcf2ccf2dcf2ecf2fcf30cf31cf32cf33cf34cf35cf36cf37cf38cf39cf3acf3bcf3ccf3dcf3ecf3fcf40cf41cf42cf43cf44cf45cf46cf47cf48cf49cf4acf4bcf4ccf4dcf4ecf4fcf50cf51cf52cf53cf54cf55cf56cf57cf58cf59cf5acf5bcf5ccf5dcf5ecf5fcf60cf61cf62cf63cf64cf65cf66cf67cf68cf69cf6acf6bcf6ccf6dcf6ecf6fcf70cf71cf72cf73cf74cf75cf76cf77cf78cf79cf7acf7bcf7ccf7dcf7ecf7fcf80cf81cf82cf83cf84cf85cf86cf87cf88cf89cf8acf8bcf8ccf8dcf8ecf8fcf90cf91cf92cf93cf94cf95cf96cf97cf98cf99cf9acf9bcf9ccf9dcf9ecf9fcfa0cfa1cfa2cfa3cfa4cfa5cfa6cfa7cfa8cfa9cfaacfabcfaccfadcfaecfafcfb0cfb1cfb2cfb3cfb4cfb5cfb6cfb7cfb8cfb9cfbacfbbcfbccfbdcfbecfbfcfc0cfc1cfc2cfc3cfc4cfc5cfc6cfc7cfc8cfc9cfcacfcbcfcccfcdcfcecfcfcfd0cfd1cfd2cfd3cfd4cfd5cfd6cfd7cfd8cfd9cfdacfdbcfdccfddcfdecfdfcfe0cfe1cfe2cfe3cfe4cfe5cfe6cfe7cfe8cfe9cfeacfebcfeccfedcfeecfefcff0cff1cff2cff3cff4cff5cff6cff7cff8cff9cffacffbcffccffdcffecfffcf00d001d002d003d004d005d006d007d008d009d00ad00bd00cd00dd00ed00fd010d011d012d013d014d015d016d017d018d019d01ad01bd01cd01dd01ed01fd020d021d022d023d024d025d026d027d028d029d02ad02bd02cd02dd02ed02fd030d031d032d033d034d035d036d037d038d039d03ad03bd03cd03dd03ed03fd040d041d042d043d044d045d046d047d048d049d04ad04bd04cd04dd04ed04fd050d051d052d053d054d055d056d057d058d059d05ad05bd05cd05dd05ed05fd060d061d062d063d064d065d066d067d068d069d06ad06bd06cd06dd06ed06fd070d071d072d073d074d075d076d077d078d079d07ad07bd07cd07dd07ed07fd080d081d082d083d084d085d086d087d088d089d08ad08bd08cd08dd08ed08fd090d091d092d093d094d095d096d097d098d099d09ad09bd09cd09dd09ed09fd0a0d0a1d0a2d0a3d0a4d0a5d0a6d0a7d0a8d0a9d0aad0abd0acd0add0aed0afd0b0d0b1d0b2d0b3d0b4d0b5d0b6d0b7d0b8d0b9d0bad0bbd0bcd0bdd0bed0bfd0c0d0c1d0c2d0c3d0c4d0c5d0c6d0c7d0c8d0c9d0cad0cbd0ccd0cdd0ced0cfd0d0d0d1d0d2d0d3d0d4d0d5d0d6d0d7d0d8d0d9d0dad0dbd0dcd0ddd0ded0dfd0e0d0e1d0e2d0e3d0e4d0e5d0e6d0e7d0e8d0e9d0ead0ebd0ecd0edd0eed0efd0f0d0f1d0f2d0f3d0f4d0f5d0f6d0f7d0f8d0f9d0fad0fbd0fcd0fdd0fed0ffd000d101d102d103d104d105d106d107d108d109d10ad10bd10cd10dd10ed10fd110d111d112d113d114d115d116d117d118d119d11ad11bd11cd11dd11ed11fd120d121d122d123d124d125d126d127d128d129d12ad12bd12cd12dd12ed12fd130d131d132d133d134d135d136d137d138d139d13ad13bd13cd13dd13ed13fd140d141d142d143d144d145d146d147d148d149d14ad14bd14cd14dd14ed14fd150d151d152d153d154d155d156d157d158d159d15ad15bd15cd15dd15ed15fd160d161d162d163d164d165d166d167d168d169d16ad16bd16cd16dd16ed16fd170d171d172d173d174d175d176d177d178d179d17ad17bd17cd17dd17ed17fd180d181d182d183d184d185d186d187d188d189d18ad18bd18cd18dd18ed18fd190d191d192d193d194d195d196d197d198d199d19ad19bd19cd19dd19ed19fd1a0d1a1d1a2d1a3d1a4d1a5d1a6d1a7d1a8d1a9d1aad1abd1acd1add1aed1afd1b0d1b1d1b2d1b3d1b4d1b5d1b6d1b7d1b8d1b9d1bad1bbd1bcd1bdd1bed1bfd1c0d1c1d1c2d1c3d1c4d1c5d1c6d1c7d1c8d1c9d1cad1cbd1ccd1cdd1ced1cfd1d0d1d1d1d2d1d3d1d4d1d5d1d6d1d7d1d8d1d9d1dad1dbd1dcd1ddd1ded1dfd1e0d1e1d1e2d1e3d1e4d1e5d1e6d1e7d1e8d1e9d1ead1ebd1ecd1edd1eed1efd1f0d1f1d1f2d1f3d1f4d1f5d1f6d1f7d1f8d1f9d1fad1fbd1fcd1fdd1fed1ffd100d201d202d203d204d205d206d207d208d209d20ad20bd20cd20dd20ed20fd210d211d212d213d214d215d216d217d218d219d21ad21bd21cd21dd21ed21fd220d221d222d223d224d225d226d227d228d229d22ad22bd22cd22dd22ed22fd230d231d232d233d234d235d236d237d238d239d23ad23bd23cd23dd23ed23fd240d241d242d243d244d245d246d247d248d249d24ad24bd24cd24dd24ed24fd250d251d252d253d254d255d256d257d258d259d25ad25bd25cd25dd25ed25fd260d261d262d263d264d265d266d267d268d269d26ad26bd26cd26dd26ed26fd270d271d272d273d274d275d276d277d278d279d27ad27bd27cd27dd27ed27fd280d281d282d283d284d285d286d287d288d289d28ad28bd28cd28dd28ed28fd290d291d292d293d294d295d296d297d298d299d29ad29bd29cd29dd29ed29fd2a0d2a1d2a2d2a3d2a4d2a5d2a6d2a7d2a8d2a9d2aad2abd2acd2add2aed2afd2b0d2b1d2b2d2b3d2b4d2b5d2b6d2b7d2b8d2b9d2bad2bbd2bcd2bdd2bed2bfd2c0d2c1d2c2d2c3d2c4d2c5d2c6d2c7d2c8d2c9d2cad2cbd2ccd2cdd2ced2cfd2d0d2d1d2d2d2d3d2d4d2d5d2d6d2d7d2d8d2d9d2dad2dbd2dcd2ddd2ded2dfd2e0d2e1d2e2d2e3d2e4d2e5d2e6d2e7d2e8d2e9d2ead2ebd2ecd2edd2eed2efd2f0d2f1d2f2d2f3d2f4d2f5d2f6d2f7d2f8d2f9d2fad2fbd2fcd2fdd2fed2ffd200d301d302d303d304d305d306d307d308d309d30ad30bd30cd30dd30ed30fd310d311d312d313d314d315d316d317d318d319d31ad31bd31cd31dd31ed31fd320d321d322d323d324d325d326d327d328d329d32ad32bd32cd32dd32ed32fd330d331d332d333d334d335d336d337d338d339d33ad33bd33cd33dd33ed33fd340d341d342d343d344d345d346d347d348d349d34ad34bd34cd34dd34ed34fd350d351d352d353d354d355d356d357d358d359d35ad35bd35cd35dd35ed35fd360d361d362d363d364d365d366d367d368d369d36ad36bd36cd36dd36ed36fd370d371d372d373d374d375d376d377d378d379d37ad37bd37cd37dd37ed37fd380d381d382d383d384d385d386d387d388d389d38ad38bd38cd38dd38ed38fd390d391d392d393d394d395d396d397d398d399d39ad39bd39cd39dd39ed39fd3a0d3a1d3a2d3a3d3a4d3a5d3a6d3a7d3a8d3a9d3aad3abd3acd3add3aed3afd3b0d3b1d3b2d3b3d3b4d3b5d3b6d3b7d3b8d3b9d3bad3bbd3bcd3bdd3bed3bfd3c0d3c1d3c2d3c3d3c4d3c5d3c6d3c7d3c8d3c9d3cad3cbd3ccd3cdd3ced3cfd3d0d3d1d3d2d3d3d3d4d3d5d3d6d3d7d3d8d3d9d3dad3dbd3dcd3ddd3ded3dfd3e0d3e1d3e2d3e3d3e4d3e5d3e6d3e7d3e8d3e9d3ead3ebd3ecd3edd3eed3efd3f0d3f1d3f2d3f3d3f4d3f5d3f6d3f7d3f8d3f9d3fad3fbd3fcd3fdd3fed3ffd300d401d402d403d404d405d406d407d408d409d40ad40bd40cd40dd40ed40fd410d411d412d413d414d415d416d417d418d419d41ad41bd41cd41dd41ed41fd420d421d422d423d424d425d426d427d428d429d42ad42bd42cd42dd42ed42fd430d431d432d433d434d435d436d437d438d439d43ad43bd43cd43dd43ed43fd440d441d442d443d444d445d446d447d448d449d44ad44bd44cd44dd44ed44fd450d451d452d453d454d455d456d457d458d459d45ad45bd45cd45dd45ed45fd460d461d462d463d464d465d466d467d468d469d46ad46bd46cd46dd46ed46fd470d471d472d473d474d475d476d477d478d479d47ad47bd47cd47dd47ed47fd480d481d482d483d484d485d486d487d488d489d48ad48bd48cd48dd48ed48fd490d491d492d493d494d495d496d497d498d499d49ad49bd49cd49dd49ed49fd4a0d4a1d4a2d4a3d4a4d4a5d4a6d4a7d4a8d4a9d4aad4abd4acd4add4aed4afd4b0d4b1d4b2d4b3d4b4d4b5d4b6d4b7d4b8d4b9d4bad4bbd4bcd4bdd4bed4bfd4c0d4c1d4c2d4c3d4c4d4c5d4c6d4c7d4c8d4c9d4cad4cbd4ccd4cdd4ced4cfd4d0d4d1d4d2d4d3d4d4d4d5d4d6d4d7d4d8d4d9d4dad4dbd4dcd4ddd4ded4dfd4e0d4e1d4e2d4e3d4e4d4e5d4e6d4e7d4e8d4e9d4ead4ebd4ecd4edd4eed4efd4f0d4f1d4f2d4f3d4f4d4f5d4f6d4f7d4f8d4f9d4fad4fbd4fcd4fdd4fed4ffd400d501d502d503d504d505d506d507d508d509d50ad50bd50cd50dd50ed50fd510d511d512d513d514d515d516d517d518d519d51ad51bd51cd51dd51ed51fd520d521d522d523d524d525d526d527d528d529d52ad52bd52cd52dd52ed52fd530d531d532d533d534d535d536d537d538d539d53ad53bd53cd53dd53ed53fd540d541d542d543d544d545d546d547d548d549d54ad54bd54cd54dd54ed54fd550d551d552d553d554d555d556d557d558d559d55ad55bd55cd55dd55ed55fd560d561d562d563d564d565d566d567d568d569d56ad56bd56cd56dd56ed56fd570d571d572d573d574d575d576d577d578d579d57ad57bd57cd57dd57ed57fd580d581d582d583d584d585d586d587d588d589d58ad58bd58cd58dd58ed58fd590d591d592d593d594d595d596d597d598d599d59ad59bd59cd59dd59ed59fd5a0d5a1d5a2d5a3d5a4d5a5d5a6d5a7d5a8d5a9d5aad5abd5acd5add5aed5afd5b0d5b1d5b2d5b3d5b4d5b5d5b6d5b7d5b8d5b9d5bad5bbd5bcd5bdd5bed5bfd5c0d5c1d5c2d5c3d5c4d5c5d5c6d5c7d5c8d5c9d5cad5cbd5ccd5cdd5ced5cfd5d0d5d1d5d2d5d3d5d4d5d5d5d6d5d7d5d8d5d9d5dad5dbd5dcd5ddd5ded5dfd5e0d5e1d5e2d5e3d5e4d5e5d5e6d5e7d5e8d5e9d5ead5ebd5ecd5edd5eed5efd5f0d5f1d5f2d5f3d5f4d5f5d5f6d5f7d5f8d5f9d5fad5fbd5fcd5fdd5fed5ffd500d601d602d603d604d605d606d607d608d609d60ad60bd60cd60dd60ed60fd610d611d612d613d614d615d616d617d618d619d61ad61bd61cd61dd61ed61fd620d621d622d623d624d625d626d627d628d629d62ad62bd62cd62dd62ed62fd630d631d632d633d634d635d636d637d638d639d63ad63bd63cd63dd63ed63fd640d641d642d643d644d645d646d647d648d649d64ad64bd64cd64dd64ed64fd650d651d652d653d654d655d656d657d658d659d65ad65bd65cd65dd65ed65fd660d661d662d663d664d665d666d667d668d669d66ad66bd66cd66dd66ed66fd670d671d672d673d674d675d676d677d678d679d67ad67bd67cd67dd67ed67fd680d681d682d683d684d685d686d687d688d689d68ad68bd68cd68dd68ed68fd690d691d692d693d694d695d696d697d698d699d69ad69bd69cd69dd69ed69fd6a0d6a1d6a2d6a3d6a4d6a5d6a6d6a7d6a8d6a9d6aad6abd6acd6add6aed6afd6b0d6b1d6b2d6b3d6b4d6b5d6b6d6b7d6b8d6b9d6bad6bbd6bcd6bdd6bed6bfd6c0d6c1d6c2d6c3d6c4d6c5d6c6d6c7d6c8d6c9d6cad6cbd6ccd6cdd6ced6cfd6d0d6d1d6d2d6d3d6d4d6d5d6d6d6d7d6d8d6d9d6dad6dbd6dcd6ddd6ded6dfd6e0d6e1d6e2d6e3d6e4d6e5d6e6d6e7d6e8d6e9d6ead6ebd6ecd6edd6eed6efd6f0d6f1d6f2d6f3d6f4d6f5d6f6d6f7d6f8d6f9d6fad6fbd6fcd6fdd6fed6ffd600d701d702d703d704d705d706d707d708d709d70ad70bd70cd70dd70ed70fd710d711d712d713d714d715d716d717d718d719d71ad71bd71cd71dd71ed71fd720d721d722d723d724d725d726d727d728d729d72ad72bd72cd72dd72ed72fd730d731d732d733d734d735d736d737d738d739d73ad73bd73cd73dd73ed73fd740d741d742d743d744d745d746d747d748d749d74ad74bd74cd74dd74ed74fd750d751d752d753d754d755d756d757d758d759d75ad75bd75cd75dd75ed75fd760d761d762d763d764d765d766d767d768d769d76ad76bd76cd76dd76ed76fd770d771d772d773d774d775d776d777d778d779d77ad77bd77cd77dd77ed77fd780d781d782d783d784d785d786d787d788d789d78ad78bd78cd78dd78ed78fd790d791d792d793d794d795d796d797d798d799d79ad79bd79cd79dd79ed79fd7a0d7a1d7a2d7a3d7a4d7a5d7a6d7a7d7a8d7a9d7aad7abd7acd7add7aed7afd7b0d7b1d7b2d7b3d7b4d7b5d7b6d7b7d7b8d7b9d7bad7bbd7bcd7bdd7bed7bfd7c0d7c1d7c2d7c3d7c4d7c5d7c6d7c7d7c8d7c9d7cad7cbd7ccd7cdd7ced7cfd7d0d7d1d7d2d7d3d7d4d7d5d7d6d7d7d7d8d7d9d7dad7dbd7dcd7ddd7ded7dfd7e0d7e1d7e2d7e3d7e4d7e5d7e6d7e7d7e8d7e9d7ead7ebd7ecd7edd7eed7efd7f0d7f1d7f2d7f3d7f4d7f5d7f6d7f7d7f8d7f9d7fad7fbd7fcd7fdd7fed7ffd700d801d802d803d804d805d806d807d808d809d80ad80bd80cd80dd80ed80fd810d811d812d813d814d815d816d817d818d819d81ad81bd81cd81dd81ed81fd820d821d822d823d824d825d826d827d828d829d82ad82bd82cd82dd82ed82fd830d831d832d833d834d835d836d837d838d839d83ad83bd83cd83dd83ed83fd840d841d842d843d844d845d846d847d848d849d84ad84bd84cd84dd84ed84fd850d851d852d853d854d855d856d857d858d859d85ad85bd85cd85dd85ed85fd860d861d862d863d864d865d866d867d868d869d86ad86bd86cd86dd86ed86fd870d871d872d873d874d875d876d877d878d879d87ad87bd87cd87dd87ed87fd880d881d882d883d884d885d886d887d888d889d88ad88bd88cd88dd88ed88fd890d891d892d893d894d895d896d897d898d899d89ad89bd89cd89dd89ed89fd8a0d8a1d8a2d8a3d8a4d8a5d8a6d8a7d8a8d8a9d8aad8abd8acd8add8aed8afd8b0d8b1d8b2d8b3d8b4d8b5d8b6d8b7d8b8d8b9d8bad8bbd8bcd8bdd8bed8bfd8c0d8c1d8c2d8c3d8c4d8c5d8c6d8c7d8c8d8c9d8cad8cbd8ccd8cdd8ced8cfd8d0d8d1d8d2d8d3d8d4d8d5d8d6d8d7d8d8d8d9d8dad8dbd8dcd8ddd8ded8dfd8e0d8e1d8e2d8e3d8e4d8e5d8e6d8e7d8e8d8e9d8ead8ebd8ecd8edd8eed8efd8f0d8f1d8f2d8f3d8f4d8f5d8f6d8f7d8f8d8f9d8fad8fbd8fcd8fdd8fed8ffd800d901d902d903d904d905d906d907d908d909d90ad90bd90cd90dd90ed90fd910d911d912d913d914d915d916d917d918d919d91ad91bd91cd91dd91ed91fd920d921d922d923d924d925d926d927d928d929d92ad92bd92cd92dd92ed92fd930d931d932d933d934d935d936d937d938d939d93ad93bd93cd93dd93ed93fd940d941d942d943d944d945d946d947d948d949d94ad94bd94cd94dd94ed94fd950d951d952d953d954d955d956d957d958d959d95ad95bd95cd95dd95ed95fd960d961d962d963d964d965d966d967d968d969d96ad96bd96cd96dd96ed96fd970d971d972d973d974d975d976d977d978d979d97ad97bd97cd97dd97ed97fd980d981d982d983d984d985d986d987d988d989d98ad98bd98cd98dd98ed98fd990d991d992d993d994d995d996d997d998d999d99ad99bd99cd99dd99ed99fd9a0d9a1d9a2d9a3d9a4d9a5d9a6d9a7d9a8d9a9d9aad9abd9acd9add9aed9afd9b0d9b1d9b2d9b3d9b4d9b5d9b6d9b7d9b8d9b9d9bad9bbd9bcd9bdd9bed9bfd9c0d9c1d9c2d9c3d9c4d9c5d9c6d9c7d9c8d9c9d9cad9cbd9ccd9cdd9ced9cfd9d0d9d1d9d2d9d3d9d4d9d5d9d6d9d7d9d8d9d9d9dad9dbd9dcd9ddd9ded9dfd9e0d9e1d9e2d9e3d9e4d9e5d9e6d9e7d9e8d9e9d9ead9ebd9ecd9edd9eed9efd9f0d9f1d9f2d9f3d9f4d9f5d9f6d9f7d9f8d9f9d9fad9fbd9fcd9fdd9fed9ffd900da01da02da03da04da05da06da07da08da09da0ada0bda0cda0dda0eda0fda10da11da12da13da14da15da16da17da18da19da1ada1bda1cda1dda1eda1fda20da21da22da23da24da25da26da27da28da29da2ada2bda2cda2dda2eda2fda30da31da32da33da34da35da36da37da38da39da3ada3bda3cda3dda3eda3fda40da41da42da43da44da45da46da47da48da49da4ada4bda4cda4dda4eda4fda50da51da52da53da54da55da56da57da58da59da5ada5bda5cda5dda5eda5fda60da61da62da63da64da65da66da67da68da69da6ada6bda6cda6dda6eda6fda70da71da72da73da74da75da76da77da78da79da7ada7bda7cda7dda7eda7fda80da81da82da83da84da85da86da87da88da89da8ada8bda8cda8dda8eda8fda90da91da92da93da94da95da96da97da98da99da9ada9bda9cda9dda9eda9fdaa0daa1daa2daa3daa4daa5daa6daa7daa8daa9daaadaabdaacdaaddaaedaafdab0dab1dab2dab3dab4dab5dab6dab7dab8dab9dabadabbdabcdabddabedabfdac0dac1dac2dac3dac4dac5dac6dac7dac8dac9dacadacbdaccdacddacedacfdad0dad1dad2dad3dad4dad5dad6dad7dad8dad9dadadadbdadcdadddadedadfdae0dae1dae2dae3dae4dae5dae6dae7dae8dae9daeadaebdaecdaeddaeedaefdaf0daf1daf2daf3daf4daf5daf6daf7daf8daf9dafadafbdafcdafddafedaffda00db01db02db03db04db05db06db07db08db09db0adb0bdb0cdb0ddb0edb0fdb10db11db12db13db14db15db16db17db18db19db1adb1bdb1cdb1ddb1edb1fdb20db21db22db23db24db25db26db27db28db29db2adb2bdb2cdb2ddb2edb2fdb30db31db32db33db34db35db36db37db38db39db3adb3bdb3cdb3ddb3edb3fdb40db41db42db43db44db45db46db47db48db49db4adb4bdb4cdb4ddb4edb4fdb50db51db52db53db54db55db56db57db58db59db5adb5bdb5cdb5ddb5edb5fdb60db61db62db63db64db65db66db67db68db69db6adb6bdb6cdb6ddb6edb6fdb70db71db72db73db74db75db76db77db78db79db7adb7bdb7cdb7ddb7edb7fdb80db81db82db83db84db85db86db87db88db89db8adb8bdb8cdb8ddb8edb8fdb90db91db92db93db94db95db96db97db98db99db9adb9bdb9cdb9ddb9edb9fdba0dba1dba2dba3dba4dba5dba6dba7dba8dba9dbaadbabdbacdbaddbaedbafdbb0dbb1dbb2dbb3dbb4dbb5dbb6dbb7dbb8dbb9dbbadbbbdbbcdbbddbbedbbfdbc0dbc1dbc2dbc3dbc4dbc5dbc6dbc7dbc8dbc9dbcadbcbdbccdbcddbcedbcfdbd0dbd1dbd2dbd3dbd4dbd5dbd6dbd7dbd8dbd9dbdadbdbdbdcdbdddbdedbdfdbe0dbe1dbe2dbe3dbe4dbe5dbe6dbe7dbe8dbe9dbeadbebdbecdbeddbeedbefdbf0dbf1dbf2dbf3dbf4dbf5dbf6dbf7dbf8dbf9dbfadbfbdbfcdbfddbfedbffdb00dc01dc02dc03dc04dc05dc06dc07dc08dc09dc0adc0bdc0cdc0ddc0edc0fdc10dc11dc12dc13dc14dc15dc16dc17dc18dc19dc1adc1bdc1cdc1ddc1edc1fdc20dc21dc22dc23dc24dc25dc26dc27dc28dc29dc2adc2bdc2cdc2ddc2edc2fdc30dc31dc32dc33dc34dc35dc36dc37dc38dc39dc3adc3bdc3cdc3ddc3edc3fdc40dc41dc42dc43dc44dc45dc46dc47dc48dc49dc4adc4bdc4cdc4ddc4edc4fdc50dc51dc52dc53dc54dc55dc56dc57dc58dc59dc5adc5bdc5cdc5ddc5edc5fdc60dc61dc62dc63dc64dc65dc66dc67dc68dc69dc6adc6bdc6cdc6ddc6edc6fdc70dc71dc72dc73dc74dc75dc76dc77dc78dc79dc7adc7bdc7cdc7ddc7edc7fdc80dc81dc82dc83dc84dc85dc86dc87dc88dc89dc8adc8bdc8cdc8ddc8edc8fdc90dc91dc92dc93dc94dc95dc96dc97dc98dc99dc9adc9bdc9cdc9ddc9edc9fdca0dca1dca2dca3dca4dca5dca6dca7dca8dca9dcaadcabdcacdcaddcaedcafdcb0dcb1dcb2dcb3dcb4dcb5dcb6dcb7dcb8dcb9dcbadcbbdcbcdcbddcbedcbfdcc0dcc1dcc2dcc3dcc4dcc5dcc6dcc7dcc8dcc9dccadccbdcccdccddccedccfdcd0dcd1dcd2dcd3dcd4dcd5dcd6dcd7dcd8dcd9dcdadcdbdcdcdcdddcdedcdfdce0dce1dce2dce3dce4dce5dce6dce7dce8dce9dceadcebdcecdceddceedcefdcf0dcf1dcf2dcf3dcf4dcf5dcf6dcf7dcf8dcf9dcfadcfbdcfcdcfddcfedcffdc00dd01dd02dd03dd04dd05dd06dd07dd08dd09dd0add0bdd0cdd0ddd0edd0fdd10dd11dd12dd13dd14dd15dd16dd17dd18dd19dd1add1bdd1cdd1ddd1edd1fdd20dd21dd22dd23dd24dd25dd26dd27dd28dd29dd2add2bdd2cdd2ddd2edd2fdd30dd31dd32dd33dd34dd35dd36dd37dd38dd39dd3add3bdd3cdd3ddd3edd3fdd40dd41dd42dd43dd44dd45dd46dd47dd48dd49dd4add4bdd4cdd4ddd4edd4fdd50dd51dd52dd53dd54dd55dd56dd57dd58dd59dd5add5bdd5cdd5ddd5edd5fdd60dd61dd62dd63dd64dd65dd66dd67dd68dd69dd6add6bdd6cdd6ddd6edd6fdd70dd71dd72dd73dd74dd75dd76dd77dd78dd79dd7add7bdd7cdd7ddd7edd7fdd80dd81dd82dd83dd84dd85dd86dd87dd88dd89dd8add8bdd8cdd8ddd8edd8fdd90dd91dd92dd93dd94dd95dd96dd97dd98dd99dd9add9bdd9cdd9ddd9edd9fdda0dda1dda2dda3dda4dda5dda6dda7dda8dda9ddaaddabddacddadddaeddafddb0ddb1ddb2ddb3ddb4ddb5ddb6ddb7ddb8ddb9ddbaddbbddbcddbdddbeddbfddc0ddc1ddc2ddc3ddc4ddc5ddc6ddc7ddc8ddc9ddcaddcbddccddcdddceddcfddd0ddd1ddd2ddd3ddd4ddd5ddd6ddd7ddd8ddd9dddadddbdddcdddddddedddfdde0dde1dde2dde3dde4dde5dde6dde7dde8dde9ddeaddebddecddedddeeddefddf0ddf1ddf2ddf3ddf4ddf5ddf6ddf7ddf8ddf9ddfaddfbddfcddfdddfeddffdd00de01de02de03de04de05de06de07de08de09de0ade0bde0cde0dde0ede0fde10de11de12de13de14de15de16de17de18de19de1ade1bde1cde1dde1ede1fde20de21de22de23de24de25de26de27de28de29de2ade2bde2cde2dde2ede2fde30de31de32de33de34de35de36de37de38de39de3ade3bde3cde3dde3ede3fde40de41de42de43de44de45de46de47de48de49de4ade4bde4cde4dde4ede4fde50de51de52de53de54de55de56de57de58de59de5ade5bde5cde5dde5ede5fde60de61de62de63de64de65de66de67de68de69de6ade6bde6cde6dde6ede6fde70de71de72de73de74de75de76de77de78de79de7ade7bde7cde7dde7ede7fde80de81de82de83de84de85de86de87de88de89de8ade8bde8cde8dde8ede8fde90de91de92de93de94de95de96de97de98de99de9ade9bde9cde9dde9ede9fdea0dea1dea2dea3dea4dea5dea6dea7dea8dea9deaadeabdeacdeaddeaedeafdeb0deb1deb2deb3deb4deb5deb6deb7deb8deb9debadebbdebcdebddebedebfdec0dec1dec2dec3dec4dec5dec6dec7dec8dec9decadecbdeccdecddecedecfded0ded1ded2ded3ded4ded5ded6ded7ded8ded9dedadedbdedcdedddedededfdee0dee1dee2dee3dee4dee5dee6dee7dee8dee9deeadeebdeecdeeddeeedeefdef0def1def2def3def4def5def6def7def8def9defadefbdefcdefddefedeffde00df01df02df03df04df05df06df07df08df09df0adf0bdf0cdf0ddf0edf0fdf10df11df12df13df14df15df16df17df18df19df1adf1bdf1cdf1ddf1edf1fdf20df21df22df23df24df25df26df27df28df29df2adf2bdf2cdf2ddf2edf2fdf30df31df32df33df34df35df36df37df38df39df3adf3bdf3cdf3ddf3edf3fdf40df41df42df43df44df45df46df47df48df49df4adf4bdf4cdf4ddf4edf4fdf50df51df52df53df54df55df56df57df58df59df5adf5bdf5cdf5ddf5edf5fdf60df61df62df63df64df65df66df67df68df69df6adf6bdf6cdf6ddf6edf6fdf70df71df72df73df74df75df76df77df78df79df7adf7bdf7cdf7ddf7edf7fdf80df81df82df83df84df85df86df87df88df89df8adf8bdf8cdf8ddf8edf8fdf90df91df92df93df94df95df96df97df98df99df9adf9bdf9cdf9ddf9edf9fdfa0dfa1dfa2dfa3dfa4dfa5dfa6dfa7dfa8dfa9dfaadfabdfacdfaddfaedfafdfb0dfb1dfb2dfb3dfb4dfb5dfb6dfb7dfb8dfb9dfbadfbbdfbcdfbddfbedfbfdfc0dfc1dfc2dfc3dfc4dfc5dfc6dfc7dfc8dfc9dfcadfcbdfccdfcddfcedfcfdfd0dfd1dfd2dfd3dfd4dfd5dfd6dfd7dfd8dfd9dfdadfdbdfdcdfdddfdedfdfdfe0dfe1dfe2dfe3dfe4dfe5dfe6dfe7dfe8dfe9dfeadfebdfecdfeddfeedfefdff0dff1dff2dff3dff4dff5dff6dff7dff8dff9dffadffbdffcdffddffedfffdf00e001e002e003e004e005e006e007e008e009e00ae00be00ce00de00ee00fe010e011e012e013e014e015e016e017e018e019e01ae01be01ce01de01ee01fe020e021e022e023e024e025e026e027e028e029e02ae02be02ce02de02ee02fe030e031e032e033e034e035e036e037e038e039e03ae03be03ce03de03ee03fe040e041e042e043e044e045e046e047e048e049e04ae04be04ce04de04ee04fe050e051e052e053e054e055e056e057e058e059e05ae05be05ce05de05ee05fe060e061e062e063e064e065e066e067e068e069e06ae06be06ce06de06ee06fe070e071e072e073e074e075e076e077e078e079e07ae07be07ce07de07ee07fe080e081e082e083e084e085e086e087e088e089e08ae08be08ce08de08ee08fe090e091e092e093e094e095e096e097e098e099e09ae09be09ce09de09ee09fe0a0e0a1e0a2e0a3e0a4e0a5e0a6e0a7e0a8e0a9e0aae0abe0ace0ade0aee0afe0b0e0b1e0b2e0b3e0b4e0b5e0b6e0b7e0b8e0b9e0bae0bbe0bce0bde0bee0bfe0c0e0c1e0c2e0c3e0c4e0c5e0c6e0c7e0c8e0c9e0cae0cbe0cce0cde0cee0cfe0d0e0d1e0d2e0d3e0d4e0d5e0d6e0d7e0d8e0d9e0dae0dbe0dce0dde0dee0dfe0e0e0e1e0e2e0e3e0e4e0e5e0e6e0e7e0e8e0e9e0eae0ebe0ece0ede0eee0efe0f0e0f1e0f2e0f3e0f4e0f5e0f6e0f7e0f8e0f9e0fae0fbe0fce0fde0fee0ffe000e101e102e103e104e105e106e107e108e109e10ae10be10ce10de10ee10fe110e111e112e113e114e115e116e117e118e119e11ae11be11ce11de11ee11fe120e121e122e123e124e125e126e127e128e129e12ae12be12ce12de12ee12fe130e131e132e133e134e135e136e137e138e139e13ae13be13ce13de13ee13fe140e141e142e143e144e145e146e147e148e149e14ae14be14ce14de14ee14fe150e151e152e153e154e155e156e157e158e159e15ae15be15ce15de15ee15fe160e161e162e163e164e165e166e167e168e169e16ae16be16ce16de16ee16fe170e171e172e173e174e175e176e177e178e179e17ae17be17ce17de17ee17fe180e181e182e183e184e185e186e187e188e189e18ae18be18ce18de18ee18fe190e191e192e193e194e195e196e197e198e199e19ae19be19ce19de19ee19fe1a0e1a1e1a2e1a3e1a4e1a5e1a6e1a7e1a8e1a9e1aae1abe1ace1ade1aee1afe1b0e1b1e1b2e1b3e1b4e1b5e1b6e1b7e1b8e1b9e1bae1bbe1bce1bde1bee1bfe1c0e1c1e1c2e1c3e1c4e1c5e1c6e1c7e1c8e1c9e1cae1cbe1cce1cde1cee1cfe1d0e1d1e1d2e1d3e1d4e1d5e1d6e1d7e1d8e1d9e1dae1dbe1dce1dde1dee1dfe1e0e1e1e1e2e1e3e1e4e1e5e1e6e1e7e1e8e1e9e1eae1ebe1ece1ede1eee1efe1f0e1f1e1f2e1f3e1f4e1f5e1f6e1f7e1f8e1f9e1fae1fbe1fce1fde1fee1ffe100e201e202e203e204e205e206e207e208e209e20ae20be20ce20de20ee20fe210e211e212e213e214e215e216e217e218e219e21ae21be21ce21de21ee21fe220e221e222e223e224e225e226e227e228e229e22ae22be22ce22de22ee22fe230e231e232e233e234e235e236e237e238e239e23ae23be23ce23de23ee23fe240e241e242e243e244e245e246e247e248e249e24ae24be24ce24de24ee24fe250e251e252e253e254e255e256e257e258e259e25ae25be25ce25de25ee25fe260e261e262e263e264e265e266e267e268e269e26ae26be26ce26de26ee26fe270e271e272e273e274e275e276e277e278e279e27ae27be27ce27de27ee27fe280e281e282e283e284e285e286e287e288e289e28ae28be28ce28de28ee28fe290e291e292e293e294e295e296e297e298e299e29ae29be29ce29de29ee29fe2a0e2a1e2a2e2a3e2a4e2a5e2a6e2a7e2a8e2a9e2aae2abe2ace2ade2aee2afe2b0e2b1e2b2e2b3e2b4e2b5e2b6e2b7e2b8e2b9e2bae2bbe2bce2bde2bee2bfe2c0e2c1e2c2e2c3e2c4e2c5e2c6e2c7e2c8e2c9e2cae2cbe2cce2cde2cee2cfe2d0e2d1e2d2e2d3e2d4e2d5e2d6e2d7e2d8e2d9e2dae2dbe2dce2dde2dee2dfe2e0e2e1e2e2e2e3e2e4e2e5e2e6e2e7e2e8e2e9e2eae2ebe2ece2ede2eee2efe2f0e2f1e2f2e2f3e2f4e2f5e2f6e2f7e2f8e2f9e2fae2fbe2fce2fde2fee2ffe200e301e302e303e304e305e306e307e308e309e30ae30be30ce30de30ee30fe310e311e312e313e314e315e316e317e318e319e31ae31be31ce31de31ee31fe320e321e322e323e324e325e326e327e328e329e32ae32be32ce32de32ee32fe330e331e332e333e334e335e336e337e338e339e33ae33be33ce33de33ee33fe340e341e342e343e344e345e346e347e348e349e34ae34be34ce34de34ee34fe350e351e352e353e354e355e356e357e358e359e35ae35be35ce35de35ee35fe360e361e362e363e364e365e366e367e368e369e36ae36be36ce36de36ee36fe370e371e372e373e374e375e376e377e378e379e37ae37be37ce37de37ee37fe380e381e382e383e384e385e386e387e388e389e38ae38be38ce38de38ee38fe390e391e392e393e394e395e396e397e398e399e39ae39be39ce39de39ee39fe3a0e3a1e3a2e3a3e3a4e3a5e3a6e3a7e3a8e3a9e3aae3abe3ace3ade3aee3afe3b0e3b1e3b2e3b3e3b4e3b5e3b6e3b7e3b8e3b9e3bae3bbe3bce3bde3bee3bfe3c0e3c1e3c2e3c3e3c4e3c5e3c6e3c7e3c8e3c9e3cae3cbe3cce3cde3cee3cfe3d0e3d1e3d2e3d3e3d4e3d5e3d6e3d7e3d8e3d9e3dae3dbe3dce3dde3dee3dfe3e0e3e1e3e2e3e3e3e4e3e5e3e6e3e7e3e8e3e9e3eae3ebe3ece3ede3eee3efe3f0e3f1e3f2e3f3e3f4e3f5e3f6e3f7e3f8e3f9e3fae3fbe3fce3fde3fee3ffe300e401e402e403e404e405e406e407e408e409e40ae40be40ce40de40ee40fe410e411e412e413e414e415e416e417e418e419e41ae41be41ce41de41ee41fe420e421e422e423e424e425e426e427e428e429e42ae42be42ce42de42ee42fe430e431e432e433e434e435e436e437e438e439e43ae43be43ce43de43ee43fe440e441e442e443e444e445e446e447e448e449e44ae44be44ce44de44ee44fe450e451e452e453e454e455e456e457e458e459e45ae45be45ce45de45ee45fe460e461e462e463e464e465e466e467e468e469e46ae46be46ce46de46ee46fe470e471e472e473e474e475e476e477e478e479e47ae47be47ce47de47ee47fe480e481e482e483e484e485e486e487e488e489e48ae48be48ce48de48ee48fe490e491e492e493e494e495e496e497e498e499e49ae49be49ce49de49ee49fe4a0e4a1e4a2e4a3e4a4e4a5e4a6e4a7e4a8e4a9e4aae4abe4ace4ade4aee4afe4b0e4b1e4b2e4b3e4b4e4b5e4b6e4b7e4b8e4b9e4bae4bbe4bce4bde4bee4bfe4c0e4c1e4c2e4c3e4c4e4c5e4c6e4c7e4c8e4c9e4cae4cbe4cce4cde4cee4cfe4d0e4d1e4d2e4d3e4d4e4d5e4d6e4d7e4d8e4d9e4dae4dbe4dce4dde4dee4dfe4e0e4e1e4e2e4e3e4e4e4e5e4e6e4e7e4e8e4e9e4eae4ebe4ece4ede4eee4efe4f0e4f1e4f2e4f3e4f4e4f5e4f6e4f7e4f8e4f9e4fae4fbe4fce4fde4fee4ffe400e501e502e503e504e505e506e507e508e509e50ae50be50ce50de50ee50fe510e511e512e513e514e515e516e517e518e519e51ae51be51ce51de51ee51fe520e521e522e523e524e525e526e527e528e529e52ae52be52ce52de52ee52fe530e531e532e533e534e535e536e537e538e539e53ae53be53ce53de53ee53fe540e541e542e543e544e545e546e547e548e549e54ae54be54ce54de54ee54fe550e551e552e553e554e555e556e557e558e559e55ae55be55ce55de55ee55fe560e561e562e563e564e565e566e567e568e569e56ae56be56ce56de56ee56fe570e571e572e573e574e575e576e577e578e579e57ae57be57ce57de57ee57fe580e581e582e583e584e585e586e587e588e589e58ae58be58ce58de58ee58fe590e591e592e593e594e595e596e597e598e599e59ae59be59ce59de59ee59fe5a0e5a1e5a2e5a3e5a4e5a5e5a6e5a7e5a8e5a9e5aae5abe5ace5ade5aee5afe5b0e5b1e5b2e5b3e5b4e5b5e5b6e5b7e5b8e5b9e5bae5bbe5bce5bde5bee5bfe5c0e5c1e5c2e5c3e5c4e5c5e5c6e5c7e5c8e5c9e5cae5cbe5cce5cde5cee5cfe5d0e5d1e5d2e5d3e5d4e5d5e5d6e5d7e5d8e5d9e5dae5dbe5dce5dde5dee5dfe5e0e5e1e5e2e5e3e5e4e5e5e5e6e5e7e5e8e5e9e5eae5ebe5ece5ede5eee5efe5f0e5f1e5f2e5f3e5f4e5f5e5f6e5f7e5f8e5f9e5fae5fbe5fce5fde5fee5ffe500e601e602e603e604e605e606e607e608e609e60ae60be60ce60de60ee60fe610e611e612e613e614e615e616e617e618e619e61ae61be61ce61de61ee61fe620e621e622e623e624e625e626e627e628e629e62ae62be62ce62de62ee62fe630e631e632e633e634e635e636e637e638e639e63ae63be63ce63de63ee63fe640e641e642e643e644e645e646e647e648e649e64ae64be64ce64de64ee64fe650e651e652e653e654e655e656e657e658e659e65ae65be65ce65de65ee65fe660e661e662e663e664e665e666e667e668e669e66ae66be66ce66de66ee66fe670e671e672e673e674e675e676e677e678e679e67ae67be67ce67de67ee67fe680e681e682e683e684e685e686e687e688e689e68ae68be68ce68de68ee68fe690e691e692e693e694e695e696e697e698e699e69ae69be69ce69de69ee69fe6a0e6a1e6a2e6a3e6a4e6a5e6a6e6a7e6a8e6a9e6aae6abe6ace6ade6aee6afe6b0e6b1e6b2e6b3e6b4e6b5e6b6e6b7e6b8e6b9e6bae6bbe6bce6bde6bee6bfe6c0e6c1e6c2e6c3e6c4e6c5e6c6e6c7e6c8e6c9e6cae6cbe6cce6cde6cee6cfe6d0e6d1e6d2e6d3e6d4e6d5e6d6e6d7e6d8e6d9e6dae6dbe6dce6dde6dee6dfe6e0e6e1e6e2e6e3e6e4e6e5e6e6e6e7e6e8e6e9e6eae6ebe6ece6ede6eee6efe6f0e6f1e6f2e6f3e6f4e6f5e6f6e6f7e6f8e6f9e6fae6fbe6fce6fde6fee6ffe600e701e702e703e704e705e706e707e708e709e70ae70be70ce70de70ee70fe710e711e712e713e714e715e716e717e718e719e71ae71be71ce71de71ee71fe720e721e722e723e724e725e726e727e728e729e72ae72be72ce72de72ee72fe730e731e732e733e734e735e736e737e738e739e73ae73be73ce73de73ee73fe740e741e742e743e744e745e746e747e748e749e74ae74be74ce74de74ee74fe750e751e752e753e754e755e756e757e758e759e75ae75be75ce75de75ee75fe760e761e762e763e764e765e766e767e768e769e76ae76be76ce76de76ee76fe770e771e772e773e774e775e776e777e778e779e77ae77be77ce77de77ee77fe780e781e782e783e784e785e786e787e788e789e78ae78be78ce78de78ee78fe790e791e792e793e794e795e796e797e798e799e79ae79be79ce79de79ee79fe7a0e7a1e7a2e7a3e7a4e7a5e7a6e7a7e7a8e7a9e7aae7abe7ace7ade7aee7afe7b0e7b1e7b2e7b3e7b4e7b5e7b6e7b7e7b8e7b9e7bae7bbe7bce7bde7bee7bfe7c0e7c1e7c2e7c3e7c4e7c5e7c6e7c7e7c8e7c9e7cae7cbe7cce7cde7cee7cfe7d0e7d1e7d2e7d3e7d4e7d5e7d6e7d7e7d8e7d9e7dae7dbe7dce7dde7dee7dfe7e0e7e1e7e2e7e3e7e4e7e5e7e6e7e7e7e8e7e9e7eae7ebe7ece7ede7eee7efe7f0e7f1e7f2e7f3e7f4e7f5e7f6e7f7e7f8e7f9e7fae7fbe7fce7fde7fee7ffe700e801e802e803e804e805e806e807e808e809e80ae80be80ce80de80ee80fe810e811e812e813e814e815e816e817e818e819e81ae81be81ce81de81ee81fe820e821e822e823e824e825e826e827e828e829e82ae82be82ce82de82ee82fe830e831e832e833e834e835e836e837e838e839e83ae83be83ce83de83ee83fe840e841e842e843e844e845e846e847e848e849e84ae84be84ce84de84ee84fe850e851e852e853e854e855e856e857e858e859e85ae85be85ce85de85ee85fe860e861e862e863e864e865e866e867e868e869e86ae86be86ce86de86ee86fe870e871e872e873e874e875e876e877e878e879e87ae87be87ce87de87ee87fe880e881e882e883e884e885e886e887e888e889e88ae88be88ce88de88ee88fe890e891e892e893e894e895e896e897e898e899e89ae89be89ce89de89ee89fe8a0e8a1e8a2e8a3e8a4e8a5e8a6e8a7e8a8e8a9e8aae8abe8ace8ade8aee8afe8b0e8b1e8b2e8b3e8b4e8b5e8b6e8b7e8b8e8b9e8bae8bbe8bce8bde8bee8bfe8c0e8c1e8c2e8c3e8c4e8c5e8c6e8c7e8c8e8c9e8cae8cbe8cce8cde8cee8cfe8d0e8d1e8d2e8d3e8d4e8d5e8d6e8d7e8d8e8d9e8dae8dbe8dce8dde8dee8dfe8e0e8e1e8e2e8e3e8e4e8e5e8e6e8e7e8e8e8e9e8eae8ebe8ece8ede8eee8efe8f0e8f1e8f2e8f3e8f4e8f5e8f6e8f7e8f8e8f9e8fae8fbe8fce8fde8fee8ffe800e901e902e903e904e905e906e907e908e909e90ae90be90ce90de90ee90fe910e911e912e913e914e915e916e917e918e919e91ae91be91ce91de91ee91fe920e921e922e923e924e925e926e927e928e929e92ae92be92ce92de92ee92fe930e931e932e933e934e935e936e937e938e939e93ae93be93ce93de93ee93fe940e941e942e943e944e945e946e947e948e949e94ae94be94ce94de94ee94fe950e951e952e953e954e955e956e957e958e959e95ae95be95ce95de95ee95fe960e961e962e963e964e965e966e967e968e969e96ae96be96ce96de96ee96fe970e971e972e973e974e975e976e977e978e979e97ae97be97ce97de97ee97fe980e981e982e983e984e985e986e987e988e989e98ae98be98ce98de98ee98fe990e991e992e993e994e995e996e997e998e999e99ae99be99ce99de99ee99fe9a0e9a1e9a2e9a3e9a4e9a5e9a6e9a7e9a8e9a9e9aae9abe9ace9ade9aee9afe9b0e9b1e9b2e9b3e9b4e9b5e9b6e9b7e9b8e9b9e9bae9bbe9bce9bde9bee9bfe9c0e9c1e9c2e9c3e9c4e9c5e9c6e9c7e9c8e9c9e9cae9cbe9cce9cde9cee9cfe9d0e9d1e9d2e9d3e9d4e9d5e9d6e9d7e9d8e9d9e9dae9dbe9dce9dde9dee9dfe9e0e9e1e9e2e9e3e9e4e9e5e9e6e9e7e9e8e9e9e9eae9ebe9ece9ede9eee9efe9f0e9f1e9f2e9f3e9f4e9f5e9f6e9f7e9f8e9f9e9fae9fbe9fce9fde9fee9ffe900ea01ea02ea03ea04ea05ea06ea07ea08ea09ea0aea0bea0cea0dea0eea0fea10ea11ea12ea13ea14ea15ea16ea17ea18ea19ea1aea1bea1cea1dea1eea1fea20ea21ea22ea23ea24ea25ea26ea27ea28ea29ea2aea2bea2cea2dea2eea2fea30ea31ea32ea33ea34ea35ea36ea37ea38ea39ea3aea3bea3cea3dea3eea3fea40ea41ea42ea43ea44ea45ea46ea47ea48ea49ea4aea4bea4cea4dea4eea4fea50ea51ea52ea53ea54ea55ea56ea57ea58ea59ea5aea5bea5cea5dea5eea5fea60ea61ea62ea63ea64ea65ea66ea67ea68ea69ea6aea6bea6cea6dea6eea6fea70ea71ea72ea73ea74ea75ea76ea77ea78ea79ea7aea7bea7cea7dea7eea7fea80ea81ea82ea83ea84ea85ea86ea87ea88ea89ea8aea8bea8cea8dea8eea8fea90ea91ea92ea93ea94ea95ea96ea97ea98ea99ea9aea9bea9cea9dea9eea9feaa0eaa1eaa2eaa3eaa4eaa5eaa6eaa7eaa8eaa9eaaaeaabeaaceaadeaaeeaafeab0eab1eab2eab3eab4eab5eab6eab7eab8eab9eabaeabbeabceabdeabeeabfeac0eac1eac2eac3eac4eac5eac6eac7eac8eac9eacaeacbeacceacdeaceeacfead0ead1ead2ead3ead4ead5ead6ead7ead8ead9eadaeadbeadceaddeadeeadfeae0eae1eae2eae3eae4eae5eae6eae7eae8eae9eaeaeaebeaeceaedeaeeeaefeaf0eaf1eaf2eaf3eaf4eaf5eaf6eaf7eaf8eaf9eafaeafbeafceafdeafeeaffea00eb01eb02eb03eb04eb05eb06eb07eb08eb09eb0aeb0beb0ceb0deb0eeb0feb10eb11eb12eb13eb14eb15eb16eb17eb18eb19eb1aeb1beb1ceb1deb1eeb1feb20eb21eb22eb23eb24eb25eb26eb27eb28eb29eb2aeb2beb2ceb2deb2eeb2feb30eb31eb32eb33eb34eb35eb36eb37eb38eb39eb3aeb3beb3ceb3deb3eeb3feb40eb41eb42eb43eb44eb45eb46eb47eb48eb49eb4aeb4beb4ceb4deb4eeb4feb50eb51eb52eb53eb54eb55eb56eb57eb58eb59eb5aeb5beb5ceb5deb5eeb5feb60eb61eb62eb63eb64eb65eb66eb67eb68eb69eb6aeb6beb6ceb6deb6eeb6feb70eb71eb72eb73eb74eb75eb76eb77eb78eb79eb7aeb7beb7ceb7deb7eeb7feb80eb81eb82eb83eb84eb85eb86eb87eb88eb89eb8aeb8beb8ceb8deb8eeb8feb90eb91eb92eb93eb94eb95eb96eb97eb98eb99eb9aeb9beb9ceb9deb9eeb9feba0eba1eba2eba3eba4eba5eba6eba7eba8eba9ebaaebabebacebadebaeebafebb0ebb1ebb2ebb3ebb4ebb5ebb6ebb7ebb8ebb9ebbaebbbebbcebbdebbeebbfebc0ebc1ebc2ebc3ebc4ebc5ebc6ebc7ebc8ebc9ebcaebcbebccebcdebceebcfebd0ebd1ebd2ebd3ebd4ebd5ebd6ebd7ebd8ebd9ebdaebdbebdcebddebdeebdfebe0ebe1ebe2ebe3ebe4ebe5ebe6ebe7ebe8ebe9ebeaebebebecebedebeeebefebf0ebf1ebf2ebf3ebf4ebf5ebf6ebf7ebf8ebf9ebfaebfbebfcebfdebfeebffeb00ec01ec02ec03ec04ec05ec06ec07ec08ec09ec0aec0bec0cec0dec0eec0fec10ec11ec12ec13ec14ec15ec16ec17ec18ec19ec1aec1bec1cec1dec1eec1fec20ec21ec22ec23ec24ec25ec26ec27ec28ec29ec2aec2bec2cec2dec2eec2fec30ec31ec32ec33ec34ec35ec36ec37ec38ec39ec3aec3bec3cec3dec3eec3fec40ec41ec42ec43ec44ec45ec46ec47ec48ec49ec4aec4bec4cec4dec4eec4fec50ec51ec52ec53ec54ec55ec56ec57ec58ec59ec5aec5bec5cec5dec5eec5fec60ec61ec62ec63ec64ec65ec66ec67ec68ec69ec6aec6bec6cec6dec6eec6fec70ec71ec72ec73ec74ec75ec76ec77ec78ec79ec7aec7bec7cec7dec7eec7fec80ec81ec82ec83ec84ec85ec86ec87ec88ec89ec8aec8bec8cec8dec8eec8fec90ec91ec92ec93ec94ec95ec96ec97ec98ec99ec9aec9bec9cec9dec9eec9feca0eca1eca2eca3eca4eca5eca6eca7eca8eca9ecaaecabecacecadecaeecafecb0ecb1ecb2ecb3ecb4ecb5ecb6ecb7ecb8ecb9ecbaecbbecbcecbdecbeecbfecc0ecc1ecc2ecc3ecc4ecc5ecc6ecc7ecc8ecc9eccaeccbeccceccdecceeccfecd0ecd1ecd2ecd3ecd4ecd5ecd6ecd7ecd8ecd9ecdaecdbecdcecddecdeecdfece0ece1ece2ece3ece4ece5ece6ece7ece8ece9eceaecebecececedeceeecefecf0ecf1ecf2ecf3ecf4ecf5ecf6ecf7ecf8ecf9ecfaecfbecfcecfdecfeecffec00ed01ed02ed03ed04ed05ed06ed07ed08ed09ed0aed0bed0ced0ded0eed0fed10ed11ed12ed13ed14ed15ed16ed17ed18ed19ed1aed1bed1ced1ded1eed1fed20ed21ed22ed23ed24ed25ed26ed27ed28ed29ed2aed2bed2ced2ded2eed2fed30ed31ed32ed33ed34ed35ed36ed37ed38ed39ed3aed3bed3ced3ded3eed3fed40ed41ed42ed43ed44ed45ed46ed47ed48ed49ed4aed4bed4ced4ded4eed4fed50ed51ed52ed53ed54ed55ed56ed57ed58ed59ed5aed5bed5ced5ded5eed5fed60ed61ed62ed63ed64ed65ed66ed67ed68ed69ed6aed6bed6ced6ded6eed6fed70ed71ed72ed73ed74ed75ed76ed77ed78ed79ed7aed7bed7ced7ded7eed7fed80ed81ed82ed83ed84ed85ed86ed87ed88ed89ed8aed8bed8ced8ded8eed8fed90ed91ed92ed93ed94ed95ed96ed97ed98ed99ed9aed9bed9ced9ded9eed9feda0eda1eda2eda3eda4eda5eda6eda7eda8eda9edaaedabedacedadedaeedafedb0edb1edb2edb3edb4edb5edb6edb7edb8edb9edbaedbbedbcedbdedbeedbfedc0edc1edc2edc3edc4edc5edc6edc7edc8edc9edcaedcbedccedcdedceedcfedd0edd1edd2edd3edd4edd5edd6edd7edd8edd9eddaeddbeddcedddeddeeddfede0ede1ede2ede3ede4ede5ede6ede7ede8ede9edeaedebedecedededeeedefedf0edf1edf2edf3edf4edf5edf6edf7edf8edf9edfaedfbedfcedfdedfeedffed00ee01ee02ee03ee04ee05ee06ee07ee08ee09ee0aee0bee0cee0dee0eee0fee10ee11ee12ee13ee14ee15ee16ee17ee18ee19ee1aee1bee1cee1dee1eee1fee20ee21ee22ee23ee24ee25ee26ee27ee28ee29ee2aee2bee2cee2dee2eee2fee30ee31ee32ee33ee34ee35ee36ee37ee38ee39ee3aee3bee3cee3dee3eee3fee40ee41ee42ee43ee44ee45ee46ee47ee48ee49ee4aee4bee4cee4dee4eee4fee50ee51ee52ee53ee54ee55ee56ee57ee58ee59ee5aee5bee5cee5dee5eee5fee60ee61ee62ee63ee64ee65ee66ee67ee68ee69ee6aee6bee6cee6dee6eee6fee70ee71ee72ee73ee74ee75ee76ee77ee78ee79ee7aee7bee7cee7dee7eee7fee80ee81ee82ee83ee84ee85ee86ee87ee88ee89ee8aee8bee8cee8dee8eee8fee90ee91ee92ee93ee94ee95ee96ee97ee98ee99ee9aee9bee9cee9dee9eee9feea0eea1eea2eea3eea4eea5eea6eea7eea8eea9eeaaeeabeeaceeadeeaeeeafeeb0eeb1eeb2eeb3eeb4eeb5eeb6eeb7eeb8eeb9eebaeebbeebceebdeebeeebfeec0eec1eec2eec3eec4eec5eec6eec7eec8eec9eecaeecbeecceecdeeceeecfeed0eed1eed2eed3eed4eed5eed6eed7eed8eed9eedaeedbeedceeddeedeeedfeee0eee1eee2eee3eee4eee5eee6eee7eee8eee9eeeaeeebeeeceeedeeeeeeefeef0eef1eef2eef3eef4eef5eef6eef7eef8eef9eefaeefbeefceefdeefeeeffee00ef01ef02ef03ef04ef05ef06ef07ef08ef09ef0aef0bef0cef0def0eef0fef10ef11ef12ef13ef14ef15ef16ef17ef18ef19ef1aef1bef1cef1def1eef1fef20ef21ef22ef23ef24ef25ef26ef27ef28ef29ef2aef2bef2cef2def2eef2fef30ef31ef32ef33ef34ef35ef36ef37ef38ef39ef3aef3bef3cef3def3eef3fef40ef41ef42ef43ef44ef45ef46ef47ef48ef49ef4aef4bef4cef4def4eef4fef50ef51ef52ef53ef54ef55ef56ef57ef58ef59ef5aef5bef5cef5def5eef5fef60ef61ef62ef63ef64ef65ef66ef67ef68ef69ef6aef6bef6cef6def6eef6fef70ef71ef72ef73ef74ef75ef76ef77ef78ef79ef7aef7bef7cef7def7eef7fef80ef81ef82ef83ef84ef85ef86ef87ef88ef89ef8aef8bef8cef8def8eef8fef90ef91ef92ef93ef94ef95ef96ef97ef98ef99ef9aef9bef9cef9def9eef9fefa0efa1efa2efa3efa4efa5efa6efa7efa8efa9efaaefabefacefadefaeefafefb0efb1efb2efb3efb4efb5efb6efb7efb8efb9efbaefbbefbcefbdefbeefbfefc0efc1efc2efc3efc4efc5efc6efc7efc8efc9efcaefcbefccefcdefceefcfefd0efd1efd2efd3efd4efd5efd6efd7efd8efd9efdaefdbefdcefddefdeefdfefe0efe1efe2efe3efe4efe5efe6efe7efe8efe9efeaefebefecefedefeeefefeff0eff1eff2eff3eff4eff5eff6eff7eff8eff9effaeffbeffceffdeffeefffef00f001f002f003f004f005f006f007f008f009f00af00bf00cf00df00ef00ff010f011f012f013f014f015f016f017f018f019f01af01bf01cf01df01ef01ff020f021f022f023f024f025f026f027f028f029f02af02bf02cf02df02ef02ff030f031f032f033f034f035f036f037f038f039f03af03bf03cf03df03ef03ff040f041f042f043f044f045f046f047f048f049f04af04bf04cf04df04ef04ff050f051f052f053f054f055f056f057f058f059f05af05bf05cf05df05ef05ff060f061f062f063f064f065f066f067f068f069f06af06bf06cf06df06ef06ff070f071f072f073f074f075f076f077f078f079f07af07bf07cf07df07ef07ff080f081f082f083f084f085f086f087f088f089f08af08bf08cf08df08ef08ff090f091f092f093f094f095f096f097f098f099f09af09bf09cf09df09ef09ff0a0f0a1f0a2f0a3f0a4f0a5f0a6f0a7f0a8f0a9f0aaf0abf0acf0adf0aef0aff0b0f0b1f0b2f0b3f0b4f0b5f0b6f0b7f0b8f0b9f0baf0bbf0bcf0bdf0bef0bff0c0f0c1f0c2f0c3f0c4f0c5f0c6f0c7f0c8f0c9f0caf0cbf0ccf0cdf0cef0cff0d0f0d1f0d2f0d3f0d4f0d5f0d6f0d7f0d8f0d9f0daf0dbf0dcf0ddf0def0dff0e0f0e1f0e2f0e3f0e4f0e5f0e6f0e7f0e8f0e9f0eaf0ebf0ecf0edf0eef0eff0f0f0f1f0f2f0f3f0f4f0f5f0f6f0f7f0f8f0f9f0faf0fbf0fcf0fdf0fef0fff000f101f102f103f104f105f106f107f108f109f10af10bf10cf10df10ef10ff110f111f112f113f114f115f116f117f118f119f11af11bf11cf11df11ef11ff120f121f122f123f124f125f126f127f128f129f12af12bf12cf12df12ef12ff130f131f132f133f134f135f136f137f138f139f13af13bf13cf13df13ef13ff140f141f142f143f144f145f146f147f148f149f14af14bf14cf14df14ef14ff150f151f152f153f154f155f156f157f158f159f15af15bf15cf15df15ef15ff160f161f162f163f164f165f166f167f168f169f16af16bf16cf16df16ef16ff170f171f172f173f174f175f176f177f178f179f17af17bf17cf17df17ef17ff180f181f182f183f184f185f186f187f188f189f18af18bf18cf18df18ef18ff190f191f192f193f194f195f196f197f198f199f19af19bf19cf19df19ef19ff1a0f1a1f1a2f1a3f1a4f1a5f1a6f1a7f1a8f1a9f1aaf1abf1acf1adf1aef1aff1b0f1b1f1b2f1b3f1b4f1b5f1b6f1b7f1b8f1b9f1baf1bbf1bcf1bdf1bef1bff1c0f1c1f1c2f1c3f1c4f1c5f1c6f1c7f1c8f1c9f1caf1cbf1ccf1cdf1cef1cff1d0f1d1f1d2f1d3f1d4f1d5f1d6f1d7f1d8f1d9f1daf1dbf1dcf1ddf1def1dff1e0f1e1f1e2f1e3f1e4f1e5f1e6f1e7f1e8f1e9f1eaf1ebf1ecf1edf1eef1eff1f0f1f1f1f2f1f3f1f4f1f5f1f6f1f7f1f8f1f9f1faf1fbf1fcf1fdf1fef1fff100f201f202f203f204f205f206f207f208f209f20af20bf20cf20df20ef20ff210f211f212f213f214f215f216f217f218f219f21af21bf21cf21df21ef21ff220f221f222f223f224f225f226f227f228f229f22af22bf22cf22df22ef22ff230f231f232f233f234f235f236f237f238f239f23af23bf23cf23df23ef23ff240f241f242f243f244f245f246f247f248f249f24af24bf24cf24df24ef24ff250f251f252f253f254f255f256f257f258f259f25af25bf25cf25df25ef25ff260f261f262f263f264f265f266f267f268f269f26af26bf26cf26df26ef26ff270f271f272f273f274f275f276f277f278f279f27af27bf27cf27df27ef27ff280f281f282f283f284f285f286f287f288f289f28af28bf28cf28df28ef28ff290f291f292f293f294f295f296f297f298f299f29af29bf29cf29df29ef29ff2a0f2a1f2a2f2a3f2a4f2a5f2a6f2a7f2a8f2a9f2aaf2abf2acf2adf2aef2aff2b0f2b1f2b2f2b3f2b4f2b5f2b6f2b7f2b8f2b9f2baf2bbf2bcf2bdf2bef2bff2c0f2c1f2c2f2c3f2c4f2c5f2c6f2c7f2c8f2c9f2caf2cbf2ccf2cdf2cef2cff2d0f2d1f2d2f2d3f2d4f2d5f2d6f2d7f2d8f2d9f2daf2dbf2dcf2ddf2def2dff2e0f2e1f2e2f2e3f2e4f2e5f2e6f2e7f2e8f2e9f2eaf2ebf2ecf2edf2eef2eff2f0f2f1f2f2f2f3f2f4f2f5f2f6f2f7f2f8f2f9f2faf2fbf2fcf2fdf2fef2fff200f301f302f303f304f305f306f307f308f309f30af30bf30cf30df30ef30ff310f311f312f313f314f315f316f317f318f319f31af31bf31cf31df31ef31ff320f321f322f323f324f325f326f327f328f329f32af32bf32cf32df32ef32ff330f331f332f333f334f335f336f337f338f339f33af33bf33cf33df33ef33ff340f341f342f343f344f345f346f347f348f349f34af34bf34cf34df34ef34ff350f351f352f353f354f355f356f357f358f359f35af35bf35cf35df35ef35ff360f361f362f363f364f365f366f367f368f369f36af36bf36cf36df36ef36ff370f371f372f373f374f375f376f377f378f379f37af37bf37cf37df37ef37ff380f381f382f383f384f385f386f387f388f389f38af38bf38cf38df38ef38ff390f391f392f393f394f395f396f397f398f399f39af39bf39cf39df39ef39ff3a0f3a1f3a2f3a3f3a4f3a5f3a6f3a7f3a8f3a9f3aaf3abf3acf3adf3aef3aff3b0f3b1f3b2f3b3f3b4f3b5f3b6f3b7f3b8f3b9f3baf3bbf3bcf3bdf3bef3bff3c0f3c1f3c2f3c3f3c4f3c5f3c6f3c7f3c8f3c9f3caf3cbf3ccf3cdf3cef3cff3d0f3d1f3d2f3d3f3d4f3d5f3d6f3d7f3d8f3d9f3daf3dbf3dcf3ddf3def3dff3e0f3e1f3e2f3e3f3e4f3e5f3e6f3e7f3e8f3e9f3eaf3ebf3ecf3edf3eef3eff3f0f3f1f3f2f3f3f3f4f3f5f3f6f3f7f3f8f3f9f3faf3fbf3fcf3fdf3fef3fff300f401f402f403f404f405f406f407f408f409f40af40bf40cf40df40ef40ff410f411f412f413f414f415f416f417f418f419f41af41bf41cf41df41ef41ff420f421f422f423f424f425f426f427f428f429f42af42bf42cf42df42ef42ff430f431f432f433f434f435f436f437f438f439f43af43bf43cf43df43ef43ff440f441f442f443f444f445f446f447f448f449f44af44bf44cf44df44ef44ff450f451f452f453f454f455f456f457f458f459f45af45bf45cf45df45ef45ff460f461f462f463f464f465f466f467f468f469f46af46bf46cf46df46ef46ff470f471f472f473f474f475f476f477f478f479f47af47bf47cf47df47ef47ff480f481f482f483f484f485f486f487f488f489f48af48bf48cf48df48ef48ff490f491f492f493f494f495f496f497f498f499f49af49bf49cf49df49ef49ff4a0f4a1f4a2f4a3f4a4f4a5f4a6f4a7f4a8f4a9f4aaf4abf4acf4adf4aef4aff4b0f4b1f4b2f4b3f4b4f4b5f4b6f4b7f4b8f4b9f4baf4bbf4bcf4bdf4bef4bff4c0f4c1f4c2f4c3f4c4f4c5f4c6f4c7f4c8f4c9f4caf4cbf4ccf4cdf4cef4cff4d0f4d1f4d2f4d3f4d4f4d5f4d6f4d7f4d8f4d9f4daf4dbf4dcf4ddf4def4dff4e0f4e1f4e2f4e3f4e4f4e5f4e6f4e7f4e8f4e9f4eaf4ebf4ecf4edf4eef4eff4f0f4f1f4f2f4f3f4f4f4f5f4f6f4f7f4f8f4f9f4faf4fbf4fcf4fdf4fef4fff400f501f502f503f504f505f506f507f508f509f50af50bf50cf50df50ef50ff510f511f512f513f514f515f516f517f518f519f51af51bf51cf51df51ef51ff520f521f522f523f524f525f526f527f528f529f52af52bf52cf52df52ef52ff530f531f532f533f534f535f536f537f538f539f53af53bf53cf53df53ef53ff540f541f542f543f544f545f546f547f548f549f54af54bf54cf54df54ef54ff550f551f552f553f554f555f556f557f558f559f55af55bf55cf55df55ef55ff560f561f562f563f564f565f566f567f568f569f56af56bf56cf56df56ef56ff570f571f572f573f574f575f576f577f578f579f57af57bf57cf57df57ef57ff580f581f582f583f584f585f586f587f588f589f58af58bf58cf58df58ef58ff590f591f592f593f594f595f596f597f598f599f59af59bf59cf59df59ef59ff5a0f5a1f5a2f5a3f5a4f5a5f5a6f5a7f5a8f5a9f5aaf5abf5acf5adf5aef5aff5b0f5b1f5b2f5b3f5b4f5b5f5b6f5b7f5b8f5b9f5baf5bbf5bcf5bdf5bef5bff5c0f5c1f5c2f5c3f5c4f5c5f5c6f5c7f5c8f5c9f5caf5cbf5ccf5cdf5cef5cff5d0f5d1f5d2f5d3f5d4f5d5f5d6f5d7f5d8f5d9f5daf5dbf5dcf5ddf5def5dff5e0f5e1f5e2f5e3f5e4f5e5f5e6f5e7f5e8f5e9f5eaf5ebf5ecf5edf5eef5eff5f0f5f1f5f2f5f3f5f4f5f5f5f6f5f7f5f8f5f9f5faf5fbf5fcf5fdf5fef5fff500f601f602f603f604f605f606f607f608f609f60af60bf60cf60df60ef60ff610f611f612f613f614f615f616f617f618f619f61af61bf61cf61df61ef61ff620f621f622f623f624f625f626f627f628f629f62af62bf62cf62df62ef62ff630f631f632f633f634f635f636f637f638f639f63af63bf63cf63df63ef63ff640f641f642f643f644f645f646f647f648f649f64af64bf64cf64df64ef64ff650f651f652f653f654f655f656f657f658f659f65af65bf65cf65df65ef65ff660f661f662f663f664f665f666f667f668f669f66af66bf66cf66df66ef66ff670f671f672f673f674f675f676f677f678f679f67af67bf67cf67df67ef67ff680f681f682f683f684f685f686f687f688f689f68af68bf68cf68df68ef68ff690f691f692f693f694f695f696f697f698f699f69af69bf69cf69df69ef69ff6a0f6a1f6a2f6a3f6a4f6a5f6a6f6a7f6a8f6a9f6aaf6abf6acf6adf6aef6aff6b0f6b1f6b2f6b3f6b4f6b5f6b6f6b7f6b8f6b9f6baf6bbf6bcf6bdf6bef6bff6c0f6c1f6c2f6c3f6c4f6c5f6c6f6c7f6c8f6c9f6caf6cbf6ccf6cdf6cef6cff6d0f6d1f6d2f6d3f6d4f6d5f6d6f6d7f6d8f6d9f6daf6dbf6dcf6ddf6def6dff6e0f6e1f6e2f6e3f6e4f6e5f6e6f6e7f6e8f6e9f6eaf6ebf6ecf6edf6eef6eff6f0f6f1f6f2f6f3f6f4f6f5f6f6f6f7f6f8f6f9f6faf6fbf6fcf6fdf6fef6fff600f701f702f703f704f705f706f707f708f709f70af70bf70cf70df70ef70ff710f711f712f713f714f715f716f717f718f719f71af71bf71cf71df71ef71ff720f721f722f723f724f725f726f727f728f729f72af72bf72cf72df72ef72ff730f731f732f733f734f735f736f737f738f739f73af73bf73cf73df73ef73ff740f741f742f743f744f745f746f747f748f749f74af74bf74cf74df74ef74ff750f751f752f753f754f755f756f757f758f759f75af75bf75cf75df75ef75ff760f761f762f763f764f765f766f767f768f769f76af76bf76cf76df76ef76ff770f771f772f773f774f775f776f777f778f779f77af77bf77cf77df77ef77ff780f781f782f783f784f785f786f787f788f789f78af78bf78cf78df78ef78ff790f791f792f793f794f795f796f797f798f799f79af79bf79cf79df79ef79ff7a0f7a1f7a2f7a3f7a4f7a5f7a6f7a7f7a8f7a9f7aaf7abf7acf7adf7aef7aff7b0f7b1f7b2f7b3f7b4f7b5f7b6f7b7f7b8f7b9f7baf7bbf7bcf7bdf7bef7bff7c0f7c1f7c2f7c3f7c4f7c5f7c6f7c7f7c8f7c9f7caf7cbf7ccf7cdf7cef7cff7d0f7d1f7d2f7d3f7d4f7d5f7d6f7d7f7d8f7d9f7daf7dbf7dcf7ddf7def7dff7e0f7e1f7e2f7e3f7e4f7e5f7e6f7e7f7e8f7e9f7eaf7ebf7ecf7edf7eef7eff7f0f7f1f7f2f7f3f7f4f7f5f7f6f7f7f7f8f7f9f7faf7fbf7fcf7fdf7fef7fff700f801f802f803f804f805f806f807f808f809f80af80bf80cf80df80ef80ff810f811f812f813f814f815f816f817f818f819f81af81bf81cf81df81ef81ff820f821f822f823f824f825f826f827f828f829f82af82bf82cf82df82ef82ff830f831f832f833f834f835f836f837f838f839f83af83bf83cf83df83ef83ff840f841f842f843f844f845f846f847f848f849f84af84bf84cf84df84ef84ff850f851f852f853f854f855f856f857f858f859f85af85bf85cf85df85ef85ff860f861f862f863f864f865f866f867f868f869f86af86bf86cf86df86ef86ff870f871f872f873f874f875f876f877f878f879f87af87bf87cf87df87ef87ff880f881f882f883f884f885f886f887f888f889f88af88bf88cf88df88ef88ff890f891f892f893f894f895f896f897f898f899f89af89bf89cf89df89ef89ff8a0f8a1f8a2f8a3f8a4f8a5f8a6f8a7f8a8f8a9f8aaf8abf8acf8adf8aef8aff8b0f8b1f8b2f8b3f8b4f8b5f8b6f8b7f8b8f8b9f8baf8bbf8bcf8bdf8bef8bff8c0f8c1f8c2f8c3f8c4f8c5f8c6f8c7f8c8f8c9f8caf8cbf8ccf8cdf8cef8cff8d0f8d1f8d2f8d3f8d4f8d5f8d6f8d7f8d8f8d9f8daf8dbf8dcf8ddf8def8dff8e0f8e1f8e2f8e3f8e4f8e5f8e6f8e7f8e8f8e9f8eaf8ebf8ecf8edf8eef8eff8f0f8f1f8f2f8f3f8f4f8f5f8f6f8f7f8f8f8f9f8faf8fbf8fcf8fdf8fef8fff800f901f902f903f904f905f906f907f908f909f90af90bf90cf90df90ef90ff910f911f912f913f914f915f916f917f918f919f91af91bf91cf91df91ef91ff920f921f922f923f924f925f926f927f928f929f92af92bf92cf92df92ef92ff930f931f932f933f934f935f936f937f938f939f93af93bf93cf93df93ef93ff940f941f942f943f944f945f946f947f948f949f94af94bf94cf94df94ef94ff950f951f952f953f954f955f956f957f958f959f95af95bf95cf95df95ef95ff960f961f962f963f964f965f966f967f968f969f96af96bf96cf96df96ef96ff970f971f972f973f974f975f976f977f978f979f97af97bf97cf97df97ef97ff980f981f982f983f984f985f986f987f988f989f98af98bf98cf98df98ef98ff990f991f992f993f994f995f996f997f998f999f99af99bf99cf99df99ef99ff9a0f9a1f9a2f9a3f9a4f9a5f9a6f9a7f9a8f9a9f9aaf9abf9acf9adf9aef9aff9b0f9b1f9b2f9b3f9b4f9b5f9b6f9b7f9b8f9b9f9baf9bbf9bcf9bdf9bef9bff9c0f9c1f9c2f9c3f9c4f9c5f9c6f9c7f9c8f9c9f9caf9cbf9ccf9cdf9cef9cff9d0f9d1f9d2f9d3f9d4f9d5f9d6f9d7f9d8f9d9f9daf9dbf9dcf9ddf9def9dff9e0f9e1f9e2f9e3f9e4f9e5f9e6f9e7f9e8f9e9f9eaf9ebf9ecf9edf9eef9eff9f0f9f1f9f2f9f3f9f4f9f5f9f6f9f7f9f8f9f9f9faf9fbf9fcf9fdf9fef9fff900fa01fa02fa03fa04fa05fa06fa07fa08fa09fa0afa0bfa0cfa0dfa0efa0ffa10fa11fa12fa13fa14fa15fa16fa17fa18fa19fa1afa1bfa1cfa1dfa1efa1ffa20fa21fa22fa23fa24fa25fa26fa27fa28fa29fa2afa2bfa2cfa2dfa2efa2ffa30fa31fa32fa33fa34fa35fa36fa37fa38fa39fa3afa3bfa3cfa3dfa3efa3ffa40fa41fa42fa43fa44fa45fa46fa47fa48fa49fa4afa4bfa4cfa4dfa4efa4ffa50fa51fa52fa53fa54fa55fa56fa57fa58fa59fa5afa5bfa5cfa5dfa5efa5ffa60fa61fa62fa63fa64fa65fa66fa67fa68fa69fa6afa6bfa6cfa6dfa6efa6ffa70fa71fa72fa73fa74fa75fa76fa77fa78fa79fa7afa7bfa7cfa7dfa7efa7ffa80fa81fa82fa83fa84fa85fa86fa87fa88fa89fa8afa8bfa8cfa8dfa8efa8ffa90fa91fa92fa93fa94fa95fa96fa97fa98fa99fa9afa9bfa9cfa9dfa9efa9ffaa0faa1faa2faa3faa4faa5faa6faa7faa8faa9faaafaabfaacfaadfaaefaaffab0fab1fab2fab3fab4fab5fab6fab7fab8fab9fabafabbfabcfabdfabefabffac0fac1fac2fac3fac4fac5fac6fac7fac8fac9facafacbfaccfacdfacefacffad0fad1fad2fad3fad4fad5fad6fad7fad8fad9fadafadbfadcfaddfadefadffae0fae1fae2fae3fae4fae5fae6fae7fae8fae9faeafaebfaecfaedfaeefaeffaf0faf1faf2faf3faf4faf5faf6faf7faf8faf9fafafafbfafcfafdfafefafffa00fb01fb02fb03fb04fb05fb06fb07fb08fb09fb0afb0bfb0cfb0dfb0efb0ffb10fb11fb12fb13fb14fb15fb16fb17fb18fb19fb1afb1bfb1cfb1dfb1efb1ffb20fb21fb22fb23fb24fb25fb26fb27fb28fb29fb2afb2bfb2cfb2dfb2efb2ffb30fb31fb32fb33fb34fb35fb36fb37fb38fb39fb3afb3bfb3cfb3dfb3efb3ffb40fb41fb42fb43fb44fb45fb46fb47fb48fb49fb4afb4bfb4cfb4dfb4efb4ffb50fb51fb52fb53fb54fb55fb56fb57fb58fb59fb5afb5bfb5cfb5dfb5efb5ffb60fb61fb62fb63fb64fb65fb66fb67fb68fb69fb6afb6bfb6cfb6dfb6efb6ffb70fb71fb72fb73fb74fb75fb76fb77fb78fb79fb7afb7bfb7cfb7dfb7efb7ffb80fb81fb82fb83fb84fb85fb86fb87fb88fb89fb8afb8bfb8cfb8dfb8efb8ffb90fb91fb92fb93fb94fb95fb96fb97fb98fb99fb9afb9bfb9cfb9dfb9efb9ffba0fba1fba2fba3fba4fba5fba6fba7fba8fba9fbaafbabfbacfbadfbaefbaffbb0fbb1fbb2fbb3fbb4fbb5fbb6fbb7fbb8fbb9fbbafbbbfbbcfbbdfbbefbbffbc0fbc1fbc2fbc3fbc4fbc5fbc6fbc7fbc8fbc9fbcafbcbfbccfbcdfbcefbcffbd0fbd1fbd2fbd3fbd4fbd5fbd6fbd7fbd8fbd9fbdafbdbfbdcfbddfbdefbdffbe0fbe1fbe2fbe3fbe4fbe5fbe6fbe7fbe8fbe9fbeafbebfbecfbedfbeefbeffbf0fbf1fbf2fbf3fbf4fbf5fbf6fbf7fbf8fbf9fbfafbfbfbfcfbfdfbfefbfffb00fc01fc02fc03fc04fc05fc06fc07fc08fc09fc0afc0bfc0cfc0dfc0efc0ffc10fc11fc12fc13fc14fc15fc16fc17fc18fc19fc1afc1bfc1cfc1dfc1efc1ffc20fc21fc22fc23fc24fc25fc26fc27fc28fc29fc2afc2bfc2cfc2dfc2efc2ffc30fc31fc32fc33fc34fc35fc36fc37fc38fc39fc3afc3bfc3cfc3dfc3efc3ffc40fc41fc42fc43fc44fc45fc46fc47fc48fc49fc4afc4bfc4cfc4dfc4efc4ffc50fc51fc52fc53fc54fc55fc56fc57fc58fc59fc5afc5bfc5cfc5dfc5efc5ffc60fc61fc62fc63fc64fc65fc66fc67fc68fc69fc6afc6bfc6cfc6dfc6efc6ffc70fc71fc72fc73fc74fc75fc76fc77fc78fc79fc7afc7bfc7cfc7dfc7efc7ffc80fc81fc82fc83fc84fc85fc86fc87fc88fc89fc8afc8bfc8cfc8dfc8efc8ffc90fc91fc92fc93fc94fc95fc96fc97fc98fc99fc9afc9bfc9cfc9dfc9efc9ffca0fca1fca2fca3fca4fca5fca6fca7fca8fca9fcaafcabfcacfcadfcaefcaffcb0fcb1fcb2fcb3fcb4fcb5fcb6fcb7fcb8fcb9fcbafcbbfcbcfcbdfcbefcbffcc0fcc1fcc2fcc3fcc4fcc5fcc6fcc7fcc8fcc9fccafccbfcccfccdfccefccffcd0fcd1fcd2fcd3fcd4fcd5fcd6fcd7fcd8fcd9fcdafcdbfcdcfcddfcdefcdffce0fce1fce2fce3fce4fce5fce6fce7fce8fce9fceafcebfcecfcedfceefceffcf0fcf1fcf2fcf3fcf4fcf5fcf6fcf7fcf8fcf9fcfafcfbfcfcfcfdfcfefcfffc00fd01fd02fd03fd04fd05fd06fd07fd08fd09fd0afd0bfd0cfd0dfd0efd0ffd10fd11fd12fd13fd14fd15fd16fd17fd18fd19fd1afd1bfd1cfd1dfd1efd1ffd20fd21fd22fd23fd24fd25fd26fd27fd28fd29fd2afd2bfd2cfd2dfd2efd2ffd30fd31fd32fd33fd34fd35fd36fd37fd38fd39fd3afd3bfd3cfd3dfd3efd3ffd40fd41fd42fd43fd44fd45fd46fd47fd48fd49fd4afd4bfd4cfd4dfd4efd4ffd50fd51fd52fd53fd54fd55fd56fd57fd58fd59fd5afd5bfd5cfd5dfd5efd5ffd60fd61fd62fd63fd64fd65fd66fd67fd68fd69fd6afd6bfd6cfd6dfd6efd6ffd70fd71fd72fd73fd74fd75fd76fd77fd78fd79fd7afd7bfd7cfd7dfd7efd7ffd80fd81fd82fd83fd84fd85fd86fd87fd88fd89fd8afd8bfd8cfd8dfd8efd8ffd90fd91fd92fd93fd94fd95fd96fd97fd98fd99fd9afd9bfd9cfd9dfd9efd9ffda0fda1fda2fda3fda4fda5fda6fda7fda8fda9fdaafdabfdacfdadfdaefdaffdb0fdb1fdb2fdb3fdb4fdb5fdb6fdb7fdb8fdb9fdbafdbbfdbcfdbdfdbefdbffdc0fdc1fdc2fdc3fdc4fdc5fdc6fdc7fdc8fdc9fdcafdcbfdccfdcdfdcefdcffdd0fdd1fdd2fdd3fdd4fdd5fdd6fdd7fdd8fdd9fddafddbfddcfdddfddefddffde0fde1fde2fde3fde4fde5fde6fde7fde8fde9fdeafdebfdecfdedfdeefdeffdf0fdf1fdf2fdf3fdf4fdf5fdf6fdf7fdf8fdf9fdfafdfbfdfcfdfdfdfefdfffd00fe01fe02fe03fe04fe05fe06fe07fe08fe09fe0afe0bfe0cfe0dfe0efe0ffe10fe11fe12fe13fe14fe15fe16fe17fe18fe19fe1afe1bfe1cfe1dfe1efe1ffe20fe21fe22fe23fe24fe25fe26fe27fe28fe29fe2afe2bfe2cfe2dfe2efe2ffe30fe31fe32fe33fe34fe35fe36fe37fe38fe39fe3afe3bfe3cfe3dfe3efe3ffe40fe41fe42fe43fe44fe45fe46fe47fe48fe49fe4afe4bfe4cfe4dfe4efe4ffe50fe51fe52fe53fe54fe55fe56fe57fe58fe59fe5afe5bfe5cfe5dfe5efe5ffe60fe61fe62fe63fe64fe65fe66fe67fe68fe69fe6afe6bfe6cfe6dfe6efe6ffe70fe71fe72fe73fe74fe75fe76fe77fe78fe79fe7afe7bfe7cfe7dfe7efe7ffe80fe81fe82fe83fe84fe85fe86fe87fe88fe89fe8afe8bfe8cfe8dfe8efe8ffe90fe91fe92fe93fe94fe95fe96fe97fe98fe99fe9afe9bfe9cfe9dfe9efe9ffea0fea1fea2fea3fea4fea5fea6fea7fea8fea9feaafeabfeacfeadfeaefeaffeb0feb1feb2feb3feb4feb5feb6feb7feb8feb9febafebbfebcfebdfebefebffec0fec1fec2fec3fec4fec5fec6fec7fec8fec9fecafecbfeccfecdfecefecffed0fed1fed2fed3fed4fed5fed6fed7fed8fed9fedafedbfedcfeddfedefedffee0fee1fee2fee3fee4fee5fee6fee7fee8fee9feeafeebfeecfeedfeeefeeffef0fef1fef2fef3fef4fef5fef6fef7fef8fef9fefafefbfefcfefdfefefefffe00ff01ff02ff03ff04ff05ff06ff07ff08ff09ff0aff0bff0cff0dff0eff0fff10ff11ff12ff13ff14ff15ff16ff17ff18ff19ff1aff1bff1cff1dff1eff1fff20ff21ff22ff23ff24ff25ff26ff27ff28ff29ff2aff2bff2cff2dff2eff2fff30ff31ff32ff33ff34ff35ff36ff37ff38ff39ff3aff3bff3cff3dff3eff3fff40ff21ff22ff23ff24ff25ff26ff27ff28ff29ff2aff2bff2cff2dff2eff2fff30ff31ff32ff33ff34ff35ff36ff37ff38ff39ff3aff5bff5cff5dff5eff5fff60ff61ff62ff63ff64ff65ff66ff67ff68ff69ff6aff6bff6cff6dff6eff6fff70ff71ff72ff73ff74ff75ff76ff77ff78ff79ff7aff7bff7cff7dff7eff7fff80ff81ff82ff83ff84ff85ff86ff87ff88ff89ff8aff8bff8cff8dff8eff8fff90ff91ff92ff93ff94ff95ff96ff97ff98ff99ff9aff9bff9cff9dff9eff9fffa0ffa1ffa2ffa3ffa4ffa5ffa6ffa7ffa8ffa9ffaaffabffacffadffaeffafffb0ffb1ffb2ffb3ffb4ffb5ffb6ffb7ffb8ffb9ffbaffbbffbcffbdffbeffbfffc0ffc1ffc2ffc3ffc4ffc5ffc6ffc7ffc8ffc9ffcaffcbffccffcdffceffcfffd0ffd1ffd2ffd3ffd4ffd5ffd6ffd7ffd8ffd9ffdaffdbffdcffddffdeffdfffe0ffe1ffe2ffe3ffe4ffe5ffe6ffe7ffe8ffe9ffeaffebffecffedffeeffeffff0fff1fff2fff3fff4fff5fff6fff7fff8fff9fffafffbfffcfffdfffeffffff", 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)) r0 = openat$dlm_plock(0xffffffffffffff9c, &(0x7f0000000040), 0x400000, 0x0) sendmsg$kcm(r0, &(0x7f0000004780)={&(0x7f0000000080)=@nl=@proc={0x10, 0x0, 0x25dfdbff, 0x800000}, 0x80, &(0x7f00000001c0)=[{&(0x7f0000000140)="620970150c132a6eb892260bf529147fcaa3794304ce04097b315f6c3deb5c5f0046bba9862f5a53788d9e28312225cc7b4e6d59d6cbaee5d0fff6adf3e3191e03dc8a5744ade65a536d80110b257efd41c4e211d49b07454ce536bc8810599a281927bc0692b36d668a1429c9651f3ac09a409b68b6af07de25bf7e3da0", 0x7e}, {&(0x7f0000001240)="99499e59e8257fc2eb5270e9c9c3d9729122dc95da84fd1153744981af718bfc986e48fc0ff81480fcaf03275727e1cce57d4415c812fd14adb9f5f166310d580905f05bad659e40b2e452de69cb880b18772c1bdff24b2de00ebe141f48779f17c6b807034b49bdf109ff85b0708fbc2d4f457d34b46477b2eacc900071dea7c9aa170005f8196d2d0d874b44ac7cfedd65ad9a83f3ca8267cd8b65f0d6ffe6cdfcf03b289fd66fab94ae921add06f4ba1e080fad4a2d4dacc4723e3fb60363f977f3d9b7e901fac43c14de30a89c8b2026cdeee5d1463b22e60d0e2f246a9f1e61a351685fbd840cc7348a16314ad329fc7a270743f844fe400d21f3b738ffa7f1585bd57b7e65ff2675da96dd9edce3846611b0b1ada28daa0fb69358c866efb2a2c5143956f3eeb423504bef6b6b80c879eb104e32984e6491336e68f0bd501407008f97c501ee923c8ffa910e21062287f2789c0ac6eee5fdb4d2f6bbe8f6af855cc515f4c37e0161c5bd93e0d2ec4b1f89a079a3ef043b9c11db49bf66eb56a1ed631ac2bb0659f15402abfe3ce4e5c851d0bc0fecac3d1b3754c2070e3ce3cc9409191b924e271c8834c7e321ce8b1e5122400872aa4bcc42fdcb4ab18c2e18f1e9fa861e6503c69cdf2be77180aa7b8fd12717f0c53beea34aaf0ba6fb3633e118538ad9612edb3722aeef0e196165715672dbefe4790520e67532918ed382a9815abb86e226712f47c033876c00c7240abb4b7d5bac1a58f3b5e17a673ac913f80a041b239eb6353490998c4800863ecc5a863c2aab3d33a9e61785923dcf0c9e7db4bcad782df652a9288afdeb7dbeb09676ebc16dd0dc3770cea86aa57b6f18f75ef5195fcfc678ab684c0bd24560e1c3274837c78311364890794035472f82b5fa9f9e0862f439bc16a4e3306c6aff602e6f74fb4a58860f030842d44175b76ffcc1d1fe1c8502ddce1f8568feab865447fba10c3b3bd1ac66fae78793229d6bfdf97ca9d17cb28c887801d2ab4ca54d7239083294c70ebdd2b11c97aa8187ea9545fd4d863350c6ade90ba8d1b6d4e2d6f1a6ed93cb0d2295bc0a099d8e102ce18784930b20feed69ecb097e230f4afa8684b5565b1e64a232dfe60da7f0d0cb60fb96f8b4a01904002a13429aee43f46270130ade55a9f30b7eeeb52ef9e8adf92045f355364f3b941810d64d74f96c2b3fcba9a21ae8ba8d07c564752392efb7511364767bad54cb22dd0b62c21c59aec9f2915621e401258feae985a9938b616fc5a17ce00a2b41042ba20587db54d4904303bd15d297a67b8eb31fb02c5621d02b08a45ea95310a2bc9c7ba12c235eaa7ceb3ee7cbdc5c5cf0bc5c4c17b17c5fd03d1f9cfb17e52450711339b405b023519bbadc672f274cea3bf0f6768087892fa8796720df9b697e4e97b3d97d641831984dbf658d5eaccd73ddad0ef752418c276c892f0436348285abfce189e8bd350d508ec499ff61ac888cc2b7acd0d6b11f144dccdbca3d77aefaba625fc7b4ba813d6f90d363b39d51541026f18a755dc67d09449ad4919535da861797ac30b09801bc99685481404b7e6310b1da4da6ee9e1e2e11215d0437a510e85ac57222b8f3b1c9b50b3edf6e4af3725e0bd8b555f4af2b7cd5b5885ec65b41f74e1c1398ec1b51827464d12c6bfd63272fbc132268e7a86b4775335a9e19178b0238ad28cc2b5b83e9cafa639dfb271b74f4a76952b9ae50ad197156ba787e8c44f8c801408425f2bbf888d3794e996e0fa0b980ef469dc16d6a43a0dbf7095d77d73dd520da676163b8bd859a1ea3a58a73f9f9f87b8c4785b53cb83c42e17eb163054fe4775f9ea2aebdb4bf72bcc111b35a4cd879474c1a0c8c6152e1a9eb3d540ffd80001af7fd83b82fb77953b6afac9d1dc649da7f642e40a8be924d860be94e9a774f22905b752b6e26dd44300fe56172a7e09338335e0f735ab95da7368f93f20cf2b050e1075aac2885dc59566c6ad7691cb5c9ef1e716a5c8ee7d4de1ed383bb9e9226fbb46aa758bf093b27840f68df2b46e59a854b2e9165598e56fb55b54d51a235631ce9a88e3108ceec25ad1394697026a6b6d66d35aa54c5d57785fd8b36cac3d097f306f04df3dffc0aaa44e15aaf66f6e79a8e5b54937dfe42a46696b1ee444cfc1d6361085d2b3d92dfe233da3d780410552926b631f250076f28e1b457e894766188f453f46dce819024ecdf9f34c3032fc0fe63786cf4634f05294f987e9904488d57c97221646cfc7954b0efb6616bc25fd380e6c7ced134dadd2bd7291c31921e45cd999fd78810bb13a65358d4ee0ac76b18673cfd44f2b1f16c8a8299efd69c3612663e7de7aeb83fd9de8a9e68b655669ad5940e00fda84709e0198d7c6fd57a8370724a2be5509d002966b890ea452d6046a57be82c012568939b76dad0b981b21733dc0dd9e3c36b62c38267448eb9768bde310eeea0c56e2e8b6576251150a80850ae9add7aacb6b3907968e6c962424531fc0fa3865032dd13dbd804067bbe7bb32a01751d5e3f1d25b97056ab7c78836f63dacbac1d9f5e17430e83e3244dc1b6f6f760b1e28014f50215dd1c0162e049669682d0b902c24b2d4bd6991f97d1780dade42e4bc71105d8dca524745126ea08a2422d53cc22436f1ee16c7e7726714bc8db2d5669735cde58f9de51373c4af2dcd7f5226335060792a2ba4a17d978e04781db3b48b8949f2641298ddffda3828de52ec84ad1cc0e56986ddeba4185309b2eb3f211795437ce152e77b8198c5b98b66c9fbfa084ebe40f111271a0569add5ac3f1c890c6f9764e3b72ef594db36fffe6e683cc53daed137d1485cfd23aabe647bd8b280da9d6d081a0487cd67f722e89193eedbf54e4004f786b7d7cc60b6882a1a72867a916f6956bd54cd2be7fb6b26ef0647032a318e4ec85476f8500fe60059db604de196bb98d7913a72e7cf4fbf8ad53e59d052ccd69f542dc5400eb642b6879c922c7da31eda305cfcaa2147ad02a0b5e01e630162cc18c548cd89475f781343663b4481812a0797678aae1bce1ae5217d33fe1ee3255a50acc8301c4c4b1a808092753912db284ddec2f4cbb1ad3c74198d7a3a8e2f00162107ef739efa8013337d0b66bfec58210567575fbdfc94a9595d9ec6aec0157e1146c53da02f3087572f6ab6a2979ae9d9b8d8f5c207c4b3ab6c002845de91dd73552282fc0c50e6abc81427a17ea29ddd328542d419d94b58a19bc5b0520bac6f254d2bb8942a596404f293dafcf10e954e21c9deb4542af4289d08847830918d098638a1dc1c3f6e78731d26b6853887e63a1c3ce34191b8af32acc5185d9b231fbf791a2bc4ddd4e83ce8f0fbf373edbf7873ba7088c459136ce45f069662fc13fcf62b9fd5fc4ce6891bc8eb020e02f4874a20555a88734e7a76c65e467707de96cd44cf6a3542da05be351129f0ba14f63cac7870cd543efb06328ff3a827bc05d98722bd9902e4dfc280a09da0a0452ac4b0611fb6042293d24e32536cdd931a2dc65531618ee8fb84da2284c4acdec51764d4809000815b0f57202f28ed52d58caa4d910ea50f7f990544b8ca0551a80e07a92810cb144ff1134596f6a78f1ec563ecae1dc83af3824131ead066fb8b1726b39c7918a4f504bbf5025abc6bfa60e567c0c3c1590c5437790d0bc88d07f5a0dea159ed3fb0446582b4a9e3454bb6f4ef631b2f26b74cb04de5c4934508500d0807b92c15ec346ea8d2bfd3a448a38e2df70255c97cc3a2b3d3c14af87e22e632e6d9267e74d7e41d62fb5f12da88a3fcb6a7690a0a124e5799b85fd62d5557190ec30594a6db5e893eef31c8cb39f2331503f9d1e119e163ebef534804b2dc27d89eb866e5428f9866e66e2a8d8a3dc3a486f248a315fd56cabbf78caee947ab76af958d07dea93472308ddcfa12627e54002376bb6eea806d0debe21e8739e6c1ab9c204a0ec8055bdad2f4c5460987bc5b8ed77b0ede6b679c5dffefdcc1f896087b6600a24256affb172b382c46573af4a9825b979c55dedc129561bd68aa1b6c30c2815133c9568060ea100301f1c44d22026751c2082092db698820cfcd3abcbdcbec689fbbf955e9e070c1e437626bbe1fa9c6305fb7680ef46d2657e257eb2bf3d1013bd24561cbd13020fe02715552999b9b8e6956e9e29a2e166be58e6f579bb6cf2babf3bcd81e5048811cf7e3ab427d97d651fd2bafa93c86a97af86e1665b6402078c6e8024f3f3052b22425844281ae2d92a768daf574aedf974b18d56cbf6a7444cdd19a8d59f2b8b2e1b8899b4b3cefd3252c448318a78bd24ca93f1e7dedfedd2894caf0bba5aaf780c48f7ce3caaf66a6fc20fcb975a8293ec17e21aaca4032d8442f782cb631f35925f076eadbc4c61b5cdadd429c00c6e73b750491b3b7cb7ecb2fe8210b0af9b8c07baf5b8696ec935cd209f918ad2a028f6171f37a9759fec822f92eec0d7eeb02f6b04d2d99898c605075f7977481b17a10b32364bb33b973d30955528e18a619443747097b48de0deed2c6d1fea05c5f9403de011e4312392f2e502205cf01bd950ee8661d116f8702e16f5d5188d623f99776eb3fa911d0d0f74ccab3a07d4e37932858f4f43a10e081712662388b4aa3f91a66cb8f8d077bb57e18aa963fb523df7f0dc20dfc2da7c8e3b10cc776e74d3076a9c52dc256f40fbc0bdba0d5467b20385f50eacd7cddcfa397cd8295392a75be7263154c1426ad86f7394db031092136a8200aedcfd1de617462a7a2efb2f755941036f7a838d4efa51b55c70bb230737c3325d96aad4d6f5af1cca555e1c6be248cf1c665509850039f69869067dd7fd2e6fef55cc711d5efe4a3866668f75290844984a38b89a13eeeaf755afd6c4bc0ba9a0fcc0835c6bdfda984d6dbc6897bd2d2c93ff8ffd6c7c2c2ed7e61fc54a0093ed5eea3b74e20f0408bbe89817787221667596773a25494b4f49443a35ea74bf6111fc53d1da4ad0b8ca9410994642b395505e111a17028d48edee43f94a9cf227970a1a9cce9fd39059651d9afabb8b5cad54bf81064cd04aa2229cac74dfbc259710031956686d30fecac316158d716d2d0cc1dfff549f1a71a7bac23ec050a7e27099a5b668f8566859ec98caaeceedc875c2bd11a2643602b8afd33446735633b2c517c7b7868ff062a2f1e715a5cbaa35a69f31952719034d2c4906d8a32eee6610a0df82dde2a04b111a7c004be4325d4f3c707e33ec977dc53d217579fa55e81ce26a204d6eaeb5f8f1f038b38653fb42940d1b7b56a0086374c2067652e9c48f11783f1c4524fef5577ecf90706f7e8d1a45b9fdc42826ed6af1011ae76b7ce5f0a17d5452f054866081ada0569e5291b90acbc5424d1e189120fad094644d8a8e2a010843323e1c240b2ece25ca89ef2ccd2b9fff79aa53a3fccbc273cccb6bb5562eca427a4baa0b606f60d932a684dfb49060321467fd58a554c1227b3513e43622ed53c4b139612ef7b9311f9dc88b306fcce3a89641ed64eb7e91b83503fdcdde19d2bae5b01a7f9722a8c584be85d571b4eae7b27638e6f5b27d89773fe01c09be7aabbaa9037f382d7471494e8014745dd103426e8b9c8cbf18e150336672aae852d7b6e31e7e24e4e48de33717341f8cce19d1cd20c522865a2138c2384319d5c0b4bc6445bd9122dca7f3498f5b7ed7754b92c6f275deaef64ce09bec188ff2642ab79c166335a965102416f9df8c64ba02c719327c2b4ead1721aefd88d55412b00976a", 0x1000}, {&(0x7f0000002240)="77493f43af6fa562fe03941f366349f1c1d0ff60ed13bd1245bd801c1cc261e22380a440590fea16e0386a47194702fd082d596786f1a95493ac62501439b58ea21709c4f3ae6c36bcb4218aa840e112f403b3a3a971b14001648c6214c98f0382be677b60a4aae18cbf5579234ea3bccc9b8c89e14ee32b2a3a5aac88bc66862ef8a4b572f34bb243022667ce7c3cfe01fe51aeef4f91ccab62aefeb292a6b6a779eb40d4508e6d0eb1b879a2764e18b18a7430afecebaaf7d30bcc3a4466aee208fd7d7f3dd6a32e91dd1057b2e60c00142c8942912295177c06cbd3302b1c2e1438c2d1c5a4c6c89d1ffe4cd9bed3fff4d3d06711a2cfb137ffbc9096b2fb1a29859c5ac09043bf41b138e48a6b4a101392315a326169b54ef3ea96235d51f8b9b9d00448b29955c72c56cb2dd31059db4f034a71e52f46e580d14f34220767ed5674f832aefd78648eeb6324e6bfd5e7f0b1a794bff169df96e3ca5b2cc46e9da2a56f7b2ab0379c0ac6a2e086b7404e7523d1c3904e09307af52f2945b050f604d9852b55e74c71ba2f37de0978ade24ae3f9d42221ee8f15bd79bdf8d00ffadbd962f64c5f0734c7ccd4004a8fd22bc92b1cb2312c99bd0db9219ce978a40ad65d8d07083a5872fa6e5ba9a08e877a7bfb7e3fd9be4ee93b6e474b35bd5314a8158b89d6ffa64ca2ee849cfb1daa43186e2afb7329f4440c51e52f270c1cde284443a90a6eb04e53d2c8e3be189e2eb5a9218c5eed4f0b08f693bd9d99158f482a26111fd9be6e7a6212f40e4db5c6c277918c48d8db0041eebdff8769625b1cbea1433731d0725714f811e90cd8d908454d8687ef2879fcf8f048055e09152b9f204cf7bef4fefecc47144dee956dfd8fb82c8d6f6db7b9268803c3a938e58ecf32bbda71877477933c31264edeaa5e8aca2e7fe994afc2ce68ec6dab90b6a63d91660aded50f19befd5bd0edd3c29d844a13364dc49397db966404cc4e3aa72acfc794bdebee363008c458b5143093b7ac71323374b21f832ac12fce862c2feeefcaf21cc0755109eb844936bca4c398641c568262544a54812a52a2979683edbfb86982dbacbdafc83348d896910ed7302f530142bc1b8d162f92a1219bac35e6f72f8c7e2c1b5fa97aca9dad42188abc49a73755c5394e923d103c62ee89933c36531176fbfe8ec77bd3865e352b84d04312e968cf2fe7aaab0d03355e756306deca4731dab1e0835b9316719b4685d182b6ac0ce7e895f0a46545a74e3d01d86bc6e2379a0e85535b131c8587e8d94018eb20560846c6c75e398e3b341e56bd792cf84e229b25f24fac439380674ed2515774be6bf3e41a2a203e8a75680dff75c36deace5a39bb1c1b451bc35e78ee5f169dee65e366594e75a9ac190a19e201587ea42fe25662333addb0d00f29c312ebe0abd632cbc7e3545831977d258fb07c5eb729211f54cbba25ce61c1a09ff1e4023fe866df4bb1acece26cee9cdf3869ab743c2a7637b6be191b9d972b75bfb67d76ba9b62abde381db15657a41493484d84f7b4beea8e5bbb807a5db38eb0604755824ce3bdee88f06586796f2ddab2c238bba1f8cb69c3ab32eb0796ef64cb19523ad1459e20f5a8a5bac66d97f15b751b864afb89fef21b0c6ac5cf8e2043a1e37888cb85dbc47678a246891c7849bb93ad1c3fd8b06b1167447a6cdd456955714a1b8b6df8adb558be20889ac90f4c72bd383bf96719b5ab8805213a8de53125a3f5e23d7ec6532aaa939133c8d09d1265f92098809c54530aa4d44862eaec2e66fd4a43cfdfcb94570ea18fcef1c1f0c594302697d1281bcf1bc838c5fe40f24e05b78359980860758c906833afd0f076186fa4a467c11d76249a0e116cde5e94c05538668545464b8b87f567dc76f3c7c386e7f415f4c274eebcc16b15aba2ce4b35e93d31f35104671c6bf8333bf41332141706c71e81735ea99e80dcf47e5448b8275d0be546de20ee8e1ff049466d997abf68bea3ebbe4482b63f29b03a54d5dd389a3a540996fe0206e132ba9de1064f47586123aba42716cd2f62b18bc295c7eae5b4a170dda7804aa78c9a2f222b9ee7000e1f509e44f10a51751b345b5228e05fadc104e989dd8c00701dcb3329493d519b4bdb1283d3a91ee927a6582cc07ed10ed8887261614e745a380fc98cef9af012724bfca6e0f2e742af2de4aaaf5b47d55c9e83dc1b3efc33e90f4c87c1d39e9eb3ccbeed7af07ed19d36d4dc72bd1a4d13da278f079c6690100d40eb22887344351655744f99e148884d25938b6a3c4d468c3f9a7d6d3dcacdd5c3eda001a363ff5513a5070d50fa72235af37dc6c4f3aa8b6f103de2082c5131a9cb806ee5762682de0a95ad459d6703e1d04459f7866ff943625915fe8dada8ee13c06c9455bace66498db26628883ceac5c43ecf48c6a9241354f17ff19a6d2dba6031ae90e78c777496e415c0dfd40167c9bfdca9b3d9170bdce366c690a27e56dc26d27aba2bcab918fdd0a2539554feae2402c713ee219ca04bf3da7cd5c3970571eae3761c02de3ea6b7c9cc832a54fae848a56a306b8441aa0133b56c651fa31674fc81e4a3a417a9232d588d052ec44099f2c85d5f4f2143c11be3022ff474f35a6ea01d7ffcd7698653be770b8b2ef1683ed88d24f6041d8aa2384de256ba233c646816a708d3436c7ebc1bda7b71f999abc474e1a40d3abc21ebe93cc997212d861020af0a1e4e4ee78ae5f1fe03e7f32bbc720d66fffd89bc902fc767b7396eec48e4e7ff24c52ba92f7bf424fcfe9d88a7bf3682b585e5a11d9b6ffeddca05edca3a08ceb2d4cd7370eeb6e5e2bd3c94d7c5ad6502b6d55f064c6e7c27327d7f94721e99c11b0d1701e5785c8f766126835029ccbff9308a3f359ca34606862672b7153769cfada4653f6b8b82ea258b5353c48328e53351f9eeaec83bfaf667f609755d8f921f1d6711bf8eff02c435006b6e8031171941f98bb64e6c15dbe5cddae133f93f2ce9c13b2ff073460232f6127fe04a4cc4bf628704fa251e04da8ad43305e9eb603acf1df891b101f99803ecf3c346cf76558d08a39b4f10974d7882625c948b0b5a57bfc5ae87b16f406138b0b7a685de5ff5cad01487762b294112e75c00e0451209b6c252d2f486b578877e656d628ff87ff3699525a0619cddba643d90057f58c5778eecc5a1bdaf79394b45b1ba011ea51ab93653c8346316b6cf431347533c62e71db3d51fb8ed79d7d577aec0a8bac0f0f938c824cc1cf4e999b67f2522b8c729fa61e2154f4dcf96cb6a29e9c1481192f9cbbc317b0c17cbc75a673ea61226fb56788818a4aa410d155141f658b0c0e6689cb5d17c7e61ca24877e01b96dd64d8a64736fdcefd4ee77817eec1aa9be85d334615d29784ff9f1bd87011690428ddcfee26ec46e0bf55974afeb1e15a7353d9ba826fd7a7da7910a6c6afdcfe3923768dce90260abd7d283a056a7ef5d86b33aa2e11f0f5ee03588202dd99cd70055ff06f0b503b76509eb7a8b837e60eb0c7c760e59efcb209052a8dae04b14596fda8ebf4c2511bf5e71774d266a410141260ef228ced02944699400a28b049719bd1d47f3f1d6241dcf409d03e36b2a4fd4ec440b00d261d7f93dd96ad836b414f63765ad73db2b6b4e3c65c73f543628d72ce7031988d8657d3ff75c3137c877dc89f9c553d2c531ca113c9dad5e94777dab0697391c5fa7d76c4e0d5a953842f81216f800cf8b97e380ae8bf8a273f1d06bf9954fa7ea26e0502c917fe82910551f86e87ccc137c1aa3ba53107ef15618f9d9d5bb778053e807cf08862767c43d9e6c5cfee5ec28c22186abf75b99e1a47eb7cfd03b8c0accc3cc3f692b8c762680a4131622ddc180d4e4ec3c24dbfb7b1e0aca3fd8eb6bf2d6dac5529b587dbe7d6fa65cdbbee4d6211f2f6e54b7f5beeb260cc4a8741bf3fc83a77e2a07b0c9d77d32890780e0eaef73609756d4aba13448713404bd801db086af0d992e7d21c973f9848851c6455bccd1e9cc9f49399698028a2e3f68fb54bbbe8cb7e323ed79ea977c53d31d16384016024cf1fecba5be5ddb0aa2084412647900957c484c9c63f41011f1d755971508cd4a8e710b1ddf33ece968421709a36753229dd5d3e6bb4765e6725450ca1174a311e2f5cd879b930048946ee4584acd790bd46ade309d8317c98cd295de607fc86c8f03790f1bebbec90a73a7c4daf38244e6fe54145ba7a3bfb20e89b9dd76feeefec1d883a91d630f139a4882eb742fc901dadee9e279d63431601bddf5f06c87d9f425e47be924046dc850411fef13018c1fd1a7ed86b89c7bf8bb49a3730404dd4153aaf68d90693c080017c8103797abd3b191e94c289a0da8fba833040ff8a6abf32f2262c4a519a36f1f3c18e5433b7ad8f8e3be14498db1e0497a26008ef90931dfa2b967a5973cb216dacb1a9965ae1b1298b033ff277249e21648e52ae4513590a864c671e9eb142f02ee3f825e85a871ca520f1855b77e7cd0e2bb894a7401bbe9d5cf3d4bf093472743ac6b88be7fc64cee66c5795f7f21f5f72c0e825115e5c8d6a07670643fe3ecba1501af881690071bba4960edf45650d395f636b7694eaaaa4e8ee6935eb64a5d5e27fe54e05e6b26ea768c2d3e03d5fbf3211f19d3b7bf9ef057881967ebe67c17d34b169392407acf102c2fead7ed164bace2309d8976bec244a748bb88880c9e917b03c1f8be0db06d2abddde5040434139227f1bc5c28241406007fd56d85a06876642962d67f3d8289f0c58f4faa6c9d38fa65ff05a867896581ae64f0f950073fc2e0af122bc0e886822b25767121ef4406e26484cdb4f0804422cf9223e113a7061aa8892ced17382e46e101ecbadfcb981b417354814f80510b3a3b5d9a9eac37eeec526529a25b6228d35d298f9d6954633e2428f908cebe71e39af58ca857ceee78d9d9e7914ec6fb55ecb904a472baa5f5c3f405238c77f797bda3f532cb099d25950f90c0e2365d702bee6e411dcbdc7bf26c6f7fe4718688d04f06c88bfd49703bd7677d291ef8c76bafe8a7d7c525ae7dff43d983d3f4c4ca6f5b31aa3744f8301a7d7452310199fe86fb9d5253876b15211cc408733fc85a34cd35ee7011d435325d557421dd75c5da0d795c9b49a54cfa83ab4bda31e47e62abf9bd0aa15386bd44e38121ca52d7f5fd2e49926dd73ca395fdf18699f435ae09cdc2f697ccb0ac67c2997bec55d3a21c88bf9a363c0a4ed106bba74e83f9e72ff659a491ff00889e0e00619a86603bec93a7de1790a5ba0bc1df0d78039f77c2f54c8567fcef5728207b17a1872b801f71f98c5f96dd9f4ad17c63f5fe432c3b62291b2b6f47d20c5ada0af4c879782d3fa7cdc586fa644ddbb1767d84b3d759f7009d92296a5832e8de63927b7ffc5e881aa0e31247db4dd8e16902e48180b09830ed552cca3748a4c778294498606591e81485eea37ea86408b1e74cf65daef9f133b2f3920097a9f2467614c34e55ec4fc128d173268ae66fdb0dc3f1ddae5990ef2e8a1f1b0aafda35b11efac90f8e295b9318124802ec2b3da9535f768679320b8a2be4ed10bfbace6c9ef869c29bf5b4b3f4f4d4c06dc219515adb740a92ece8fd0cbb48d15bf680379d2d668468f0bfa396a76711038faec58a7fb1432b56888d29bc65a291430b32ef74c06707fc2fe9ebc9a448a8659de733aa0d93c7771334e9c2cbb783ffc344f6eafe0b07fa455c9fc4c9218cabe6452f251417d97796b917ec2307a9", 0x1000}, {&(0x7f0000003240)="dbad4374c34b63dbb651636100a74f472d710ca4b6570819bceb2f6d9c9eddbeef9e86252353d5e21920d05bd41cbf0fe7e78e93319a85391afe333f8b9a6521123a659eccc4ceaea55f", 0x4a}], 0x4, &(0x7f00000032c0)=[{0xb0, 0x1, 0x8, "3263a8daa4b40467a37873da85851fb59eab8963f58e83cffa7b8e55fbbac56e54c33390bc551d2cd6a8da5a13d9cdb977a04d01b11933f997c6d2c69fb00c0689e826512a358fa08f1735e9ed672e368d49063ef31c352864b600d95f417392132954ec4b92245a009d807de08dbdc360cacc51639318ddff679e7e8e2afe94fb9a973166e22452f3bbd6c7955261ad4f3f3794d1722b4d46"}, {0x1010, 0x10e, 0x6, "62d822ee456da66b11a7beb78e275fd2f8e4e6b6b6dce9537039c049b260cb0e7a84dc1848d773ad917d9e42b79ef75c3500e9ff93dc011bdae94f3e7f452aec2c2a35df1087895f14ce3bff600c347f4c0ff00118ead5ea935c9e6a57f719fe91ea5de0adf44f43c3533081cdab793ff6b3861d064c25f92373b57275e269e3d107bd06ad1393dbf4e7e4cf4a5df742dbf4c4060478cd068953050c80ac09a0e5aba360aa0e5b1528b2ee7135d8fc0eb13799109d6481f5e3427e565cc0ac6511eece52e6465f801067899d06aa257257d876cfceae5f1307f7129848ef45b7dd111d62857bf7d1601a83deb188ef6e589f29fb76acce2fe059823b5eb90b8709efc8f262eb74a36283e4244f22ecc4396668d1b3d0ec57af3dfe4745b8e3c4748a28f1e9a651aaba7735f0329d2a6f5623e97aff7c82814158f5b177a061c213b900ad438ac6ff26e2e3949a1f09f30eb9d61c2440ad9d76ee45d1b977f85787f54dca4bf397195e57a802460d487d5f9291ad28da655be879aa399b8a96a9ac925164dbf5ebab1e46c68a558e02393ea6247c1694fb216f25826908655c2b82668e2a2817b332a55618d3bb250c0b2061c61b2ff173252b099d87a49880d7b3653c01b415d75b7a686233f50749105ba0729d4c61d4b57bca2cf8f1caddb62facf6a3a67788ba26e0c4cb0fe83c4768f74416f94c4ebe7111268a6899af41998d2fc98b8de1b71d4787b8c8a8c04a7b2524f15718ec4d03a4f676387977d80fcc8ac2d250516a373cfbc1a80f85352708a205f15144cf38e475c9ebcc355bd538473b6dba52491694baa201b6d8f69486e44ef38167e1f48b8d70d9f7476ccb30a71b89caacbf4535a6d4f91849f03c6eac04a6344608521fa05b63111bc2013caada849b88f6d986bc62d892e6ccaa9592e540dd10c5946d8546d07f7a2f64748635039ff410efaa25e2763ce5a83a7268a614fe01468f44c06fcad5239ef57d42740f7f3536785c8a6b321ed7778a3983424dd90efbcf2fdbd7155eeb1b1818a61fb1df3dc99c5f997755e80db9aaf3b3fb1c737d120d2ced4578198922f20b57ee255461767160835b6264a86079329ecc2d0c82c5fa9b9ee478750ed13849780b37b698fcb48c41fd215eebceb1859c5970326458614ad443b1eec66346456a2881e922a5e9bcc32651db3b8dfaff34bee73bea33a299cf195c0c3ee1e65d79473a6824c964d8b0dd92c6bb81d333015bec76225bfc437deb8dddddbe7b646095aaf8de007f880fd3f88d8072e5eab7aa56061cc94fce3833023a54fa85aa43d56f07dd36a778022065da7389e93a91ab76b03c6bff357cde5a6e946d9d873db39aac17609e3747067d13528330872b6a4e75da1eaf239525f5c8c78309db9d5e3738842c4296ba306518982ac13c94bcb4ad01acee1ec9a2dcb1138f20381edc12cfa6226825ffa86a8524a983b92787df987a8d7f0ee727f4e33b5bc6b53352e10568fd2d5cce94ecc2856971aae7c46d0c6b14c7e18432c8ff141a7ba72942d0f9ec8b382616e42cee352f5a8b5b6374d0a793b610462bc0001dd41b29c8c04cc9f3077b2a5297c11c56b9070b4ed05f26b5286e5a4fe9570a9eca4d5ef6d3ac3de05a97f70426fa121204c61d6a51e6efc817e5f551fba02ee855ab2d252465a950335d097039eadb30e98169f83757d6e8d1c235e8db17ad463fb991561a76226f81a1a50a75f6a35fd1db498ce3e8e0b46a803e92aa1798d653c0db61af05d76cb3a46b856eb8dc9572199cc0dd3c48fe189ac7dc8aafe048fc9e4871985ca9bdf15714003fdfc25a4e0288df32da141635672895ca7d8e231927c62d370615cef3e90a7a1a45cc5ac69449f8812bf000372c0833e4f2d7dd9d8118ca98a4aad507736158da1bd5b8be0e2fa245b64d0bf9b7256c8efdb510283bb27a81b8d54618f33a6ca89068619607b9f6f6cccf8feda2190ecb0dcfee8f037f168686f8236ab4af58704742d94f50eab76705109542a46b3bb614c17559493145ec3a0994b1d3a81ba3d6dbbce354e0ec0d604fdcf2cd2c22cd4628bc1646fab1339f7ba04caa72137ba1d22e1a72bbec4290987d6cc51f919753d362db363bdf36dcc7e134f290118b37970bbc3e7786b8b622a0bb82dd9f88a80cd61a1c5d712fe41a7ea6919ce74164226931362ff3e7489814bc27d3f25bae742ff8d63f3c79dff174b56dae2e12ddd01254a052307cade1337e167f306fe30d5064a132a82fbab01d42cde63999fd8b019eda16d57f45a657c4263d04358c2f65d9f72d0bb5155c70731fb7ced714215f94e1623959193362c627db61608bccc3274c3b0cd7fb34ccbc4a71aefa8d9339603aea448393f10ceb4b38e2206f5c5d54f7792d8760f19bce69ba5067a449f0d0e4a594babce29c4bc219d4dca4f3b0d70d1da038d75456571d1fc4e4e99ce2c42295ca105954a40fa7fa5b6a85409d7c78698f988071f31563ca458caa65d828f8a08cc525a4dec629448bb2b920edb7ea639ceb610755fdc5f2178963d8f657841594c806cdec40db7978feefab6123c38c4a690ab81ab6623149e9fe0e450a426223255a935cf4f3ff5846abb423d230020235531995d8ea9cede84b787f6a006210e477b9c9b709a971e8794587a0e74cae31280397afd9277de4f8e67d6761d65fe5c92c92d89cb4814c65383b865a0e9a406fe8264cd0a1f6a62ce692587045bc37c8fc6bf8c57d55a0d16a31bb790582e92e69f9804da412fdf5281a6c8399bfe3d56ceb52f4d6494d1db4712c825e274d8f03fa90852ec26444068ab89103136c076641f9712bebd1b4d82ce543381b51097dbf58beff6aa3ad5e90ed662fd094a916b498819f80594d1fbe22593e8dc7ceba56b26f45e8618d76044297d671fc3b3ef9232ae8bf5db220ef3c5235483344a71a96b3eef41ad11dc5d4deb0cfdb028724dfd5f3c99cbd61e97b462198ffec3bc84e84058b90deb670624ab6bab958f3d517b5892495f522939cc77292f4fef65f5a53f1ebd50be377bed0da33f7ca3cc0be82cb822c5827de54a69e503fd73de1ff86cbc65f1c788ddcd88a8b4722a2663dcb0111dab47d4a348b187577e8e53e38dffe16522cd3090bd14e84c88f852d20be51da9e2c5a0112998f4fd54046e00a0ac3ad5e6f7c48538fbbb84080f2c9226be68f4e30082dd7f39ddb0fa1d3238c6a1f257964ed3966d088bbae4315690a91a01fdaff0bb3876793b7318644e41e53d10624a33ef0a3c8eef94aa96b0518cb43218d553e4d1160380f495091951742efcca9fa95e511d11c46a288e9b6c2900f597a5a6f9a3d3e6d494f4df59c88aa1a7f7302968ae21cd3e7bea4cb02f19310b745b1cb6d5ac6e6a21cc0adf19a0acc13886eeb7a17b15b3b98c2eb373ad3cbf0da816d063a4b1b443dafe5f223efccb5813b9d3220b6cac3aad33432d4ffdf117114404abddedbc0de60b87a50d9b8e95c5233e74a969bfded30b19c48e250e79098b474f1578080accc263406473b35d285aac263e9f9751801d31e7dbe8b0f1396aa02a26229fc2729a73e9ac3628dbc34c2619e1cb0d5a30b0ccce909bfc0f7e395a8b26b5371e9173c96b6afa49d15021a77372127778d9e7297d9f49c1e23d8156b7201ef3c884da4fb8b478ea76593dff6df1474a516af928a07422ec18082267b294aed6d4f20474175c1fbb206d8eb5d016d0f02f266028d1d272a74cd93c1b8e421aa9ab679fa7d71367b7245bbb50e053137e2dd5abad11c82ca29c5a95e28cc4cfa8f8040dc81eb29c8e6c2f84642e4eb1bf646c5d4c5c816b96872e2241979424fc9afe69b82b7da8b70f02884a29474999418d236cf2fdafe4edf7fe6cfaebd2890fce3900bf039ce26f373107245cb8b774be98ce4b7d2ca678efa64fe680139384d55e2d2a54885eb2c8b2386db2ded711eca8fe40a9cd43c42397ef7ecb79127bd884a45ace72012eccbeda17a00ef1b006f455d54088943ca70042c11c670fcb8d37f7ca19ca2fb8d9f2068fa2eba30bd7b17c76772d6dcd86ec1b7e97cef8346ead31ef42768a7266ebb8c4bb1059bb0658952d315e1d5b2118b73c595244089364a20e0ee2e4e170c836481d31af444217f1348b55809c78409c66e3d4081336ff0d1140b4f74235a8e70fae9939c1769f79e12fa8242403192848052346a433b625d6fe3962c6b086c07354c2a0e6e7be98c16c792d022bc96df697b16b554c6c4d1dafced87bccaf9fd8109f8c152e71bcadfbc29a8a7617a4bbd600fc92730dcafd483874ba22b2d85b532c5e40b8188b7d2845af7ff6dd5e065b6edccd2d644e0bdc285318f7520c98d87b47e586e259228fccfb1aba040def8fa819ce826a44ca58f3d5cc8753267160a3b89fd8bf2fc3b2dacb59138a2c3cb232ae25964bab28aca0093109bcf5fd49a52928f53b7bc28b4e7608bbc176df89e22efb3edfb3f0177b3f7d8cc88c294ec0cb1dffbce23157d0d51262d77f566710fa341e91d0a5bd75dbe9ca77ae8dbe2e25731c6f9f71442cdcff64ad5b7bae857e2bc5faa6c600eac881b2c8f93f18f5426d145c98085995764c02cc15129dfe7e08768f85bc39239d88cd7ca9b11a05ef4100f97e153a426b3301bf3c54a7b9878022e6906f4a7a2eba1eea35e36d857568efcf5a4c68decfa2ec745a6c705fc75cba6033f925df54a1f84106a55ff4a069e08a674bbbc1164b07545ce86b617b162e87a15cbf622c225bb1385aa8472cc86750b5b1f6ff7cb562c749a69504389dedf5e9744c119d940b5be7df0b89549ace948c44e5f0642cc8f92bb1665c10f1bd99963a449c7d42c785d916ee8ba235ef84a4f478aba7e67dcf9998905e8c4855e786fc0b7789af14795712321a1cc1f59b0857c32b3352c5d5e6465ca66294204e5ee1e7de9f33db1d72168c083084746b17e8242e45e9aa69f542816d0dd5d1b66aa6fb3e76f714391422443d42b02067c41101b9b005c959e39d95122916300e0abeda2184a0dbe8beeaedd18b0e2f9cd7c0177eae21d347224b16a439a92f05965885dba58029bcf7af2f1136af0b5331a06242e1706b56479e56bb59fcc63d98070a843ce2faa73c6d87f776a987db359d1f59fca249f06d1e5ba4d99fd6225e0dfa7bb9af784b22acd2e354f0a6797311c9fb8194616962433de856720f0ca0687d49196b8ec591f43cbe41a7e406cc16074fa72756c57568cef85a2490345efdf85e683f499430fa4c58ee650775ab49d6c6c0ad3930b60954e03fb31d90b3b507dc5c4d0fbbd32feb75df67df9c10da306dd75af551fcfbf8bb037f54285b2f53539bc2b2269344035c8afd92c3f7c277c050e9ce839f8b333e716152011d8186dd938a8d77e791cbca953585cf7f5eeba720f94e37646d605bfd50f8d662d8aae00050facc764b3059115e05b70dffedfc27a85c4ecf85ad9d29ad3e810f6ac40fdbbefd151751a435fc5af64442d25975b73e9236fbd4271f879980284a80173e140b8c7fe3caa3d10db95f307ec6dcca1e9613c2a792fcaa400f60ea6298e11ead79d5780eb247ee4246fc76585c29839420bfdbbe0d55b7c4603f95537b78337202e89f102daffbc0b17555e645fd7513db06834ad60e84e6dc5ae0f9f75b645adbf9111fc192a98afe57a9d5a9b56bf915462b7d398c0c778d0165d65576bdb09ee0ce78db879ae0f2f4092cd3db0b3a09925bcf33929fa4d0e519cff33a017f756325a5c195500066fc6a68e0acba30695073be344"}, {0xd0, 0x101, 0x10000, "6b04df065a0e071bc00be86f6e0d9aacae01f07a84e3ef304705e093e64f33bd1706103c2e05d4a1502a2112474159518d0a2ac73cd5c3c6901031d03de1693275121e9b5a22da73667e851fec56fe742aebafa7eed7a2ccef588f492724a48531b71d6b423494b52928ad4dbd29f08d02d16657da1eb1874948d52e066668ec7ec4945f4dc514c4b753262c564d5bbf345ad7bc2798b96d3d353e0b1a7149c1629301db953758d45ce02c3f2ed08cc355b645da9e92b89faf81242e2cec777e"}, {0xf0, 0x109, 0x40, "52dd50764563747d3d1cf812753072532434a739dc3461b8c80f4ac56805396ca0aaea8b6193f0ab1d5132df7b01f60bcf907301523a399ba17962e4194aef1d4f4d5c05e03bc46ab691044aa173001ea82b38bd15e242264233bc1b70c32d5c98f5ec1cf60fba4424441bf4b228428eec7fe930cf0727e770902d20bd85feec424c754da8bbe8245b2f3167da9309341ff165ab3c8f9fb53803b8fe3dce576f0ba2a968712912f73ddd087dc620d4ed4b7818c2df78ebaab79fcd16cc766d6d897a508c5c3c060557c75e17495f559a0e970522bd710414cd"}, {0xd0, 0x371, 0x200, "c20280043544bc676ff8743a8e58561ac3de3f0e738f4010720cd967473d733948344d71d99049a461e5106e8a95490636d5f9d4087bf0b24d6a7c9c5dad1b43cc36ac7cd59c4cca61e4d6b926d2fa621a4979417ea25af8593b69ed6ef43d18c6c144dd6eb0b1d149c45d79091c6b2090420db770f7cd74904c1f7653290f442ab4e19b40320e32f215f06bb34caacd5ce86b6bd4f7d699f30de15288c24332624af272c2037741b99e14ac2d0a23982734ff031d613ebf3f5fc06e826640"}, {0xb8, 0x104, 0x0, "c9a6cc093f28807a655d26fe46aa4ef3acc59e7bd76127323bc495cf7f41f00c0c300e6d18f3ec70d01d040472cb2e518a043d09470400144c568e28d32c67199370b4ab97b5e2704a4bc8da634a23d05b7739ceeea51c2f88959234a0e68e6b3140343f04650bf3b67182afe5abbaee2247a36f652a805f0b32da0047a9c03e11bf33e1384cadfc6ce62da104c93942e09258b4c54fd5a8d28550ff58f43749cf80cc61"}, {0x90, 0x0, 0x20, "83a192dbc1e57b6b55ab13f0dc97785e1badb367ff4761760a2fe3914b029ea5f4682ba54eee242f4001b55af14723f6f8ee1c16f278d436adec6673e0aba37976b3f6ee534d575442a4c2307afa33ab5b56d029c68a8518073080ea761e9c18d599adf4f1b0b8ae9a23e324ea89f7c440558087a033915999"}], 0x1498}, 0x4040840) 03:05:30 executing program 1: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0x5ec0aee4f9744f27, 0x803, 0x10000) r2 = socket$inet_icmp_raw(0x2, 0x3, 0x1) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000080)={'vlan0\x00', 0x0}) r4 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') r5 = accept4$tipc(r4, &(0x7f0000000200)=@id, &(0x7f0000000240)=0x10, 0x40000) getsockopt$TIPC_IMPORTANCE(r5, 0x10f, 0x7f, &(0x7f0000000280), &(0x7f0000000380)=0x4) preadv(r4, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r4, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) sendmsg$nl_route(r4, &(0x7f00000001c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x100000}, 0xc, &(0x7f0000000180)={&(0x7f00000000c0)=ANY=[@ANYBLOB="400000001900100029bd7000fcdbdf2580838007fd01c8050008000022000880d5df20b752b775867d4b4f5e8b1fd63b56ebda497b07000051494cc4d3790000"], 0x40}, 0x1, 0x0, 0x0, 0x800}, 0x80) sendto$packet(0xffffffffffffffff, 0x0, 0x0, 0x0, &(0x7f0000000100)={0x11, 0x0, r3, 0x1, 0x0, 0x6, @remote}, 0x14) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000002c0)=0x14) ioctl$ifreq_SIOCGIFINDEX_team(r0, 0x8933, &(0x7f0000000040)={'team0\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000300)=@newlink={0x44, 0x10, 0x401, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @macvtap={{0xc}, {0x4}}}, @IFLA_LINK={0x8, 0x5, r6}, @IFLA_MASTER={0x8, 0xa, r7}]}, 0x44}, 0x1, 0x18cc9}, 0x0) [ 330.709858] sp0: Synchronizing with TNC [ 330.719285] audit: type=1800 audit(1621479930.166:53): pid=20128 uid=0 auid=4294967295 ses=4294967295 op="collect_data" cause="failed" comm="syz-executor.2" name="SYSV00000000" dev="hugetlbfs" ino=163845 res=0 03:05:30 executing program 2: perf_event_open(&(0x7f000001d000)={0x1, 0x80, 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, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0x0, 0xffffffffffffffff, 0x0) socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000540)={0xffffffffffffffff, 0xffffffffffffffff}) r1 = dup(r0) prlimit64(0x0, 0xe, &(0x7f0000000280)={0xd, 0xffffffffffffff81}, 0x0) r2 = getpid() sched_setattr(r2, &(0x7f0000000040)={0x38, 0x2, 0x0, 0x0, 0x5}, 0x0) socket$inet_tcp(0x2, 0x1, 0x0) pipe(&(0x7f00000001c0)={0xffffffffffffffff, 0xffffffffffffffff}) fcntl$setpipe(r4, 0x407, 0x0) seccomp$SECCOMP_SET_MODE_STRICT(0x0, 0x0, 0x0) write(r4, &(0x7f0000000340), 0x41395527) vmsplice(r3, &(0x7f0000000000)=[{&(0x7f0000000500), 0x3528a9c0}], 0x1, 0x0) sched_setattr(0x0, &(0x7f0000000080)={0x30, 0x2, 0x1, 0x0, 0x3}, 0x0) perf_event_open(&(0x7f0000000200)={0x2, 0x80, 0x0, 0x5, 0x0, 0x0, 0x0, 0xfffffffffffffffe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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}, 0x4000, 0x0, 0x0, 0x0, 0x0, 0x200000}, 0x0, 0x0, 0xffffffffffffffff, 0x0) openat$ptmx(0xffffffffffffff9c, &(0x7f0000000340), 0x0, 0x0) clone(0x1000103, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) pselect6(0x40, &(0x7f00000000c0), 0x0, &(0x7f0000000180)={0xffc, 0x0, 0x1ff}, 0x0, 0x0) preadv(0xffffffffffffffff, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(0xffffffffffffffff, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) kcmp$KCMP_EPOLL_TFD(0x0, 0x0, 0x7, 0xffffffffffffffff, &(0x7f0000000100)={r3, r1}) 03:05:30 executing program 0: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$tipc2(&(0x7f00000003c0), 0xffffffffffffffff) sendmsg$TIPC_NL_MEDIA_GET(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000000400)={0x18, r1, 0x1, 0x0, 0x0, {}, [@TIPC_NLA_MEDIA={0x4}]}, 0x18}}, 0x0) sendmsg$TIPC_NL_MON_GET(0xffffffffffffffff, &(0x7f0000000340)={&(0x7f00000002c0)={0x10, 0x0, 0x0, 0x4000}, 0xc, &(0x7f0000000300)={&(0x7f0000000b40)={0x324, r1, 0x1, 0x70bd26, 0x25dfdbfb, {}, [@TIPC_NLA_MEDIA={0x58, 0x5, 0x0, 0x1, [@TIPC_NLA_MEDIA_PROP={0x34, 0x2, 0x0, 0x1, [@TIPC_NLA_PROP_MTU={0x8, 0x4, 0x6868}, @TIPC_NLA_PROP_MTU={0x8, 0x4, 0x20}, @TIPC_NLA_PROP_MTU={0x8, 0x4, 0x5}, @TIPC_NLA_PROP_TOL={0x8, 0x2, 0x3}, @TIPC_NLA_PROP_PRIO={0x8, 0x1, 0x5}, @TIPC_NLA_PROP_MTU={0x8, 0x4, 0x5}]}, @TIPC_NLA_MEDIA_NAME={0x7, 0x1, 'ib\x00'}, @TIPC_NLA_MEDIA_NAME={0x8, 0x1, 'udp\x00'}, @TIPC_NLA_MEDIA_NAME={0x8, 0x1, 'eth\x00'}, @TIPC_NLA_MEDIA_NAME={0x8, 0x1, 'eth\x00'}]}, @TIPC_NLA_LINK={0x54, 0x4, 0x0, 0x1, [@TIPC_NLA_LINK_PROP={0x14, 0x7, 0x0, 0x1, [@TIPC_NLA_PROP_WIN={0x8, 0x3, 0x8}, @TIPC_NLA_PROP_WIN={0x8, 0x3, 0xfffff001}]}, @TIPC_NLA_LINK_PROP={0x4}, @TIPC_NLA_LINK_PROP={0x24, 0x7, 0x0, 0x1, [@TIPC_NLA_PROP_MTU={0x8, 0x4, 0xc9af}, @TIPC_NLA_PROP_PRIO={0x8, 0x1, 0x1b}, @TIPC_NLA_PROP_WIN={0x8, 0x3, 0xbb4a}, @TIPC_NLA_PROP_MTU={0x8, 0x4, 0xff}]}, @TIPC_NLA_LINK_NAME={0x13, 0x1, 'broadcast-link\x00'}]}, @TIPC_NLA_SOCK={0x5c, 0x2, 0x0, 0x1, [@TIPC_NLA_SOCK_HAS_PUBL={0x4}, @TIPC_NLA_SOCK_REF={0x8, 0x2, 0x7}, @TIPC_NLA_SOCK_REF={0x8, 0x2, 0x9}, @TIPC_NLA_SOCK_ADDR={0x8, 0x1, 0x75}, @TIPC_NLA_SOCK_REF={0x8, 0x2, 0x1}, @TIPC_NLA_SOCK_CON={0x34, 0x3, 0x0, 0x1, [@TIPC_NLA_CON_FLAG={0x8, 0x1, 0x6}, @TIPC_NLA_CON_NODE={0x8, 0x2, 0xb5da}, @TIPC_NLA_CON_FLAG={0x8, 0x1, 0x20}, @TIPC_NLA_CON_NODE={0x8, 0x2, 0x6}, @TIPC_NLA_CON_FLAG={0x8, 0x1, 0x8b7}, @TIPC_NLA_CON_FLAG={0x8, 0x1, 0x1}]}]}, @TIPC_NLA_BEARER={0xc8, 0x1, 0x0, 0x1, [@TIPC_NLA_BEARER_DOMAIN={0x8, 0x3, 0x400}, @TIPC_NLA_BEARER_NAME={0x16, 0x1, @l2={'eth', 0x3a, 'veth0_to_team\x00'}}, @TIPC_NLA_BEARER_NAME={0xe, 0x1, @l2={'eth', 0x3a, 'team0\x00'}}, @TIPC_NLA_BEARER_NAME={0xd, 0x1, @udp='udp:syz2\x00'}, @TIPC_NLA_BEARER_UDP_OPTS={0x38, 0x4, {{0x20, 0x1, @in6={0xa, 0x4e23, 0x80, @initdev={0xfe, 0x88, '\x00', 0x1, 0x0}, 0x5}}, {0x14, 0x2, @in={0x2, 0x4e21, @private=0xa010102}}}}, @TIPC_NLA_BEARER_UDP_OPTS={0x38, 0x4, {{0x20, 0x1, @in6={0xa, 0x4e21, 0x7fff, @ipv4={'\x00', '\xff\xff', @multicast1}, 0xc000}}, {0x14, 0x2, @in={0x2, 0x4e21, @local}}}}, @TIPC_NLA_BEARER_NAME={0x12, 0x1, @l2={'ib', 0x3a, 'veth1_vlan\x00'}}]}, @TIPC_NLA_MEDIA={0x80, 0x5, 0x0, 0x1, [@TIPC_NLA_MEDIA_NAME={0x8, 0x1, 'eth\x00'}, @TIPC_NLA_MEDIA_NAME={0x8, 0x1, 'udp\x00'}, @TIPC_NLA_MEDIA_NAME={0x7, 0x1, 'ib\x00'}, @TIPC_NLA_MEDIA_PROP={0x1c, 0x2, 0x0, 0x1, [@TIPC_NLA_PROP_WIN={0x8, 0x3, 0x7}, @TIPC_NLA_PROP_TOL={0x8, 0x2, 0x41c}, @TIPC_NLA_PROP_MTU={0x8, 0x4, 0x9}]}, @TIPC_NLA_MEDIA_NAME={0x8, 0x1, 'udp\x00'}, @TIPC_NLA_MEDIA_PROP={0x2c, 0x2, 0x0, 0x1, [@TIPC_NLA_PROP_MTU={0x8, 0x4, 0x9}, @TIPC_NLA_PROP_TOL={0x8, 0x2, 0x3}, @TIPC_NLA_PROP_WIN={0x8, 0x3, 0x40}, @TIPC_NLA_PROP_MTU={0x8, 0x4, 0x9}, @TIPC_NLA_PROP_WIN={0x8, 0x3, 0x2}]}, @TIPC_NLA_MEDIA_PROP={0x14, 0x2, 0x0, 0x1, [@TIPC_NLA_PROP_MTU={0x8, 0x4, 0x1}, @TIPC_NLA_PROP_WIN={0x8}]}]}, @TIPC_NLA_MON={0x3c, 0x9, 0x0, 0x1, [@TIPC_NLA_MON_REF={0x8, 0x2, 0x1000}, @TIPC_NLA_MON_ACTIVATION_THRESHOLD={0x8, 0x1, 0x7}, @TIPC_NLA_MON_ACTIVATION_THRESHOLD={0x8, 0x1, 0x5}, @TIPC_NLA_MON_ACTIVATION_THRESHOLD={0x8, 0x1, 0x4d2fdf8d}, @TIPC_NLA_MON_ACTIVATION_THRESHOLD={0x8, 0x1, 0x7f}, @TIPC_NLA_MON_REF={0x8, 0x2, 0x1}, @TIPC_NLA_MON_REF={0x8, 0x2, 0xff}]}, @TIPC_NLA_SOCK={0x84, 0x2, 0x0, 0x1, [@TIPC_NLA_SOCK_REF={0x8, 0x2, 0x9}, @TIPC_NLA_SOCK_ADDR={0x8, 0x1, 0xef}, @TIPC_NLA_SOCK_CON={0x24, 0x3, 0x0, 0x1, [@TIPC_NLA_CON_NODE={0x8, 0x2, 0x8fa}, @TIPC_NLA_CON_FLAG={0x8, 0x1, 0x1}, @TIPC_NLA_CON_FLAG={0x8, 0x1, 0x1}, @TIPC_NLA_CON_FLAG={0x8, 0x1, 0xcb20}]}, @TIPC_NLA_SOCK_CON={0x3c, 0x3, 0x0, 0x1, [@TIPC_NLA_CON_FLAG={0x8, 0x1, 0x4}, @TIPC_NLA_CON_NODE={0x8}, @TIPC_NLA_CON_NODE={0x8, 0x2, 0x73fb}, @TIPC_NLA_CON_NODE={0x8, 0x2, 0x96}, @TIPC_NLA_CON_NODE={0x8, 0x2, 0x2}, @TIPC_NLA_CON_NODE={0x8, 0x2, 0x8}, @TIPC_NLA_CON_FLAG={0x8, 0x1, 0x7}]}, @TIPC_NLA_SOCK_ADDR={0x8, 0x1, 0x200000}, @TIPC_NLA_SOCK_ADDR={0x8, 0x1, 0x2}]}]}, 0x324}, 0x1, 0x0, 0x0, 0x8010}, 0x40000) sendmsg$nl_route_sched(0xffffffffffffffff, 0x0, 0x0) r2 = getpid() sched_setscheduler(r2, 0x5, &(0x7f0000000380)) r3 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) r4 = ioctl$KVM_CREATE_VM(r3, 0xae01, 0x0) perf_event_open(&(0x7f00000003c0)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1ff, 0x0, 0x1, 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_config_ext={0x81, 0x5}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$KVM_CREATE_IRQCHIP(r4, 0xae60) r5 = ioctl$KVM_CREATE_VCPU(r4, 0xae41, 0x0) r6 = openat(0xffffffffffffffff, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) r7 = syz_genetlink_get_family_id$nl80211(&(0x7f00000000c0), r6) sendmsg$NL80211_CMD_DEL_MPATH(r6, &(0x7f0000000200)={&(0x7f0000000040)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000180)={0x20, r7, 0x8, 0x70bd2b, 0x25dfdbfc, {{}, {@void, @val={0xc, 0x99, {0x6, 0x45}}}}}, 0x20}, 0x1, 0x0, 0x0, 0x40}, 0x1) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r6, 0x0) syz_kvm_setup_cpu$x86(r4, r5, &(0x7f00002e8000/0x18000)=nil, &(0x7f0000000240)=[@textreal={0x8, &(0x7f0000000100)="ba61002ef3a50f46543ff30fa7e00f090f01c82664deed3666660f380b9d93000f01ca0f78f566660fc7b30000", 0x2d}], 0x1, 0x0, 0x0, 0x0) ioctl$KVM_SET_LAPIC(r5, 0x4400ae8f, &(0x7f0000000400)={"6cdd4237dd245c8404721efdc9c8dc1964125fa96fa42b761c6ec25b2bec0ba4c81036c93a40c8a4d4412a763b00040000000000003c5ca206c047ecee377abaece6b88378e38e06c5fc191f361d264ffa8b46485f02baee1ab6b8154252066178868d1ef4b53606000000000000007c21a984c2b9ca4bbb7a87165c0c1dbc75d7ea4df1001000000000694525952f44500a1f0db509c32cc7ace842c28f37f06e4ea9f1e5f0c6c379f9cc58bf69fcde317fad4825aa1b6a832d4e48cc41bb5a6baa41d614f6c8941bee805954a62d196a4e8d4bf6b21224b57f530d0000c1ff53bf79a1f5c5dc34b22645cbc11c4562d22db88d0edc5daee171cc04d96d9ec2db07478f347edbd6404923ad4a5672b1b285c7988c4ec0922c655ff600000000c00dc290d936d93236051fadfb4b95d02c0bda7ce38dabb7cd103fe4d0c9c963cd717a77f8df8d46099b1f580968af6afbbc19db161c6df3e7c9c71bc08a282fc2c142856b5e4caff4c0a4f72445ef10dcd2c569319d6e9bb2058d023f669a64fc7d9684b45b00000000364673dcfa9235ea5a2ff23c4bb5c5acb290e8976dcac779ff000000000000003d4e185afe28a774b99d3890bd37428617de4cdd6f53c419ce31054182fd098af7b7f1b1152c691611f897558d4b755cb783978d9859b0537b05b623dcb5c4ca9317471a40fa4998cca80e961efffb4e1aa25d8a17deef0c8694c4395fc99be3c3fe7aeb8af4929ce7d346ca62b25d48fda5d10146702f78b233b5208752726ed9f0c340d494b92d19cc930bb8a5f8b4da8f4603ac0c3b698384e17a570dc8524823ed15af4ecfabb4b2541d3c114b7bba1c21a845c9cf0d1cc24aba47e30f558b2246ad95ccf7d2f80cc0ab26f08336ea1a33b79cf35b898837016eb211a1734c7af076e15451e33519fc978f66df7df4557c91024a8dc130a28ef5f63ad07b39c8d23b85cf434e065e8a29a80047fe17dee6f6347b4951f97b5703dc78b1ca9d74ea6a9ae12ab367c0de2659cc38d2f33ddd86e0597d33361eada119b5132145fa4525c488c7fffd6ceda6e9a02ebd97ced6b0161f2cc84615ceb8b18883299c636e9e46724a9a0600a8bb02f3e489631d522019a35fe12a33caf9dd8768ddbc02a484c345c3eff254297b1dbb04989c3f9f3c7b3c985c39b1d313018068d3809bac8c657e39f4f692613e28387e955722908dd88b56163be8312ff47c5b6f280472935af74e97a5a8110a4d74496f4c8ec82ddb010100000000000001a047526865c888c9ff36056cc4ad258021e1581d43badaaec6cc5a2ef989de9801fed6d4be2bfcfe07a69c46bffbe9dd03970800000000000000d372bdd6d89dc1ecf63c23d506114d0fba2bd1c69e8f7e3fccdcda85ce975ec1381b1cec6ddaa76e186719d819164300"}) ioctl$KVM_SET_VAPIC_ADDR(r5, 0x4008ae93, &(0x7f0000000140)=0x5000) ioctl$KVM_RUN(r5, 0xae80, 0x0) [ 330.908513] audit: type=1326 audit(1621479930.356:54): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=20209 comm="syz-executor.2" exe="/root/syz-executor.2" sig=9 arch=c000003e syscall=231 compat=0 ip=0x4665d9 code=0x0 03:05:30 executing program 1: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0x1, 0x803, 0x0) r2 = socket$inet_icmp_raw(0x2, 0x3, 0x1) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000080)={'vlan0\x00', 0x0}) sendto$packet(0xffffffffffffffff, 0x0, 0x0, 0x0, &(0x7f0000000100)={0x11, 0x0, r3, 0x1, 0x0, 0x6, @remote}, 0x14) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000002c0)=0x14) ioctl$ifreq_SIOCGIFINDEX_team(r0, 0x8933, &(0x7f0000000040)={'team0\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000300)=@newlink={0x44, 0x10, 0x400, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x0, 0x40000}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @macvtap={{0xc}, {0x4}}}, @IFLA_LINK={0x8, 0x5, r4}, @IFLA_MASTER={0x8, 0xa, r5}]}, 0x44}, 0x1, 0x18cc9}, 0x0) 03:05:30 executing program 3: r0 = socket$kcm(0x21, 0x2, 0x2) setsockopt$sock_attach_bpf(r0, 0x110, 0x4, 0x0, 0x239) sendmsg$kcm(r0, &(0x7f0000003e40)={&(0x7f00000004c0)=@tipc=@id={0x1e, 0x3, 0x3, {0x4e24}}, 0x80, &(0x7f0000002bc0)=[{&(0x7f0000000540)="da0db2e6", 0x4}, {&(0x7f0000000580)="45231fa30f6e16a1281ec6b2356eb83ec3bafc8fe8f2dfd4e3abbee32ea46e59eec6bcb05461de78491ce85e47", 0x2d}, {&(0x7f0000001bc0)="8cb95e05f8bc85f3649e5c29f80044262ff290f04e2b6a80921aa3338ff5d67d8b18f3be8310a2d41a07b8fc077d75fce7bd533464b917b0422f4a7bb04a6a9c742d6e956e37e2456c3e20332820378c8a72b9b4a19f5f41ddb60af665364d5c8bd5f9b3773e106dd61786ab5d6787d07709149571a8de71910490e1a24280b00b2100cf640b830a7f4ea7eae27b614947bfcb1ed719fe3397512ee19edf3132c458a1d365652eddc357ba26b2293d9d4a35e90b1f507a3942baa3d2021738b99569e835bd46b86a2b42e7f5fb873bc72c221c993dae307065ba28fd69f66fe5b0c704afaaa72f26cadce59fd33288affe32287d2654297aa9d762f6138ec993eaf26dcf6c4e45b2f5106d882b6d0ea82e36802c37e53d2848df5f3f776817acfbaac88eb6f804613735ad3b97762d0ef75bee54df480afec9bf47d7fb36367b3b5a1a1fd1b598ecd307cd8660560e3fafb83d36a5f0eb050a1b2656511a74b0b48fbea5d3990d658a46596447f45db4f5c02a3e83a727922534629d7b01cc2760da51f0cd03d347034d9e7d46d931fa850dc98852773d31dcf5cd035b623d7163d74a39ca8417be899371069bd60cfebd45c09a47477b8b3edad72d39d9c94758544906ad086f8917a2ed5aac609492e99552216c5740d418a356def06e3dfc1bc5f3e4c837115e2c577208ce6446e0eb3ce6e59ec724a0b347512c7f6b559c1a8e3c254919f5c8c76d0273fba7c98094fff1acfaf15c8277bd082fc4230d582c0bc800f67d9541035692466b42965dcf1a4dd8fdcc992d7ffde8e2aa50b5f0c9f3ebd746be1cedaa88a3757b698f2441f70a6e81af2de208bb65157a4ba79bf80dbd36f22be44fa466451e579640a3a2457f0cd03d199f7f2d7ae85a1e72e8cce97ead4f257b419ade316a1bf0fdb3e5b40eb5a9e5b315774ec94fc7b075a528f4a238c035bcaa6ffc28f62493eec8e31d8cebd92ac5f5759489d63de83397d3b7f938d858b551a3c5863594c1aa40516deabaaf8b79008ea783909d2d11a0b3e965b72cef61bf23c08d395a51b785bbe6e4cafdc66ba8b05b3810e800960a388c104c4bcda4e8f76d6e0456bd089fd2039a5b76c45237836b40058b33615fe97d35aff2b25c88c55fb304b700eb397b48a505af26eefbfc2b53fb3dda284624d3caf7802cf26409659cbb1433ffb322f171112c6f39c6c50c7fb60445fd7916afc676bdc66223f37643918389f3d6d1793af41c30532c2f04a6bc876f433c4e6bd33604d59f50d52c69115f872d6943bb3d5df65a244500e2b52ca0516b390effd4df6a42d1861d45d42aa5d5f0255e662a4729ab3bc6c596537a109843a357a1c25f85e68f4f3ccef9d1cb9a9c2857fdf67cdf00ebdb860563013660e80a1aa35db8bd82d37c4e2d24c969ce2897ad7d72b82e6a213db4f1c3e99b98c31b5c0520af4e1584f53b2262d3e7f4ff534ff9275894c659e3c3ce9aa8de1f0460f41b094764e54d6ad971c5ed6620c54af43c9ea2063287742b1c3ea372f5fc06ff6e2c6d3dc0851b526f34226083ba13830bb968bfa4cca6ac5a911c2669cf19415e17ba2a21380034c8807a5ecec59279085bc1681949dae0fba608b590e11fe19a7a3072b1725682c14b11ff1ecc12569b43d0039e021e4ebd0f14621477f65d2f92841c1248cecda35831963076ad31196e558f9824da41825a4e754d71e8321b9c1d720dfae02d0bb5aa11513ce6e8d7ae939d9e860f7db6b653ef3d836912d6ab46a15b4185b9b7707ff13414cdbf2958069d70984bcb177cec7adf74508b50b633eeea15913adde7e87c8a60a738e9f1fad9140bf989c5f9a0bc1a8cd20b493100b04918fca849042e69886056ceded6b8d3dde5dc125c01631a77c079345af4cb9268f2ab35b95598f52a7ab7ede4392a33a86835768a801c23f68ef2a094570436638dc3131a5fe8d92f09a21ddbba8d7f7d58bb6b74cd0badbf2daf10afb84e73c4a10e3994ff5d08a0ca5d67879f2a5660ad6e82d6bd88eb2765f1e52093c3fdf6020b83ea79234761c79ae8ce41bff456d90eda4c5a5c7694aa8c5cf8902b1bf2bc18508514ddd8682342626d10b94dc63a29e4d3c73d1a548d8a51bc0db3683cef5c3ce7c816da1ca7c7255033a1a0c5a141676fe311d05d6d23cd9308c3496ff6b590a04122c16a04d2b7b597dfde29b1db278d58f880c02db849fa4876e1696347c88396c43b5943e4d002c511009b249e020c4a3a8f52937bf92b96933aa75a340937266b31430e6df6a7122236b3a6a69cf9a2f130b945d7bd0e93883fb89da457d95e6811224addecc7ecebcb8f475092adc23d07de8ffebe26221e73cde8312d3161342b720a22ebaf51bf81fb39cd2a7737725205a7cacc94f4ddebdb7bffdeb6f81d0ba63be8fc9e895268ca9caf661507a08d167b09f900896be02d560dd65bc7b82a3c262395b7b9f84564cc9d14f68ec96eb98805dddc9d826abf1dbdeb2fe5c75be667e326958d11516a5b3d1a4bfb2a2a521305f6b8d450b4e9936ee5bfa17a41460b9e3c3be8985c6d493837ebefb76f335337ee54d30aedd809dee6dd376a49bca61690f78de6156778e1fe7ed78502bec255ba7b48666d4121de55738b3c6fa41f52a452323404d3f2264c8523a04aa6939abeadda010d4b44e08484e11e7c91607dc0af086d9c4ab2276950791a839df555271dc79d35e38cf09996dc2cc568345ddd94dff6fc59a9fa8e2e947cabeceb3e7ce07ae42873a76e86800f2d9ccdbd94ae05be28865411f28a5fd31c139a99db7c54a3c0b6f58dafc9c5fde1cf97b998e4b38e09e939e8c281a467747858ec36d24e062dbde6730631135497693917ef8c7d06f4e2172e9f93a8b8d1efc0d84c04b9588a075476de28936f428cf2edfbd43777c9a68df76ebb401c180eebd36796cc67048a19869abe4cc8c71f9275b6a4fe0d20d12802eeb1ae1a51bfd647f8d39eaaf62205c4b4c8c795b2a2aa86e8a6ee1de92c0e83894e39845c9adcc7ece6ad167ba4fb8882c68ea8e50b4e794a4f558db82abe266c6ddd7d61dea94aaa780925e9d600927aab0015b574c781c557ec2ec7395a828efce4d16c7e59e32e8973281a9d578db231b49ac6bfb95ae2e68f03b197ce1a4368287140e6e2a47ba3428efde024f869cce8c7e43e5e7785a369406e50fe45205d8c0305bf5f9577bf07d201d6d26b16f4e3d893e7827ad8e6240e8728f7b39d7d6986a79c1003e383815af1d05e170d568cc6c4772aa8d5eb8e0cc154a303dcf42f34fc5908fbe6fc5ea357f6fd9bcec982f94755350f691f4fc4ac6956b69a914c153781a7975392418077dfefe5ed1e9675753826ba6d8e60affc607e43deffc3f1bf04b5af7ca07a3ed2d2c07d6949f0b4c6a3a57b0328cf4572e9ee33c06db54517185e86679e23607a91349c0c49a548c61e85c0daa105ef3b514fe190f982851773361c3b41a0539c095b38d801882040109eab8880bba82ced8f7dd9385455e46d53531890c09010fcdcaf9fc84947eed14760642aacb02b48924b62ba46034b8233b49ea26b067552dceedfb73ab9c86ef4bd730b9efdcf5a7fccf945895f837fd2c1f7b8600836facf66391e8d96237459a5b2e941a9e046e151a16c29a8d95e100625298e4ec3b6e253cda2f210039412a0e09a8a678d91dfc01d7230f771a0416ce2b8257d8292dd5ce8aee5e37e70989724d09935628f0e8e7996d66764361173bf27e6ebb650d75d6c726e067eb1f2b184b41743e560ca2e38a96508c2b2770c12cf8fd3cf8c6f88f20c367c65aa8e142a65ac4332a393234eba63f7079d657e94784cfc12401503a9578e3428c1f91fc3295f897faa8ce4871286e5ba1dd78b923596374c2775124367e0396033e69ea36e1d79bbcf23481c7c45aa26971bf1d86e4f96872bda0df762cffb771203f90b8bd13340cfd56aebc389a63722522246e733b89a27e832feaedf501f3dd9b5a787bb12a0051413ce6290ce7d0519d548f5773f8a043e4b1d8a340ee737d696a98e6afd9fc1fc03b15aa5f8d0632a8960e86d8b3d5ffcf5b5004bc3def41b195206c6ada579467ada51348c808f747c1ba52a8b05c0a61be5065c9adf8fdee75e4e34a7405a54b3519ba66b5f86add8ade2586f3ae3fb98f8bba3ad5ef7c1e12c62943b3d26420a1a3e216dfd0d42e1a76ce5232321898141e530d9302e58d30cf428485c9083f4036d494d39dd7176bf3d68315c3f27f62d77c64c885f99dbb3617b09203b5b367ff9adf851beba4d3dc7cf980af06c3092c2c40cc8ab58f693de5e8be7d60d6b0679e8e76eae2f3f3bacdf6d3c9b08ae6c73e4cab6d5cedaa2028f60a62aa4c26a5303c4be7291f1456818cc0f7cb4b3dc17a97e9fc4667efff5a5a3881d50a105638d7f901beb75381495df507bafdbbaeb136e66c4209d94fee53de6bd2cf63a3f60ce43b1b612d1b30ffda775e0809968e85801da3427655d4e0bd1e71148870faf36f9f0950411ec9df75e23ad215643acaa0071278d73374ae60019a4180b29b3154d9f63a39952df17ce1a832ab8ff22a0de96a566b141a248b331b00317184d950f41a118faf3e0df9934eeef667273c7ff2b8ef52bd7814d92266e609f938089fe006cabab43344b9590c34e42b67512a2dfd3e4b3e90a013b9e13baebf5b9ccaa2e2aec6fdfda70cbfddab7c394ad10a868cef2699a355e18c9808fc0f2599ee78e6060103939dc881c3ce82a4b8d63f7a411356063e1d49b32c5d13022c2cf16bbb53eec4f8b2dce632a4703d45e05929414f7000a47d6af25e69b9e44914b90b8e76684c8b78064cfef2ba4198f7f0c1c675e9a8dc5af03bc89aee22936655e1aaf7d1ddd9dd80f10322fd2bc1e966ecf863e937be93cb85a265e7bfb3b7d0d2bfb8775e1c38746fd0e591956ed910968b9b5aa60ff859015955e7ced8ca22f5312c00bdbcca7095a4d950974b32c24ee28ff662e9b2039ede73f8b0cded34eac043bd88447bb318dbf661c4340de80c0e1990d407e7271d79ade8c6424731fe5c17b50980d2e22c420559f1bceeafa030137e1972837014ff1dd240ce2e6ed1adf8d30d1cc929e3fbfad06873ee1fe806914c18b425917e452bce1d744de22b1f24efc2ffbebc407635794f52e8b7b6eb2481d4ada7203dcce30c0ecbccdb4c1d450a4df788472b7d3520f820e48205e93896914285daa08915a7ea7dd4df29e0eacc6b359d42cb77065c68ca7d62ac498ae72c38025f560b13892603bafb15a44bf53295b39b76835e14a8f6aa1422dc890855b1ea94572f3489879253042bf7b8a68ba5ea7fa71952ec664458e7c637b781e59e69e8f1ba2d5a5b9aaac1cb9f23aeb0425fa44e70e3e8238b6de44753a7773226a48d5d5a6ca8fcf588e7ee4647aebec574d8df50252ddaf040309c44b72bcf2e0c060d3c7376decb1de2c9b1bfc2ac176c26bef3f575098d4e1127c0f0b65b11f5eb80d9f5f4087103de16b2b1557f6d7d8e9db32947257e9e6bef596a5380730368ad7c14e4d4ec1d9b9a65b2128f7bba56fdd9391c56efc643682b33debd93e904df24794456821f5d681bea4c3a2f0b079e6f1bba60b0bd5f204d36f0fa787f407f189a087885cbd91e00384fdfdf04f8820a8b50df165cd43c65245ca9bff0a5f9e03d425dbdafb5a29944d583ddc8278359d976228f9314daa1e16172e696163841f7857fdcaa4a82be19855bb32f6afc24a7591c34f187ca2f885b5d540de546b468a3abeb6c30940fcb059", 0x1000}], 0x3, &(0x7f0000002c00)=ANY=[@ANYBLOB="101000000000000012010000030000009a0edbeb71e86222537e3f6a5133561b85564d899aea1bad68d1ac2119d5cc559b822ac6e2b0af532fcb642e6b228e16b8e78fad6d51ec7873bba2806591fdc3043955d66848b084b9bff996ca09cc7f70e73e453553fbaa2d616a1c38bcdcbbdd3cb8512fbdf561bbb89ea755ea7e1510e30fb76cddd00d9f4e1b844a20764095803006fc0894cba2d292eaea2d87e453cf9e0b934bfc6a491d95b613d72b432820cfd770f32b575168a1c9be1a8f1816f624421f71c232f112573324fa59edb3fd61819a878a0a901c3f4076eccf5c56e4c970029519d3e9e504fed3f46841da535bd6e0285660faddd5cd720172c0624caf100ff8468a4c9019a460f8f1d2d0820c77e0ef23392cc73945ada32172c103c839926c59f7511ae285f8ce97d193a3b034282a05be820e8a56ce358fbf8f878750c02697be91b2031a0db098c98e2c0af9f542269342038afa0ee376613df026ac23f53eb2d6976efd99d3ce17f22dd91e069626c3e29b4e1bfa6458f8b708fe2f139bad34b80b50738967678e2175952f1625eb706cdfd52cc12b8ba255ec7607dee6e4c76015297cd1a9231d8a8bd7cf421e23bdb8966b5790cc7d876551188b7de0d1bfe916d79e2df59c425501d063d36c6309c7367a7929fa7c189276a05232136e7cc536274b1568f1a3cb668b50650987a274716d60bc65d46cc6d7514b266949fe1607ce3b9bb6c8c4052ce7ae1b6e974a5f726bf49fbb21851f28bfe8f95925c1d18eef3377fa4d3f88d931329af5f07970a917ad29a1f97869e95ee32ad7ec4f3314d1da6f4ad88845445cc82f1591dd49cc70bade16f0957ae763b4aa3b2655536280eb5c051a107019db9894851891311602c030f0ef546e3fb6740921438f948ebc67f1c6b9f37be2cfe1dfc3eedcff1d3abb96187d1f76b0220380039d5e2c0f603bbdbfef8fdbaac2de4f8e6a9e8659acf4859d299404c8d00c223dc8501f23b2a4146d885bc31da2484872418c7788be2c89ac0bac2665b93c41a4790358e2bac499a03b1198c27c9d5bc7df114e572012799c4d44736a721f9b6174d0c00a288138e7a9fd8d95afc13f52c09a67b7d08d552acedfba2a6e0620dda1885cb7a690eff9a9d48381aa5a708464b5dd10ce66204757a424514a34c8b4c9da5e75a8eaa192e2d3ccc5bf3f0c8138e72d09e143dbe20a3ad4f4546cc1759fde6d6370d1b2cfe9c018865e43a4ce74521c8da82e8f7e77dc1439536d04ed7d6aab139cfa8ec8c283f71f74de9f0ee0c69d1fe58a9c8085487b02338f077681808e0337476c2ee10c4b80aa1845a796df62b7096f1e33212d800256e6d48d414135f45645c854b41bc1dee7d7a34901aaeb6d3ead086d663f63c24db5e3f5a7fa98c8fb4794f03b2c22bc95d0612c14e6e32d0e7cf0244290fe0fc95b833f8e402678d4f2bb9cbad8cf4a39b43dbf1f2c672c62b94eb66f0e4ea5212da11011aab03f56fe82f16d24e18a8e427383e768bfd730d08a6b123b4a23d3dc6ede0029ec055ce4ce11ea220bb0a1b03d4f563d4cccd5645076fea9ab1d11e6a955804eeefc447cf9a4a61067bba26fda58c0ff51d957108cd35408e9d86f579dc98f45e10cc01f28dcbdffb6456cee63f567ee13c3c1c69c88402b6c56029eb68b5e13da6ff954d47508ca8dd7cb62a49954cb4cffbd155e5cc45bf3ae3455536cfce942e3a26575394491465b9aeb6ced1f725738b48736b7a8235a7853f0f9e7d99639a8d42f74c261e12232a32c79d2d2a617d284915f1110b1dc45bf15d3fe8b40f54368cc3bdfb41e3bc1ee18e9eede1499d26c5a8fe431bfa09f575cf1060f3e501ad07626d611322cf1ee69a0e39d88326e6cdfab8d9d93899ac7cfe6ed873f4b799cc970c67cabfdc7c02fa34def4e810d17d5811c555d8c7dcf3d11b1201748754d0e4cf9748b3f5bde50386aefe805be8999a6c783613bd6c2c24d7ce11cb6f869460a35a8d88a9432dfdc017f6d56b072e1668081e151017934a22dd0c563bbae63587f5c0cf12c960e20ee738b1dbbb2d536dfb0dcbee2438cd84478c12ebdd16fe5471ddce252f2d823c7be1976eb1132e4ed1658cb99c99ed9ea58cb86f4324250f83ba042cf57f2fed9ad77b51f3271b0fa0bdce455c2aba3fa5261aa4f1af0c0411d5b32875d05bc6adeeef7ffb387005d0c342092a7c3a62b2f1308f01835ae4400f39e8777faa5f3b1fbac8ec7d9e48c1675f479a7d15f47dd35502db600cfe6bac0501e6b28fcfad46a6d5af68deeb3577bbac622446f318d16c755ffd3713bf424a7c6310dfc31de8743aa2e9cc4bb07c231608880614914a0275bbd0c8b14ec64ecc918354634e4a0f4e6c8f4b21d70f3fb5e70a0bedc2b6b73b29441f251a28c91f2b1b784f86b1d923920fed95728072a02123f63a13c61876138ac79ddf0179861511ee49843ca9b85ce5e433a5007b452aa90a2b20c9f26370b3a0ea1eccd9e38872d9440d86b8e47bacfcb9124a7f7446d0d7e5ded88e6af7307e7b9c498b4afb76745f7c69f616765784c849d110a67dcb071b95421d19a6529c144ee5390bb7d14b0c59e864bbd784eec57675b6bf17870e17f89eaa381be3b9c456e38a897a520a332eef508d4bf1511e09896050f343f27873bc9aed626326ca3d2923ca8de0c324d4527e834af8eb8a3fa95c4fe2223130c6f2ea114215472d6ee33b420c92863fed2470f943b689a29a875ffb499ff23cd74301990b039ba2fc86ebabc8d13eead2bad788a87155e48af2f0a6130c369a40fb392e0476cf74de3686208524aa95389412011fadf74fd3f2bee5a239f9ac5b5fac205ccd993eb12db9be731869221206250991971ba90833ece186c295a65063b273caa134f279e15d48d538efbf1e90a449985aae79895837af73c90acbdb8f45d32d74ac06a607f63fd40ff782fd2cb0ce2cc4916d89dbaed5a5a57fe0991247b7e00c84727f8a92ac3e477498ff63e09d6f26f35a721538d6b42491bf693984423c57f572f3cca1d6214f1a9067533c8615d268f79d8f325e36b853861614e1801695ed3b896981d3bf9c816c4071cbd69ed05e1884ce2ad5bf1296f40342374c5940b4e54e9f8946adc95faf737e28a101d9fed12aa8334dd01fc457cc3f202785ef950536d56f63b6e2df4482c535ec07c0c27fe1015c8eb88b394bef3b19ddd1e86f360612cf506906ad47f66a9e18bf97ff604df0e390b87ef62be8d9315e4db0cc35d1d153180cff022c5829875483a846b782ec817e7cdb72f3753706b7c46ff88d7b02de5cc162128f088547a2b911b84117115d10d8ee2b285cff903171ddbeb03a53bf27587ee98d6751f6c354ecb5a6bcfefee98d063d43717ddee7dddda28fa40d50345d28840e196f500a99b1203f4414631f91385aafd2847cd2e8a1f6a7ecd69aea3f71c4bd6e8ac0b905056b63a13018a95acda479fafab9d7ca5894b50c0f47a537b955b5e353df834dba6ebe7ebee07c8a9041d35c1e5b8b0428a42bfa4e62b13e933498ba3ac27b207169c4be83255185f82396377ce677f15eee31532c4359213ebb266050345d846b8af9bd661e08f06b33748af7f3992c4b4aebe7299cac61f769d8d6b061e9cf93954728d27776143389532781478bdb432d14fe091d06a31770ab9797482665bbbfcc8039e88096cb0e7ddea4a594704240797ec0dfc03932004d2e81f921c89d76b6e4174535f9fe1539e129c5c17489df2f881a47d4126cb55bd415b777328c472be7ebacd3fd57e45f9d5f328d7f45c7c6473a54471f98cb57dc9342a9a77a0f70838bac308faf625dcfa632b0c59977eaee43dc46e0cf6693edeb88190ecdb306da34e5fbd9c968ceff67960bdb332d627b108501bba520b93688a4716d7d1041ab2c9ca97982195aadabcae9011dace32e4056d4fe07546418035375585f7772ff8e01f27bb832ce7897ac8d9e4940d98936acbbd2500ab6e2a3a905731b1c65941a776ccc365f2617f6d7e7c964a8dc1c98363e58e3781c186d6d5f4c9dc31e264a87c591ec635fe6b1751a0ec4f1b5ef5f9a4187340304d87cbd653c6fa29e6a5261884f3f6de9166fd046d284d34898472f42350c1a7d63688e5979bb31521c0998b4bf95603a82eadd8bd72b19c22ec6487e360fd6fce4d4f1fb9f2786eee7945b3d254ab118477cc4c477562a39c432b2f4bf792cd9afc67997ad7b3024e9ed3d595d2e12d801ccd365f6a14d57142a6933245dc7822e4f623fccfb727176ee30264a1655033da36b8d235424fd184606cc2b4e4f77e57e54cfee6c715e1346e9b1a292815f5ec1db1dcded047372473339bbd17e1612481aea480cf7bf8869a3374c234356c54e3ebd2e174716b3f6dba60000cf0960ea6208592329675f31f9bc268c89bf88fed56ebe3adf263a79a3b9044d12c3b01b1f097599beaf2bfd588aacbaa88e0cdc05d9b0774b99c8070ec38fa91834997849afea77cbfc2b0fbd3375ce5f420ebaf4599c96d02f6b29003bdc203107d1cb11434786e799fc0746df39447db5918a69723defa0f5bfb764946f3587ef9a409e9d61ee1d1e510978ace2d4b30e037597ee117c9ab84f21c15fc61279f6fdc93405e24ddd3542b10e668b18bd54d150dce17594b1c9bbcb355fcf056e31a6704d02f732c4a888c476967b9dac1f2e283f2a6956576fa1ff9dda8109267f3ae6eae9eb70f3deb858330cf324907d8db843e62d756f72d01d7b6eec7cdd69ef69cf9c2a3e58f23340a05538195b7ca52bc37315f61657a7b616e7c37ae091b2dc642dce35adceb44c6c1f71470b8b6b5ca8bd42c66347d5d8a93adab7619b31a5d178f4dcecdfb43f63cb09dedf203b715003148343e884514e1626edda67af7c0a40f76fa4f679e2fe92283f8027b946e52018394cd6e98658de033c5956225effa5d1e08e0b58114fa3c3dd1eae4f7a8771123536a555704bada90d42167681df119952dea6c1d7d670e5264d0cd1cb551b20fc0ffbfb8b3f447662059239d35c6c190c73a96e06f85a9a801db5ae7b44b459117c88eb3bc9260f98675be5a7bfdc95a98b314cdf48eaf893d1384c1e4cd18b38d80809219b676acaa6bebcfff810e1afe6d6610043b57531800b0d4ae6e2e04f3b71384a1cdba3779140eb09fba1ef9754399e9177b97a54da4f639dfa321ad2b92005e77627e0ef5d2dc37646e0ba4a85fba1891ff55f0e1e36e96052ff903be390d69fe573cbc8e8301aad79b9364dfaa32a8e0d6492a09d535684dac87bc695ef602dac02ef3b033032c8406ab9d6e868c442110588bbca56223838a01d2d8a460256e4cf4cdc01b816892a61e8ee3151b502b3c16c085f40c17adb6ba8698239dfc203b2a1162e1ed7f31eaca218960c03426a7898f427a72ca3458a4bba022350c29b6780126fb7f63d08a6a2662fcd9263e8bbfac2a66ad17d85d1593061ca531e2f0efd728acf0180143f1f686e2ac917881670182f781f99d16da5936992a1965002bae363368b5a4dee25a4e7b445bee088694f86cf692a24650836f6f6293c7bf8c2a0d415364e77d5b31eb1617848f4794c815cdae6176c646619bd66091cf7fc722c77fd90a8fc7d3df93e26e186f51d9d27459d6bde109faf4c9592694165d0ef8332502fcab2a8fe29954a2bdc4d1d49fab66e8cdb7593312d1ece417d8cfbbcfa570bfbf3b12d7d0a0d4e857611eeae1c0c3d39769c3ef53cd6c5a2f328daaf46600ebcdbbbc2db5d600c2cde643be2213dd765cd1326d5feef8f826c188000000000000001801000006000000ac9c55a3490666f34aeb0bf228dbe1aebe91b854dde0191c94cd92ceca08f2f3437e723a2398f04354a8f6c9a669b453b1f6469b6086c0e8885ba595b6bf5fa7a194cc7a9a9e0fa82d89901a1c01ea70f922dc2f00ed4f020d09b6c6718f6ca0e837843c57217749c93e91023831ff30e9b16ca9303a050058000000000000000600000009000000ce01e764cd27d3e02377538879bdcbc696a66710e6298852e683097678ff026f3763433d10ae025b9c2a5ee2a0ccd7ba7499b21a1f42e0c972889e4d3cc2fddc728c05750000000048000000000000000e01000004000000169509ae3de7ae9edb7965c16dab32fd27cefeff143b057bb8b4c99c68397a43799614cd029c8d15366f56170afb637dd0dce57b0000000038000000000000000d01000003000000ebc6645051fc7b1296fb33b4666d7485cffa6f91d3ac087f1af7d9a189daa97c80c3000000000000a800000000000000110000000000010075fa9034d6dd12b67ac1070f4f2a02cd6fca0f641a48c4c9d8a4511711cf2908f4eaa76b11d2f6fc026e8cadfb2c73b6ce9ecea5ffa705dcb51e47114e71762fa9037b23f6b7cb5efd22b2a2077636b5fb3ac4bcde17def91a4d65f9d509138b2df8665b171a42da0155186dbe81bfdc15acbcc88372df9af60afc9cd90f9cef8e455ffbfdc2d18c1e4162b40bf59720e914138223000000"], 0x1218}, 0x800) socketpair(0x0, 0x800, 0x0, 0x0) r1 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r1, &(0x7f0000000140)={0x0, 0x0, &(0x7f0000000100)={&(0x7f0000000300)=ANY=[@ANYBLOB="4c0000001800010000000000000000001d010000150003000000000000000000d38db2d6643bc2650100000008000500000000001500500000000000519fc62b5324d5030000000000000000"], 0x4c}}, 0x0) perf_event_open(&(0x7f0000000300)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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, 0x5}}, 0x0, 0xbfffffffffffffff, 0xffffffffffffffff, 0x0) r2 = socket$kcm(0x10, 0x2, 0x0) sendmsg$kcm(r2, &(0x7f0000000600)={0x0, 0x55, &(0x7f0000000240)=[{&(0x7f00000005c0)="2e00000010008188040f80ec59acbc0413a1f84810000000e3bd6efb440e09000e000a000f00000002800000121f", 0x2e}], 0x1}, 0x0) write$cgroup_subtree(0xffffffffffffffff, &(0x7f0000000380)=ANY=[], 0x0) sendmsg$kcm(0xffffffffffffffff, &(0x7f0000000640)={&(0x7f0000000280)=@pppol2tpv3={0x18, 0x1, {0x0, r2, {0x2, 0x0, @local}}}, 0x80, 0x0, 0x0, &(0x7f0000000540)}, 0x0) perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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, 0x7fffffff}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f000000fec0)={&(0x7f0000001b40)={0x10, 0x0, 0x0, 0x8}, 0xc, &(0x7f0000001b80)={&(0x7f0000003e80)=@newtaction={0xc038, 0x30, 0x100, 0x70bd2b, 0x25dfdbfb, {}, [{0x3718, 0x1, [@m_ct={0x1034, 0x9, 0x0, 0x0, {{0x7}, {0xc, 0x2, 0x0, 0x1, [@TCA_CT_NAT_PORT_MIN={0x6, 0xd, 0x4e21}]}, {0x1004, 0x6, "76a1413babd5b499a3d2414753b2ca84c80091fb520b2c4708023ab9d8e3ae663ff8651a1c0b36d9d29b2216ea074e2f43f66ca0792ec0302f104cd2f47258dadc4e442c75bd00279b1c86d451ec7c0bae4c8bee591103af3cde324b9ef40daaab15ce4367dfcf49c908883db1bd333aaf1cd8169d94e4c3b6dd14a6a699ac040f509e53a033563b4f83bdc3ab2c6b5cf7eff100fa4167b024d6d29ded5f48d67602a6f0c32545ca11d571297ddd0a374423b49f441a65540298533024b113d297f75e0fcc2761d5daf89f32aba7531d3833459403595ec7c4ae1a400067dba977ef7a4e5831ac66885be3bbc6ba078d69c683ea9a543f244ca42c986ad0bd1804570801ce4dd36be5d228161d38959889045115379f542049ca219460e64d7421688563b037af222b718e5578716381a5ed4c68e0bb3127632217832101c8174c7d0e8dd1d7148198f33272ad086d91bf10072b267a49e4c7f9a9b121d943854be3b04a191b6503c8ff239d86330d1e523ac58249fa5cef8666958e284e5c0ca33321a4ff724fd008939fb362e4bf1501772d85a48655af3983847daea2752508251251746bd9189ab3482184fb1f3e3e04c7541dcc796fe504028b269d7f6c3747c267cc569f108c56ee6160067a2aed69dc78b360f6962ba5a5ee027946cfd6aab87525cba181b7d46c5a8217a105f04db427852eb878001a1d8d5574fa2c25b15e09ea6802107ec36171e7d0a8761e36dc814b8574f3bfec9faf4d194e54515480c24e4d4ba162290ef58a73af1935325700a65bd23003f993b65265b58b8543dca1373422dc1702118ea5954b0c8259af03ef43b03dbaf70d0e8ba1ede332004cb300da14edb70840fd64eb5e0c86dddf035646636e0502b9fc80359a4c17b854e28e7fd42f8aa97c8096777da0030fd39ad2c0a37fe055669426babe9c6345a3a342a4aef1cbbf57d66a2bae247294136b62781b15f7cdffe71691a6cb540d482f34ec1543776d41b3485ad82f88105e5ffcb01955eda1fc94fb0d0b897b8bbd7dac0a9b461ae968511b6dd53dbfc8aab3b78d7bc5588a715ab9cbee1808963e774dcbf9c94e72449b6b5fab3e50d950a32450bc05a8d2f48622faa23f6d7d46a8a8ad5a4eeb5e1e4b57a137868796e9841bac140f507d690f5c661c2609af80b03153c15b8ce6b45a7059f21e51092e77f676596f80449a7c5f62ad50638b5a7d51c2ae960fe20e2b46203977e88416835354fa5db8d89ca1e3b1607f750b408f3a06698edf9458316de3b63f3a6420349dc0a73851a22c9e815e8eca1e129da572e7413c7212c8139c934c7ead6b70c91e8c8975ea747078afaeb1f90723df2d87c87be3151b6a851a23b0f9051990912a90dc9ca90dfc6a02a5677c63a9b55ed24b8022e98d545f79bb220c00a910610301b9d5c99e6717f49093de63d11a1f1f90a51579a0acf655d90a2c1dcfeb5b44c73adecd50fd6b39ebcbe38613411cf9c360495c9734558d9d2590a84af6f9089f4486f4904c20c49e700d30400b0e4fbd2dcce4bdd7ec26fe6c0d74bed705dfeaccc176aa740ace6b8618cfb01218dff987d833e2b5824c07d9cc873f0ca603c5b56d82af925b4595758bcb694664d09ef65d86c7cd271492cb95b1cc0be7ea0d366c88734aaa96236f3c8316065869c09cbf3b6330d233cd6a1123ce168ce82324fc33802053b48a777e7ff91f71a3327a407d2b72d5640ebb37d6e7263574ea3781e6ce17eabbb570c7b159fb1e11fec06645268e92e180466a8c3744881e76cb61774f217a1a37578651a44c5305b1f284942075d242a2b40673773d7d973ba69de37888c287fba45e3a65ff1f48590ab24c0f0446c6111b54f4e5733dcd12194eea592c2f629826a11c66c7a203a4e55e705ce2678e99db30d6dbf4c39bca828557551791b8141674a3b33624d0d8b41a34bb45df697aa9d7f1205337699cff2faa2768d87def46464acde8b4535d14a1cba1fae9fc7c1bfc21b4ed6210e5ae46daf0d62a8e31b9d444327d3d3bab69c3523dcdbb048942c145b18dfccfc22f1d03d6e08f35e11ece9c7e4c674f97ba33de41ab6774ed016002957c72c69e9032181acc5686c48d30421776613bdd7916153f0085ce71f5aa2cd28e99dfb937120872c410f1704a647c29dcb76f60b23e734062be0e66b604f2c26d6ae08f27ddf905992581f39bbc2952a4c545131ebbb84dfea2e637f4a978caf729b024f6b3c0487a06ec2d8e7efea94346894e3502db3fb8a5ea85a4274b2dc7cba4bd79aefdd773d6f722783f01f0fb135341e0fc26034c6c6bc34134448f0f7aeb0bb7816b32267eca355e30ea323d4dfacae55bc7de7df575a380ef9140c6f15398e4083118c2be876d8a4c3d2dc33c203eb29303b2dcfd28fa3e2d931b375c27076ddf6dc7479c268ba1127158ca6df6569a62ffb9582d960eada50ea8244f2c05043ce3709df0fce979cdc949f94d11bcfb16f9e642e0e951593ffd4eff616e7249018960e996a83ead79c1332af75a7b7872753944f7de5c816e3292b5c5da935de5be9394174886e535fd1233119d5acfa4086cdbfe333c2a72a3508718af7d950589d038b95857ffa60374e90928708b3bda4edb5c8732981ab5423162bc54afac51fdbad2dd420cf6cb9780cd7c96420ecf72aab578ac28ebb63f6d934ef9dec374aec6d3670f227b9943ae57d4f6bd03917078ed90e58953165e6f0a5f1318d0b4f30ee08d9c449c5558e2ca9538f65464137f5058639e602832f15f07a3c409e91a4394123f6fe2e0c9400835db21a19ab3a6b117d0629332c58f3409f586458a6892d61cdd55f872f65c78ad41a6d0dedd5a9a6d18e69b82b6ac0932c003d506d010d012a2269e717a8c3a0cd7359c3f571bee20ebfff32a4f30f9ba89997c4956c879d9fc2a1eec7efa045c94c73c276afb08054ae6e7ca7a85fab02d8ce8bfd4c261c3c06d6d8a1ab1c3f62993ab448955072a4d022c78920ec8c25f8294ad9e5eccccd197144391f9a1c36e9222edb4bbc8399347ffb93902605ca3743b1469972ba91468523d5b04b3a66db497117351ac0b5cb99a46916c5e7ccaa97d4c0b77651a1e6487fd59a4f8599516f4106c98f96632c38fc91d2386870fe7f42cd8ea7772d0a29f50234544a0e89fea0d3587ae575373b371ef432c14ec5d8dd4c13171e676004dc66f128affef504d24075d08799dcde63839e7b0109149d7e8a09ce108f76424c845f3cc47e4530688e3ce39cb50d0b9baa8d7b3417ab7a36386f3427ac1fd714bf5bd265054ec9936a1835f8887a238c610ce260960d1aaadc45bf7f27e17af31c3c796b6ab4486ce01b5abb31cff6abc897b1f353f2b1d0c2e20fe45d8c6c35fa38a68443ad1f8cdf1963c294e3fc9a7f856d434205451b681cb044f1ec84511ec4ba0ba2c487da7ef67cb68d3860ca2c574b4303c733e67492caa030b02bd0f2f9a94ce070583cb2768fe97b23819ca2fbc604d084168f1ca3f763b72288f274aeaa01dca1db767d68e62239bbb59dfbeb6943d7fac1499d408eebe79cf0df61f471722d1efeffd4daec25770c916ac367a729e17c0054032e7eba4be39233f1b047de807e6aeeb68f0f444a6578c56baa4fb6f0cee3c21cb77e0793a33b083fbb10c8f631c51560a370a12dc552f36db2ac61bd69a7601c878a03ddd7f152f23887c68b031af88075fc80fd8199966ddcdfa57ba814b57dfd2c84edabb70e548c488f76bdb6a75271d40e945cbf1138f9d44f2ddb61a4e966b6f39536c2c48a1fdb268fc5c7bbbb18ad04e360692bf96e6fbcd471508526a512b8cd541102753886addc4e8b8c8bd5157f805377b4f1df75cf3509bb3222af434d02ec77babc4d080cfdf2b2f1cad9378098272e1c92aab474492053220fe0237768cedf9b4e4715d02f217bd87eb80134b7714169e627ec3e2cc4f3bfb74b2c9e0bbf8c770502fd307b40cd071d92b4d1d684e034062a28c8cd0fb1287d5df63c5e746a8b09cfe45e30ff7fc71a87acf34ededa4a0c627c5f8ecf1f013887b1e81132a1b9e486529b56c23be7e5fd1f13d0bc3b84e17d3990eb188195024e867c074fce2df5aaa15dfabc0092e25199e181e947519bcfb0602ae0f3ff068699702e6b616e7d0b5ed98de76ecbcd1f6f3f7db8c323d17c8071339a6094017a97c4e66e53756872d9da712cde30a071504488b40fd9aa273beaa09e1f4e6e8bb972fbec9961ed9853b96c54869a5b9661e8210f86f74019805a02330e1b0e8b1e297d2c783ce15ca66748d0fad2188ca6a0bfc9990be2998a19a76307f07b396841e4e35234538f64ccbe8501b6363734a7b19d4c2f62db17cdb491cfe9ab15067c046f8764d2b03c056aa8762e9153803ff8140256666313cc5902390d07a97394903fae3c4e8de4a97e8dcee3ec14bd38e4a29d65119ba0341757164f0664a76b0762e02d35294bca0f460738241192d0e1800539c83551a21cde8e2d5a60592d84ccf1770cbc98b691f00664928737c745816ecf21197d1c3325577b5357134d076f0bc56c69330b744e92e119fe0b85567004c1523828557285d25c3ddcf63de03fc25455e2a6a2a8673561c0329a5dcfab0dd26bc1d77194de096ff1028a072ef3c411072b40001fd9fec933bb8ff189d65871ab51198ad8996611872b356404c0dc0e447937666822ef83c580a8e8a56c985413d95ea9d679b72455897437843957f86c7ad805b067839ab2e2a5aea3328c2a1f87348525cdca861eb4cae90ed7af509d8c4332edc4daa7c518ee2b15e1a994642abc016e623d763f08a2c8e86129a2780ecc2b84d45e33e1cb468defe796f6576df218d9c07e74961a5df1454c0b1ef9ac8392918ca598a50763a80c6f070de9891c1785a0f13efc546f48f9e73b535573a4c3de7f1d4d78626af3f942e3fd3295fa1e23f5e3953f907a02d5249dfa6bf38613018328b4add7be882727916e241642d1939c564bf869a2b8b931098aedba9b6568f3a9d68f604207bff217959d97ac83aa807e0033db70765fed4bb0f4853b8aa7b6da0692d77fbe28049a86358053e7f477614e1f7f0394c54ede85ec7792bb0e6d0412bac771a5371b30a811fcc4ea48ce829215c11c12cb2b7f6d86b5fe7d66109fd302c5658ab2a7e391ea2795eaa5f5b555d12d5ad30e6825fd23d8f76a96702873ad63a0645634908c8d8fdc70bd54be0948e8474aed775c79b693635cb14fff0fd8165a460547a271720d68dc94ca99bd42289bf3e7ba9b558bde328a954494dd43a98d53fb975c5cef05b7bc2af4be13a21fcd7266e97019268e5009643b3e07b6c2715b82da5e562fbda592f18fa0732506f5334518aeae1acccce4c19a00f8c33020f83a27f02a945ad6de9ab07efd2da2ad5966cbb773fec09310d24d71880e3f60d6f654be9df91cdaae108a1307d389156fedfa68f068ec22fc4f39e92180a9dcc33fd3113a47c3f9279907cd051544ce9098fb3c37c3620ce4b44787c64da5c2a5e923ad1ace9040d706cc32170e38296a4b8eb6280b219dfe0d85897ae68a06003fa6bc39c67272cdd44da47e0d219b34adbe3d0d0755958ce840ef70ebfe86fa7d69a16c00eb28891a7bc61db4a30f692db4984ffdc54056a17f625ec62053a1e5814eff7037ef90fcd2bad3e5f67275b51549d46bab213c908928afeee89dbd6a0ddfd787189729c9d2bfd42204b3b6a79df94802b350371f9728558a88bf01925c16882736e44295c2c8fd5d32791adf757b5"}, {0xc}, {0xc, 0x8, {0x0, 0x3}}}}, @m_tunnel_key={0x1a4, 0x13, 0x0, 0x0, {{0xf}, {0x8c, 0x2, 0x0, 0x1, [@TCA_TUNNEL_KEY_ENC_IPV6_DST={0x14, 0x6, @remote}, @TCA_TUNNEL_KEY_PARMS={0x1c, 0x2, {{0x3ff, 0x5, 0x6, 0x8, 0x100}, 0x1}}, @TCA_TUNNEL_KEY_ENC_IPV4_DST={0x8, 0x4, @local}, @TCA_TUNNEL_KEY_ENC_IPV4_SRC={0x8, 0x3, @rand_addr=0x64010101}, @TCA_TUNNEL_KEY_NO_CSUM={0x5, 0xa, 0x1}, @TCA_TUNNEL_KEY_NO_CSUM={0x5}, @TCA_TUNNEL_KEY_ENC_IPV6_SRC={0x14, 0x5, @initdev={0xfe, 0x88, '\x00', 0x0, 0x0}}, @TCA_TUNNEL_KEY_ENC_KEY_ID={0x8, 0x7, 0x9}, @TCA_TUNNEL_KEY_PARMS={0x1c, 0x2, {{0x2, 0x8, 0x8, 0x2, 0x7f}, 0x1}}]}, {0xeb, 0x6, "2c877a2761115566837866ad8ba55a1c764382bee815e82718836338b34b677867aea655879b8e287fa8c4ac90e4a0f7b557b9fe4f1b9546a8e168c96bc3da1925659b189873aa01ca6da8674a23bd25a5b65f549aa1bcba0072d1afd701c63df7879f252f254dd997399d3c51049fa7ed84712216be1bc63c7d4c56645362d7359c3a08f50999e3911bc2bacae0473f269cbc1d4129a301bff02b0b34a3a349f9a7280c7f4e6aa560af295127741c2ddae7aa83b7290e8a65e13ede43bd7d67dc7db5b48cc6ea05442c6bd5ebe6048747c9a80c688f7ed75a4140f6fcd7c1629b0f6b0e425e32"}, {0xc, 0x7, {0x1, 0x1}}, {0xc, 0x8, {0x4}}}}, @m_vlan={0xd0, 0x12, 0x0, 0x0, {{0x9}, {0x58, 0x2, 0x0, 0x1, [@TCA_VLAN_PUSH_VLAN_ID={0x6, 0x3, 0x45c}, @TCA_VLAN_PUSH_VLAN_PRIORITY={0x5, 0x6, 0x5}, @TCA_VLAN_PUSH_VLAN_PRIORITY={0x5, 0x6, 0x4}, @TCA_VLAN_PUSH_VLAN_PROTOCOL={0x6, 0x4, 0x88a8}, @TCA_VLAN_PARMS={0x1c, 0x2, {{0x2, 0xfffffff8, 0x10000000, 0x0, 0xf4}, 0x3}}, @TCA_VLAN_PUSH_VLAN_PROTOCOL={0x6, 0x4, 0x8100}, @TCA_VLAN_PUSH_VLAN_PRIORITY={0x5, 0x6, 0x5}, @TCA_VLAN_PUSH_VLAN_PRIORITY={0x5, 0x6, 0x7}]}, {0x4e, 0x6, "a3e0646521996eb6b9ac70b12295a223b88711f8c10819fa495a95d0e03344e888939a78de787c2de4d2890a6c65c645cde56d974b151c8386f4075639474dd398591f3fe32502b87b55"}, {0xc}, {0xc, 0x8, {0x3, 0x2}}}}, @m_police={0x98, 0x12, 0x0, 0x0, {{0xb}, {0x1c, 0x2, 0x0, 0x1, [[@TCA_POLICE_PEAKRATE64={0xc, 0x9, 0x4}, @TCA_POLICE_RATE64={0xc, 0x8, 0x1400000000000}]]}, {0x52, 0x6, "8d260a51ae6ed364c755ce8207f02860176715146adcbfe4477ca222d3a231899c158bbf679d4190190e07c1e9829b7943b8e33d27d867e05998cac1bd3b2ba361c7de20a913ba37476216b33d45"}, {0xc, 0x7, {0x1, 0x1}}, {0xc, 0x8, {0x2, 0x2}}}}, @m_ctinfo={0x88, 0xc, 0x0, 0x0, {{0xb}, {0x34, 0x2, 0x0, 0x1, [@TCA_CTINFO_ACT={0x18, 0x3, {0x9, 0x80, 0x2, 0x1, 0x2}}, @TCA_CTINFO_ACT={0x18, 0x3, {0xfffff000, 0x2, 0x6, 0x8, 0x24b3}}]}, {0x2c, 0x6, "d8c6b61e7a3520ab62bfec8f9398a1f36398343659db3ecdc54fdd0582a6ea30cc0d3a9b593e9ae7"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x1, 0x2}}}}, @m_ife={0x1070, 0x10, 0x0, 0x0, {{0x8}, {0x48, 0x2, 0x0, 0x1, [@TCA_IFE_SMAC={0xa}, @TCA_IFE_PARMS={0x1c, 0x1, {{0x8, 0x1, 0xffffffffdffffff7, 0x8}}}, @TCA_IFE_PARMS={0x1c, 0x1, {{0x38ab, 0x9, 0x0, 0x9, 0x10000}, 0x1}}]}, {0x1004, 0x6, "d3c6d4bbf552d61517de56f6fa57d3b0371d3f327999715eb259dd295c85aa92a13ef7f784947263da965572279322ab6a50dd702492da7348e795d5ccacc6c2711de455b1f22ad3d65327c9e775d2990c857027811a0836587f179d5c20cb710671c1477d70cbebe6424104e3a517a59062fb7c937d91efab1e000a3765991c1ec8a9483b1f6de249064cf5674e17901838f56e10c6e344e5f1e5002fd005f0fe486c5f81b770f1503384fb721918ddaf2cc9cbf76c99f73f0d0cce2909df15c579bb25322083d557b216e5ce19a029259aa99eb7b30d45911324084e66aaf39ca1763558b71a3dcf272079989861d2f7283d64ff8a4bde26d5638305a2d466ba49d2ab55a3594581ae0f39263021466176f85e580bdd967cb41fe60f085f959abab9b976317dae868bc1be82f4506b4fdd699a594b73920ced518cb98aaad5e9afa521ae3055dc66ff15fbc22282489ac2a0878d6f822fc02d7a75407396a998bd555c7c58abe160afbff8e743dc444916942423dc91c27f558a7c5d66b23a5845de04085f76c385423c2bd6be135cdde480b8fe06409070f31b9f3f1d3d13bdcb4a4708e0a33c9f9d0362ea3d715418d70f237dfcec909db2f3718a05b1b9d112c4fe015147d7c4055dead4abafca469286f5c08c5f1dbc85d49716f29a8d097727e98cf342c5e344705cb31f250f3bf869b24f7dedccfbd7c3bf32ab87f6277df1daf4cea8530796a5d2f83807e546f44d05bcb7e916b61b042ba49b12b916f22efbf7bd67fd6056e77bb682323c14e258110cddfd917811b877f38fe58667654fcddbe7c3da222c2b9e939d3d038033ece165df47272bbbdec97ae7af560e6e7e96da6485990d162475cc1424cdc7d7f0cef6eeb75d3b3ed81b7d92d57e83400e18b9953f6b58d4c7b1107f111d8a35b50397e3d2beab1b1708d79d818479c13931ab29da16e497bc021512b749982df2cb621016fcbcb63a5f83b5af78c5da1e8c9448e7d2d2deb6d616a2ab421ccd8f577c9240f2f5c510954f6dc8ce93efdac1152e6ea924097a3ce52e83b2c6fee537af6f3827b7c845a02cb9102458a858eb69bf6f3dff7fd236d84a883722f148e9468dc5e7611465cfdbd84dcd5e011980263f8c40c9cc00d34445c43853c090e6ae0502f911855e35e16176cede8a17b0c9271acdb9988a510f5562ddafa5ca4e5827c5eaaf85b030406803f74d52de4185bf24c8d53bf505f99c2e10cc07cdd6a1b8fa014e2dfc337d2ca9be87809166ff739d3de8fcfd5a10cefd245cecdb67642d284c59a961813cba55fbcc2f576433edbf39bec016da2a5ae51c471a48c7a02e589a445f0cfd76acbc4f07ee8a6e240df276ab7bae22a260faf88e5aff4268250b66285c5b133cc9dc0388fad197b6f255c63531f0e65462c9a6b313a8d9c855bfde9c3fa9ba5a2341407d1045ee1752acd7c4bb2b30dd9d0e29fb67ccd5e755500ceff2f05d3c8a035a4ae7f0493b8e648aedbefe397b8ba2945fe5f7da0c865c49c69d6317c5ded3ceaf7ba91cdaf1cbe53e81e112550770b2c6483d672db6f315a47c58bcfc974c8a5ba180be1c007acd805558a868474e4aec9a589af96ed6dae4da6699a00c554403fb02c59309b55b5835a8b3b6af68bda0df929e43fd04154ea173f1eaf654658aabbab74e27074b788447f41e79bdd52eb911bc437b14ebf59d8991c2dab1f48bc5b0222b26c765b168d4d9119b798327f7bc805ddb6a2db583972cb578df7d399c72b9d8a791643bef0e6b934de666393efd697a89b100e14c3ac883d5e74367ed445402a26ca3755942bfcc116dda6d6fdba7fe2d4e688dff1bafe68d16d3031af3601ece2823eba6c90600e7cd1f27d93f6cdc7b815a50fd534ea6445a358439a70c097a2f815340da4846489199cc95b2598c121883ae83210dcb652cc85b1e33a6279df3f39477b2300785ce6f7ca38ac64ce2e8dbe1e5253381b614ad4b061a7fda85af9fa7e5adabdf6544a90593e1b1ca9503c6e1b76b8a142d7d4748b8905bc55ecabdaed9f283464dd4040b55f912de1412b7d028b5885c22710a280dfb967c6843ea26eaa2832df0eb7dfb589c52da26271693ae9c5205bb590104b95dbcf3fa195229b2dea8fab29c3b6a1404d6e601f3eb0d9c714a25e848b39690a231563ac26fc1f827652369f22e5db0b4e5825a3db0028256b96b896174c8f7deffb5f0a4fae43c22bd0fe086a52e035c5b862a35508046ba05d0dcea551af871f55e3241b68c41e4a8b170ea0d492d137061c859ccc1fcfb346c87880ea91283caab38e9dd3ed9b4ffabd98e273027f41afc77a9e3e685d4eebb0bdf19566cedc654b06dd69ae01fa0bf244a739242e1270537cf753d0afd728ab233f424aeafbba2967a4147c2cac09285df448f851fbe12b9746f3a0696ee1b93d82fa58b14151359e1930c28d11ed0aa6c5ea581a8f404524228c48d8443908234ee78fe1d2f5b8f81804b3b6253016e79fae19757a1b9f70f68f49ca3c99f4f1826e624cb52feed4c6c7055908fc4e3be776da74de6ac6a25b70d4b89e93fd45d7df30ed3e00b4ac0ee18d75b6854e50c896b84783bdb1f1e597d7b69d736ee5ebf41a0bc3403178e70408eb24e53b74323931861eb7e10332303c609687e98b352fb8d811612cd6bcf2503bbc846d962f67e85ba82f8faa177dd59889a8dc2ad9241238813e9249b948aaf8cd4d6882b06f295d9ca41d50bbdd3ee2ec6e51a5acfad3a4feaa234b822b6175343bb1b4b008ad6073ccdbb1929c569d09625be4e3b63c22c475b06ac08e6ed379d74e90254d3305260f8fb34c378315c52d4e457b864c000827ab4f2e90d713863a9d52b39815aafe8c55e566238b7c677807fb5c1b371f21cff84b5bd41e620ea167354247cdf37a96610a51d9425deedb236eee685693dc94ef0554ca1afcfb6d92b5159d58f60ae073360539db5296123aee61142c9416b35f572470b5c24648ad22ac9d34577a335f7029c0db1d9d8379c6bd9b33649b826417ff41b2a2b2dd170c61103b0720470507e6e517cbc2751a84d2aee5d856f739cf485b3ff17987b1367dc959e7f0e3d1f751bdb44b45cb1c0de45ff638b38fc838b97feb896e036d028a3fcc1aab0b2fb01791eb14cbfcb432af5120ea1b374b799580279687c70b4e67e6257dd28bf04ea938ebadcf2a9530359c1c1f6a61165d1cea398d21c761f58eafa45e705b9492930f40be4c215ddc950e83115527e40a09d25027759fc60c34547d33005d674f3efc4d8d43b7deea2f9af90f54a0348a3b1466543ae971f9493672d5d421c911819d926f35f380e19ca57f3bfbc3e88b4ac8fff082ad09ca8c8a8996bfb63455d66e4af25c3b4a2f910ed9f987591816372f29d419ebbf513d880001cf6224bf88c3fa4146b012fedba1fd6907e4e313f9645ade5100c5e31b9af6699608f91f672011dd74d87d9d3a87c52d28226cb90b5a98e930814f4e3715e614f0a482fa68e5d08201478ea2223307dd7bd7e1eca267cda7992992d3aa97bcc9099ae162e76b28b13f53e1d4728a2eb6bc74c5a9974421a8fb27bd45af5ee9a8b377c1c23a5bcd25eb736d0ee0624492f8a3a726bdf48484e9fde61dd5427f06de30e98696507f6989d174b9b2708731a8b0b827cd9dcfb7649257f43762a01f0ee45370b1ce3a2b81893efd7f95467b0d8f60f7b268b12899d3564489b2406db841a94ebec63567688aa855e5b3a9bb66b7f18029f4c05993b3608c675f02449ff86369ef898d08af4d5aadb9941beca6ae678989a3c0f5aee965388c24a808497b1af85dc4c6e0e08bef26f7383f0d2ce5501d902ce26816120b1a3a7eef3f5087929689d678366caa47fce97a7a719754bc823c1b98935f2843ffc26d3a382480dfc8c1ca33901ca3be7582906003c0436a29ce276ca238e09a6f9dcc622faa9e6c17575b9f7764172591a59597ad287bb08b3215d53b295875e74ebc7cffae1863beb8a90940819e30857f062c8a3e29ba7f16bdf6f730852fecafe7ee59bd98ff5160b94b8ed1f9d28d8043720a801531706aeb4b5be2f38ebdad23e3c6d6a221f3f6f316fd59f7afeb530cc3a595ac5ba3210efdbaf72e96ecba52e6aa08cdf7207c7772140162ad9027605e56e4c4729e7e45ddc7e22136a3d43c79f00e7fbff9272c0306e93fcaf1ddfb5093cc220655c15db5499dea567bb180deeec3513b368bdb1f3e9350419c191468769868add9c5a3ba92222bfb8574f98c49d3cc144546366cef4362172f91cfc6421d1794d93d2c9884a0d286ca007909f61cb952c159eff4d18aa68dc4f762f99a4217576771f034cff8b3656ca78baa8851bb76196112a7e672b7faa81a4699e8c78ff506268650a27a1461eb1d2bdf36151f9ca1ea4f7f265b22699266de9eaade734296a5825246b68f3f71dc79fc358241e76bcc381136df50027f1ff1c6ec6a8dd8dff87b8800eb3015853dc203a1e67f32e2039078778c7be8495d31849f5ac0f5c4ce4c2ee6b65966e4f2c77f6d3b4845246cb8716f41112ea6391ab7878f7f676251d854acda3f8454a42e5918e57570b52c06b51dd436403c3f6b4c3596b4e1652b5c24a2f203eca8fb1b68f86efbc29d5342ac69df7cc9b51990d622e84b459de9172c0bc8b8aaa35439c81fbd381ff29df40d891090098e023f8626eb7cd6e2ee3c481ae395c0b833d6a24a21e4add14dfa26916a30a04ed721fd31ed0e3db23509b5f71ec6a7cd05448ebe69a748c6d06a267d462899f47b8d3f9f797f495ac946e1a816f582075ed8fe49393a9a99e23509c65ddc20d517742724a132cd2981a1633a8f4537412b9ce164f4ce4c918901cc199f2bc5848b5a4c41cb90ee49affa87a90cac5898214b8b32385a22567e09db00d088e6e73874c1ff827cb8a01fa8146452cfdecbda1cd19e29a1735e6578c5ae948a2ad75177c3eeb5312891c419b1bc4c6b230a8f260554f38de56decad703615afa4041949724dbce19a40e3311a9e8b0610ade18380e492a8346cc9fc2e154b93ba789ea4dd9441c38dd140434dab73671bcb1ed12e498826a352cdfd6aeb6b2521d9dc9c5d3ab2cfbe7374f88c58cd65c61548536bd0fdf15383e891e8f96935e6498cdb869bc60e7075e368fed75fdcf29a6d75835c48cc30933ace287c5ea4ba797a5873405080a21c8a1704f279b348c860b1fc78d0275c3e3c2997e5f279fd4187b575b8f4f9d47327e9a4363e0106e2b06a8061615842d8891f20e2cb763ecf66cfe659b57ae0d7e8c05081901ffac36124aa544169e874e830dee3b4553efecd90f94c1bf2816bd9fd79b0eeaa1f58996519ba6de8232c224c914e2834b4703c13b56025e952b3aa0b84268f7c8496cb88b6bd95f215f6f954905bbfb9bc49c8990b10640a1a96351e990854cfe86e96f7cdb309b288a9e7f56121e1c3a34b265b06b50e699bcebef2a06cff57de2cf53594cc36755d01c621525bc5871adfb62e86542c439f4c9b14adb1b203d93a7344fb43c3d5f10e79f0e20f67695af4d9f3ac6ec91fbf2edf82d90c022f6cfe501c929524fe51e006b0b87f331a021ffa6df3d9870dd98137f220a6bc9a46f2961673ef504dc0a4dd4e56ea6ec7f5726ffff9f9d0bab30c1f7ac747d85d8d9da855091f945014c31ce286ae6db0f5023788595b870e837a265b6b6e38fb965a8baf05fe0a68940a7d960708dca43eaab2e5b6e54b4c31c326b9f59dfa80cce5bbc755fdca484fc0cd851c64bf7663bd0b9"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0xf39bf358c7f6037f, 0x3}}}}, @m_gact={0x1030, 0x14, 0x0, 0x0, {{0x9}, {0x4}, {0x1004, 0x6, "13ba00a42f3d7787c2f38b60c935be776778341adc0c64042d0bfed61e634fc63471328fc50a05938c929e9456c8c77ef50d93d0751b74151b79c6576732479c6084d34856c728d2c4a7e44313409399aad575554e361c6d8931975d4f93f4a73663ef1dada81b21320eb99dc92d3c3de2ca239fdc0c3a40ddc15a6c7516262f7e34c32c6115dfdda37f725ec92c6f7e61b955990467c9eea11d50051a68955c424012972d33ccfa3be416de8264d2e1ff157faf7deebbbe411dc3519e386ff054347284d9e14cae2579cb114395023a592211b68ab1028811e16bc84aa39d4e1b5e1d99312c38a667df18d485a8d43276fe643373343327d78cb9bd7a1d840bef015446b175e769954f7d9e24174fa4626abc5f395a77183f055c832913a17702d251943b3b7cfa4d32c7f972e3ffd957e57772316e6e577d1c17eb92dcb136fad13e2ff900baf36c2e97e2929ce5ac4dccd4bae213b218fcca76d9c1f50fe6f2f798ddab1f527f82aeedf0cefd8e56909ba5b357a272cc6b0d2ad9db5dd5718c970761ffecf3da4ffeb8d1022563c56a442055285402d80a343f9454991271488b0ca57e226735f9281181a53c673b3c80d88374c6474b1c464fdf82f18d33483e0a838b883c8fa4b0c4b0d1f55f6eeff4d27d300aa3445a99f751e91d6f888beb1b56b7d7e3d1b17bc746d79bc616d3b0168d8269cf9e5d1dc2a78deb508f22d6de0bbcb4db0d88481a840164c9b2675d56090acda85208ef2e26aaf2730b1ac14661e336675069065053e964e45a508565f67e5f956dd6dc6480e1cb4a697ccb3095e8b96e5f0250f53fe5077918e5630080543eccf48e8707682e75c3f9664d7004f7599a750b882b3f0f806c775e271174e90f237f8a80850c531ec3c2c7c22b6bbe5d36ff5f0aa280a2a2dcca7f20687c7d73020f541655200449c1c3493d8d771c5026c67fef7852d4e732bd46bde05bdc9b90f066918660159ae49e9f2b9e862c8fe87a5ad6e3190dbe2e70fe6cdde78fc6c91951ff1c3ac6f725dda3b32033930fe747c3cdf7c17e589cd142e1841fbd81c584ee0181e2af6df80956e64744c14f630a8273fb440b60cd50a4a1855cf977721d2b4c99b8bc70541de6d9e22feb567ccdccd40072bbad2dcc2d2b78d013e6be7831d5ce9bf686b2ffb96d1f9723b705fd4ceeb0ea28b6fdc067e1fea3ca1ce146ebbc0e6f5d6a12691939a9b2f63ca861440c252b7f7d1a266323adaa5f6f72da7b670b5453b1f86f49afbc4db0660971b2527af7ef52f81ba73f345cda2cb4b31b76f5355c54d9d79cbd4f617d38676e3decf8e8bce9f50f8f1ef86f8bcf682391f6c93948e4cd25b4df9a8c7b2f1a139f5481555da4f0743945def6289f5c548884b0bf76e330bb0705ceddd483a019170ad01e5f2abd8f22c409488795e7f27c02614b5a90c9e45c4e86034225b7bfad0083271f16a9348a2e69bb0b099a8050d1537e369993158eaf2510e5350717cdeffc6aae1cdf4411b85712398f9bd666c325e98f2b35b8b7498230a8f6b770f4f91ba537bc9c86afcffba100f255621b0f963dd578451f9646ecbb57a5296a8e06410fd3261c79c66f43b4809e8eb0507232d01ef28934e8a98491e0c6bfdce0cbbaf4b9370c49f4afa53bac45d3e04d17d25bc239bb74e6d8d41d16488bb70410b6db3cd66cbe3a9d3ea49f492cf6f54454265d7fe35c5c0022efc9254473abbc36d8bab55b2b4dc654849b9eafa5942561d5742166b83665b19c535e9ebc5e2a05526152adafdb6f824c50d693f52f6d2ad46820ee06cdb03b2699ae5c67e2f45536328d4d10a23daa629fd3161e50336098c103b5495f28b5964bf383f55634ea603c650992826c96b5d7ae4f5916ea29c362d3f982f732ecea2221d65ea35e84a3422bfd779a3c693fb16e7aa67275dcca132fc5f26cf614bdf163fdd8d51753a29ea2c8e9c01ca3e633cac354b727bffe8027430353a99f2e0bfc6b5a8550e4ee7d4cbfb65f607a98779f3ff1b1ae67b07b6c36c5b61447c9f3b24320cffd01fa12bffa2356e57b9f39f88e7774127f13454f3f85f8e34f34e048aa70021b70d4a478a646800aab825f3b00bfdab7108989b224a5da0a1404eaa50f61f80e1c51276c3c0ef76bc18bc90712b933545f61a63a294a6d2ad00084b845d0e12755e6be5e307d25c520c6f501d1ed5dab2e9e1a00b202ef3dc92592bae6b673d288be3cb278ee8e3e1edd35a8480c7a06f461436d20109851496b3978c76663e70888ed1f631c46017a74800a13526105a9de340c105ac6203fab65692d28a6f59dfbe1bc634f21d6b220c68be44da928958a3b31b85799e62d881c3be19044b3926e1a5f6c55bcaabbd8bda6d3d11eab3a7419b3057700e291238e2e1033eacc549e6c17f2e595b2b647bb49145e30653bd67357df916943a1d34562621d7eb522533962c806f53b98cfd26ff9fbe335eb8fc72eac8ef0059b8c481e18e18b95acc9c095fb19558045c04abe855d78ca6adf8ae3e122e6cc88d8d455bf16cae9309c3812f963e7abcf7049b1ae3a15354eb366a2ba8c7e48b5e9ec3a757ca99483e853762b00c843c265c441607bdbd4a8fcdfa36baf533fdb723cd364a6367f5855b3f11cfb801b9d9a41cc6df6d48dbc71a9db2531cc82271322dc71f547b63bdc6b821db3977183df7f7c877e5b078e5fff9605c378d76cfd134a813a829489d2ef45c33bc3309b04376b94f87a6d77f44113e26387a995def994047630a24f7d9f172a9fb36921429109d582a9c79767cd320a5fdca96fa7abb821ea768307d9793c419fad0d29d49d08b719453db3a27b7d661caf946aa3cb3dc97e4bc82369dc86e40cef6b9d122c8710c990f2452736f65bb22d9c4938738ddf545a79c57c9f85073708626bc2d063cc33294afd75eb7798f14736dfb0b8f322b156860af32b0de93b962aca1425edfa5034ba1d0d9a771b060adc48ad0bd4a35889f825d0691cb2631b15cba5794f8d97fb96e1ff90dd3b8926511b2253869c4e1e29747bcfd9594bf6ec491c15f3c9cfa0755456dc1e840cf1619615996632fa51e4c6cb117885940296b5a1a65b56fb4176f5cc3f0f555c8c0d9bd47cfed2f8e083f66413a52f2965021d15e80ce7657cd981838ab071f1bff31587abbe317c7746c2782431812c358ec935329006cb120b0e430b3293da86da9546107f98fbcdd7abcd02e7d322c66b6c28499e0fe82a863c3d1ce1fee5ee808e2c413cbafb96e491b23f28dcf064e3e4058287ec0fba965039d47e16707aa935b02532804be84b9d37d8b47e8d2de006b11fb2ef06e64216d121d79bd94031b612333ece86e5e084dda396907086509d926c90311b22f4d8b0b34a3e9830a4ed9ffa386557812b32191189412234f5c164d302c1b2846cdcdb1d8a66d893acd635578a707263245da8cc071f4d50b3c75a57f9e10ecff9e1a56e7d27d8d4de08f1750a028d7a9acca9be5c0bd67729a8dda1e9f5a6859cf4a03f39d6fcab8c153ff15a022e1cb8b6ed06a763096243d29403333d8d8305a6c20f29f5fa03a28cdd80b4ca885f9cdefd88cf6d570b22deccb2a577126944ccede1e44b5acb5c4966bd4e153f8b7904dc544780b24e10c31f3616be64c22d4c5ee54987b899d38a8fbea3716293c16fca75151ec37ea47dd2b8dc4cc5899cee18b43ed02d219783d2efe9303bce0aabf25706e48a45de44e39a43075e792b07bad4fe48bd0cd08910204be58c95e8717735ba8247fa9b66bd02c76b8ea17ea11e91a97b895914a67a58f6b317398e6007e806c5fd025ec0fc2352dba42d8132f81fe70e2a299861d22efa516b07f4c94ac220e043ee9f84824002a2fe235b995d87f9e53127924bfb643e3714d0fa17c47a9985cde9f4a92b33ba2aa3a3710e920c8ab4556af8596cfa362e8e7149d1b73a94bef891b8433239d6af0cff55681d0dde2bf964a7f75bcb849d58965fa9e093110db05ce8713273a4b492190cfd8f8dc63840a563986ede689236ab85a670906775bd476309bd1fc46e846ea1057afc08f0a49e13ea8d5251d8199c3469f000886097998ec0cd70fed15bc10b47c7d355ebd20ad40a851f553f9e430ade46e2b1eeaca1f0d50b980c5b9f22e62145f54b2bfdf02f4c8bf0821254da3fb57ad20f37a8695fc5c52c47fc9a594f5f81df84e0062fb971f43af1d8c085b15ed68eb058947bc72bcd626016745fdfa47d9501b910e7db3e7ebba659232a5675abe7c81c1a27e9f61ffd25f0bc81add5354ee0711979bf2a00b6a42d8dc80119db9a2cd705083253b065db45fd8852ef3f35626d92d69aa9b93c3c6329a7cbfe267a18b4a2220c849844c02b23f48a00e91a6a0db93c7228628c75d2d04acffa0337f0cf9a8378f89ba21cf5163c5147b69a8561785fd3418971ea4dcd214d9f8d496a60fbc67ce09d32ca64415e69224ad54be22cf3e3f57d1b863e5cd5c6e89c0f530839e3cdf4419cdeb901cb8f68c3906a6988802b8093af0a6fee6191b0975a140fa9a16d0205683c479cf0c9586ab8a33d5940ec31b5ae5d82cba40541b787c40e26e4749c0b38425051ec8c6b33d4d76d656505d74b1847ecac5dd156da381748b4ac4d9941462735fba2cb7506556252752ecd634f15b13d294ae1b5be3c14de74773abc4d5291485a0efafa39c3a956019e690482abb7474cf1519db16015a55c325a1ceabbdf3a8785402886205f4adb346e08e8d67cd4fc1d0c4f7a829f37f6ade59e5c1db61976415962078eec463a93dde5f2d2d0aa67600d09824b597ef230a3057a6020f74c23896bac6b7463c4a2bdd8ac22d022faa10749b65ce3fc3f1564156821cf195769d25575624794ae9d7b3cd2a92f1465867200f92a0527b0ec8ae9a0581d8fde90660cada04bb8adbd8cfb55564156e4d05aba58f2193bd6e800baa2b47fb844d6ebcd150d729719faeff9bc6177e0935bcad34ee4c3830e553b106f5873e70e927f174c25631438e4f9d98ac3597c103b574548158c0abbd5f4929097114b9679a96295421d1b0e2de82ef73f2a52ce0b6dd188e91b3dd2c8c93667e2c22ca72b96ce32b219258d3871d9d890150364defaec0f4f3d7a71c42b8d060ec63855a9f3429d5bf3b8b1b6d8e654004b44e1785b35fd3366f14e6ce68d4bce17cd32ba4f4c3ee4b8eb548cda5c42b6c44a9e1821b0e5c51f1786d127551c6d4ef31785a1f06420699c38b23ec7a2def4a0642764d68d6632e217269517dfee9e4650b6cd299b7f8b7d86842d145a8ba5ebb02b30f3561700467f2a9e292e1fba82b44ef3a58fa4d5462ebadd7dd529f2dc8d0bbf88dc6915ac7ae7ee31969a1a78ac22c48d63b84e4c043ad6cfc079c86248a043167160340db6a5e6fe42c70bf56cd993c2feeb53e64ba806a941ed19dcf09cbb60ea5951430082caf4673a8f7c3e5b77a1a65f5780a3d79f154faece6e89788270064afacdd2dad1b21fffc611a53053004172a1b3a83f287aa2b74bf083375fb17eb239672feb732539e649a653dc7294f8a68a6790b8706939021663bf845701ad538a141dafa9c41721f04bcfdf40a8d1450ffb4bf4d9102c99424a1123d41b720357604a1e509ae558f76ae2be8a6b6579ac6c75f40c88e9af9905a65dbf5074f4fd7dae2a89a7747b82f20e3a97dc5fcb7bc5e93d024a4cfe41b523bb97a90173a0145b93cf459fa5424a45606135ea23fdc349f524c1dac6af80fe1f23bdb769e0ff388e237627dd09a7f3afacf1b6bd19e1cb"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x3, 0x1}}}}, @m_skbedit={0xf8, 0x13, 0x0, 0x0, {{0xc}, {0x3c, 0x2, 0x0, 0x1, [@TCA_SKBEDIT_PARMS={0x18, 0x2, {0x1, 0x1358, 0x7, 0x9acf, 0x80}}, @TCA_SKBEDIT_QUEUE_MAPPING={0x6, 0x4, 0x7}, @TCA_SKBEDIT_PRIORITY={0x8, 0x3, {0x8, 0xd}}, @TCA_SKBEDIT_PTYPE={0x6, 0x7, 0x1}, @TCA_SKBEDIT_MARK={0x8, 0x5, 0x3}]}, {0x93, 0x6, "55538ab4c779174c8e8981552d245429c9cb50f70ebf81c07782e01ff3d298f40465727666bc09172205a49a319dd9e33df3879fcb6afbd85c825757017dccbff6aafe352ce0520a8886cb5d38c5210a30eb7ca27ee2019611931fb89af2583ac5acfbca6b10d9c69a5b71239445a771a937ee9c1c0515eadf0d03b0790cff36cc48be3c43e7678365a37e02cdc9b9"}, {0xc}, {0xc, 0x8, {0x3, 0xc1baf98a41677662}}}}, @m_skbedit={0x120, 0x1e, 0x0, 0x0, {{0xc}, {0xc, 0x2, 0x0, 0x1, [@TCA_SKBEDIT_QUEUE_MAPPING={0x6, 0x4, 0x4}]}, {0xec, 0x6, "a0acada8893725df7d451f012fca7815d898caf723816de8afdfbf748769b4c8048f4713a62b90f37e258e844d45decdca5f0c82a5f3e077722962535bd4948734cf6f3f861a69b83511c65ad4af954bf21e41a9811c3ec9857cc90dc298c267c0e8f124976be455cf53b6e424b0ceebf58b483e8be3d7f0b555d2eb2e2a32fab449c5bc596d653c5017f85851bf41fe01b34d9eed4e8394004ad8bcc1b27a2ef67021bfb8fae4037c0ee01eff21cc5af7173440ca1bfe2765fb149c6748897a0af667f7b34a7eb25df61cbcb339c095910c0c17f984bfd8f36a0002ce847cedd60eb4b9cf9dc52a"}, {0xc}, {0xc, 0x8, {0x1}}}}, @m_ctinfo={0x94, 0x19, 0x0, 0x0, {{0xb}, {0x24, 0x2, 0x0, 0x1, [@TCA_CTINFO_ZONE={0x6, 0x4, 0xfff7}, @TCA_CTINFO_PARMS_CPMARK_MASK={0x8, 0x7, 0x2}, @TCA_CTINFO_ZONE={0x6, 0x4, 0x7}, @TCA_CTINFO_PARMS_CPMARK_MASK={0x8, 0x7, 0x1}]}, {0x47, 0x6, "cfe8f6fce13eb01cbd46e66160c115b880a0eee8bd3e3a6a661cdfdd021df86bc0c5e05cc533e24617a77bb721fdf28ac7fa18e0db3ff44a0593a103d89a4e4e836948"}, {0xc}, {0xc, 0x8, {0x2, 0x2166f21555d1280}}}}]}, {0x264, 0x1, [@m_nat={0xb0, 0x0, 0x0, 0x0, {{0x8}, {0x54, 0x2, 0x0, 0x1, [@TCA_NAT_PARMS={0x28, 0x1, {{0x101, 0x7fff, 0x0, 0x4, 0x6}, @broadcast, @local, 0xffffff00, 0x1}}, @TCA_NAT_PARMS={0x28, 0x1, {{0x1, 0x4, 0x20000000, 0x9, 0x8}, @initdev={0xac, 0x1e, 0x1, 0x0}, @private=0xa010102, 0xff}}]}, {0x35, 0x6, "6e7a9e74e5cf262330279691e3c557531a4225a24f4cb13c312e408cc2e0b9adc54a30308012b0ed1b665bfeea02762edd"}, {0xc, 0x7, {0x1, 0x1}}, {0xc, 0x8, {0x1}}}}, @m_xt={0xe8, 0x7, 0x0, 0x0, {{0x7}, {0x60, 0x2, 0x0, 0x1, [@TCA_IPT_TARG={0x59, 0x6, {0x7, 'nat\x00', 0x8, 0x5, "698ecd7411ed96f05ebfc2c310929ca0833b6db214b7ab24949abb32c4e3a82c2141600658fe765bb417caadce34b7"}}]}, {0x61, 0x6, "678ee8f422979de8ac96e1612dbec6a50854a7206fc53b47b34858aa373644b1de9acdf9ac9d49a72c5e6d6756a16046112b918d7e6cb6c5b9d354a614e19ba854fbdf7b832028e66638c4730ed058d14fa401017d8884ef30fc492208"}, {0xc, 0x7, {0x1, 0x1}}, {0xc, 0x8, {0x3, 0x2}}}}, @m_xt={0xc8, 0x6, 0x0, 0x0, {{0x7}, {0x64, 0x2, 0x0, 0x1, [@TCA_IPT_TABLE={0x24, 0x1, 'filter\x00'}, @TCA_IPT_TABLE={0x24, 0x1, 'raw\x00'}, @TCA_IPT_INDEX={0x8, 0x3, 0x59f7}, @TCA_IPT_HOOK={0x8}, @TCA_IPT_HOOK={0x8, 0x2, 0x1}]}, {0x3f, 0x6, "e94bfcf3408ba0e8b58557d380a135b50119dfaac396e535fbfb4ddc131b5f12f17b94b9ac5db56b0dced4a07b7d08a971f25db63bbb0da1fd74ea"}, {0xc, 0x7, {0x1, 0x1}}, {0xc, 0x8, {0x1}}}}]}, {0xa8, 0x1, [@m_ctinfo={0xa4, 0x1c, 0x0, 0x0, {{0xb}, {0x14, 0x2, 0x0, 0x1, [@TCA_CTINFO_PARMS_DSCP_STATEMASK={0x8, 0x6, 0xfffff001}, @TCA_CTINFO_PARMS_CPMARK_MASK={0x8}]}, {0x66, 0x6, "db71f911cc558f27de8d7a887efe3957f55724dead7b8c54d0f2d157c0e473585e5ffe3241351192d66e5c1d976e3cca81fb4f2b311e03deb5ae4a1bae20f5ced2dbc5f69ada597e61a49503f82e4f33439cdc9edfe276a3ef04b5f66f77f4d44e16"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x2}}}}]}, {0x208, 0x1, [@m_skbmod={0x134, 0x1a, 0x0, 0x0, {{0xb}, {0x7c, 0x2, 0x0, 0x1, [@TCA_SKBMOD_PARMS={0x24, 0x2, {{0xfffffffb, 0x0, 0xffffffffffffffff, 0x9, 0x1000}, 0xc}}, @TCA_SKBMOD_DMAC={0xa, 0x3, @dev={'\xaa\xaa\xaa\xaa\xaa', 0x3a}}, @TCA_SKBMOD_DMAC={0xa, 0x3, @remote}, @TCA_SKBMOD_DMAC={0xa, 0x3, @remote}, @TCA_SKBMOD_SMAC={0xa}, @TCA_SKBMOD_PARMS={0x24, 0x2, {{0x6, 0xca4a, 0x4, 0x9, 0x6}, 0x6}}]}, {0x90, 0x6, "b285acdb4a0d18f5117c591c91bc0e71525b3e8a1c352f32359af84339800a3eafcf15e4c03d336bc0ca035d2e1a84bdcd6688e29657a401ffea9c03250183554ff53f12baab33b18dc69fcf49db350a9f38056a322bce05a5968081b23f633fe6ffa6804a9630e4ee0d1c08dd23bd42aed405718fc5164a8ce64c14ea1e0beec388c1b9f1cbed4bf7ef5490"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x3, 0x1}}}}, @m_ife={0xd0, 0x17, 0x0, 0x0, {{0x8}, {0x84, 0x2, 0x0, 0x1, [@TCA_IFE_PARMS={0x1c, 0x1, {{0xffffffff, 0x9, 0x2, 0x101, 0x1}, 0x1}}, @TCA_IFE_SMAC={0xa, 0x4, @broadcast}, @TCA_IFE_DMAC={0xa}, @TCA_IFE_PARMS={0x1c, 0x1, {{0x2, 0x54ce8686, 0xa, 0x6, 0x6}}}, @TCA_IFE_DMAC={0xa, 0x3, @dev={'\xaa\xaa\xaa\xaa\xaa', 0x1a}}, @TCA_IFE_TYPE={0x6, 0x5, 0x8}, @TCA_IFE_DMAC={0xa}, @TCA_IFE_TYPE={0x6, 0x5, 0x4}, @TCA_IFE_TYPE={0x6, 0x5, 0x40}]}, {0x25, 0x6, "d5bce712bb7331244d2e1b6c8e959110b8498e2394b9d9a896881d937b33d51b89"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x1, 0x1}}}}]}, {0x1154, 0x1, [@m_sample={0x90, 0x20, 0x0, 0x0, {{0xb}, {0x14, 0x2, 0x0, 0x1, [@TCA_SAMPLE_PSAMPLE_GROUP={0x8, 0x5, 0x2}, @TCA_SAMPLE_TRUNC_SIZE={0x8, 0x4, 0x7fff}]}, {0x53, 0x6, "cc090b4fdab8853cb0fcaf7544c398c459e386c51e747f8299b8b3e11298b631ef005f61113f5e9ce4312cd6715f48db2cd56a33d5223145ed7495be3f75fb9bef54c737e8cf0cdf0a6835553089bc"}, {0xc, 0x7, {0x1, 0xfe2a5b4fe232c7d1}}, {0xc, 0x8, {0x0, 0x1}}}}, @m_gact={0x10c0, 0x1, 0x0, 0x0, {{0x9}, {0x94, 0x2, 0x0, 0x1, [@TCA_GACT_PROB={0xc, 0x3, {0x0, 0xdc6, 0x6}}, @TCA_GACT_PARMS={0x18, 0x2, {0x5b1, 0x6, 0x20000000, 0x6, 0x1}}, @TCA_GACT_PROB={0xc, 0x3, {0x1, 0x1ee8, 0x3}}, @TCA_GACT_PARMS={0x18, 0x2, {0x8, 0x7f, 0x10000000, 0x4, 0xffffffd8}}, @TCA_GACT_PARMS={0x18, 0x2, {0x3f, 0x0, 0x8, 0x1}}, @TCA_GACT_PARMS={0x18, 0x2, {0x7, 0xf1, 0x4, 0xff}}, @TCA_GACT_PROB={0xc, 0x3, {0x0, 0x1f08, 0x6}}, @TCA_GACT_PROB={0xc, 0x3, {0x0, 0xd05}}]}, {0x1004, 0x6, "db0c216ce11f3f727d36e9c448d815ec38849851a10e9a7a5efb9a32ee1054a3c900649c107f4563dec90671bf4d75b065a1462afabe8ccb41c29313d2fcbaf2dbf120b4bfb2db515080e8042e6eac314b08c079e965b07df5dd6456e10e72c1b1a851e4e53d5de5536e49ec57b00fea0e98f12dcfaee51de4c59cf8fd34d1e34073a1ef2c3511194ff6c10a1d957c02b7d635235262553a226343976cb849ca8245883f19ba78a77d73c3df8240bbdbb01e982fb6ded6ddc5a27fdf8f94f078750097241abaf6cf18b8493b490e0960f0b80fe534a408f2bff418933af0d51da250758b5584da9f9cc0a38de898e2dcb8bd94528124cd8c794238a1fcf27c16195622ad9be5cbafed698d64049b70f0416076556a4adbf1fd00f7389052e364c6f009d4019ebd10be22945f8cd29719c13d80e635c833277677803760bfadd6c2a400e30e2ceb623ca10a6f3fa767eec8fe2265a234489a90c57c84f38336e41a1b14a083519a06ae7f9a3b765f4943f6f6f71c651e71866739bf1a9d848ecf3617bee4946c3b47e65c96708dd4d6a3f91dd45a88f51e5701a3b1537542126cdb016776455db4111d57efa81a496b46a6982cc1804707a8e713134d3978eb879cf30c7cb71eac11c1ade7d71208cf6180fb49636427daa1b411086b381bb0760857eb6dea5b1f9355805e69ec415146e9fa587491cadd00335fd655b33238482b5950de6f8541da843b3e525f9f4bf3ac01c1eb1309c1003cb5c291566025f58bbe70c6d57e9db5af77454049154dbaa1eba07e664282073a2c2bbf05e8ef67fb793b3ae62ec05f46015263d312d5853d26dbe69cee94abc0b2baab20abb642fbe96a0385e1a6c5d07a89c55c08706f68b26db6ae1dccf90248b2894ccb0213445b92089caa8150506eab7e681235f3717d41b8a320377d0a7a70696d48c6b1941ad2940d64466fd8e9a7e0c222745e749c7a51dcf5dbaaee81add0b68c0b1deef87d12ffde2d5b1731006bfd4862fa208e21dc2b9d3b91d65ea5e50be4eb10d521eb759975402a97761b2501b51e674d3d7b3dd03f9541f69818ca22350bd38c723a712f0a715a73f63e58966f0de867c48907bc4662077c031bcee64f17c0f34326dca509d9d9b885f10ba060c015ae9ba3a46ade705da9c80a80301e33ef0b1677f50340e11ec7deb91458e8c5a72590cbbc5fb4bb3aa27ea24f554f28eedb60d476cb689d81144d16be47909bf7a3713fd54e60d3a4c5c8b21917406d366072876f556c2e8b1c96a73f5be3e4c450c441c7d0cfd2f8c7d1a60c3d15e9f798716050e58e82731e14e9af11d4378fafb78074c855fed734556e9a64f9068e79893cfda377fc8a2a88bc243000d00113e615e23070649495d64b9def8b189912de73b64866e422ed6dce32bae187e52da97c736ab7cd41cd49c991671321fa68b4b3c09b8550b298e64132148d7cb26cb933bab936b2596d874478d081f6aadc74404025685723b464da2ed6b6b198bc3da78a0380aa8eebc1f1292750d7c96d9a098d008a71c6dd0831f7c182651de9638a09bfe041147d9e346d469030f101766e3b42a08e3f76e1d001eea142d5f09d4be7808c69d936d7df6d1f6c8627b514381553ec15831c0b08fc2f65fb0e2200f1edb1d77469b74756ad274a4bdf3d8cff28f6912f18f91934791e129b271e7358fc3f79394326d9c0095bc81732781aba05566f1acf51be1bcba3d4686f40e740ea1b6f70fed3dd1108ef3313145ca5eeb18db2c0b5034054b4b0257f8a16549716d67fe4ef9c5dd73c7a81931cffff3d89d8b126a52b75298cb4db719596e30690b677303f3445b7f8bf1fab6aabe9cb3298e691ca8a6df241c0337b1639fe506bdd60f92d81594ae612c2c686baa7b2400044ab420407e6f2de45b82406e8d8dacc95cb685ff5d3542dcc55f18f23d5b914313ab50bbcf6cadc547997b58a7d2a81a4a80b4391afb75106623518167af1f15a66215f27e280cde08235c259b8a2f4c449bf4b268b391a625406249af5f42e93f53c47715cae95edf2706f09495fdcb2cbd1979c688ac847017687f2ea2365ddfb4e913d98079af6c0baa4b8ef09652913e09703d8320b110bc9e1c85695574afb8c947b1c6decd3f864d99e6dbf815faa8886a94d92c9991d18fb76a47ca559f30303860de810b11043d4807405ded6885bfb9a108d86ba6aeb1fd2e1a907b2015bc8f06ae7f88f21be50c0ccfba3fd7b26a0d60be2cdd9cd8df4acb598d2c283e79b508c05c79aa7f42f361b1df8cd86788bce984e06003f20d9baa9735f1d48634fa028e7e2a97fc1aac2dd8fefc78ba83c4f34c74cd2fe560bf6caa293d8c75c6f1ebf866d029f1e72c0a17d719be852e350510ad0a5a9f0cfcbe6b92c668a26c77d1e4cbc807f3e6aafa4b5d46fa773da7cdea23fc6def3e6de458bff6bf241b2689e572b0b1cf114d3da6bb0ceb7322570aab874211d76cedccd42f57bad30eba0ff0798061f2ec9d2b5086dcbb3b2d4ea2844b837b336f0d9c76350b077a3a2bb226ca464c03b8c5473e4f6de9c19dcc48f68b027e4895d8e86ca74f9a6d9191665b362ef2aabd25fbdfd1977b0d438d9f9591b0ca47e633f7159ad64b27e67f48abb074d63e3e28bc28b18b6b11f45728c06865bb7a7f36cc0f3cf1e72b1eeb55a4d2a7796d604df4a5fea905c7ca90699e7078d142aab76f57675819116152e91f4fac8e837555b62a8038d0649b5ba04d149338959c62500a1c21dddec59c943304f88c9b0d9a7a5b34ef8cee91c9bd14c1911720e614069b8e70f24b32fd046bbf6b95d937e6308c62fa87635d3621fef5e8e4035088ec4cbc516f0165a08f07898f756e0cf877fc2063e3bf85776da1a6aec0d44c9bfc6e49b6308fb243099be31aaa7233f3938a3151c820f3f0b45ebb3a6db482e7677d9c1f12d2d5675cb2a5f71e189414c98ebf488d93dddf14970c56db80b7329f415471504454f5447e52d13707e1dd1fef2b957ec3927b486545425655f5a860867e50bb9b5a6535b9db8979e8b2868719fca577a6d4bfe43e1089463b5a8e5895112ebec246d13ee9177284b65ea77719873f1a731ed20105ecec756dde30af3346b8774a29941bfcc6cf128b890e143f86e489669baf21849308fa9a26b821a05d0975b1d8a4482b3f598d31dd13fcf597f72b760026397928df50f698949069b9ff704e65492e98df2fdacb3f5aa0c3666ad69d366ab12c11d42e725acb540ac289065037675c3969bea2a77f46d749b5343d6e27703d3d8840f9e8e0185c5380e085e3477dd6271f6d098f01b08e227a77823539e012d404b7de7b0660f8f8d67a1b8c5deddf9e176e49c81de293261e0fac8d9307899ff1ce0496057e4344fa230fa8ef44a202bb91561f1b3ce6bfe468225967935bb0cc49d21fc19ae32e69970319484b0b2a5d03240361466e2a3c9c2c024fe666c099e1ca7afa45cd11ffc266f0e2678db18ab31ab3869a6960ceb1ca6ba142648462823981c2551d51217e1fa841e153f42c0c765ae82b5e105962d140524232c8a400ac27f93c6b545da1088cc8f9358925a762d64c4ebf10a29a540b9a0596432c17b5773d9f64bcf53449ac29da9dc624ae7f2c0cc51698fa5f67a819e47c1dca80df88cb85d265baa78f606b3bdbeca91e2a21cf2094cf4e0853e319796ccc1ff3706a07fe0d4a73e978e7e5b8f7ac637a25db637e6d195cba29a0f3bb9f863cd83296541a40dcdc5e8f6ec0ac937caa9c403899a8f874a6c25403a993a35d4d2945d8f682aa72cef73b07c0c45601b7da6276349b19a266e72ad0f85cd217713883db360097b2ab8ce070f79454c991d0e9ac480a34e8a76e96097c2adcc303d109005be710e7b17a5d14d0d70c401dec6aec08496f09f6a924f468361f647d7247c0e930b07f3f18251811812b5a4b38c6fadf6045e2936824275ed9ff2265ab053116fb8205c919e48dafb5f26d023e934e7551defba17e9ae54b5b5f20df1f4895d43e7573926001404c620fbb7747c2acacb87b7a5cd62d9f96a4a504bc0a14b2c65f8a5ebece46b92c48124bfbfacebfc4a8c173b55a76af52a6e5097081fc8096c7793f92630a51085ff4f944df8fb1dd3b54061119bcb6defdda2bbda4852050e5fc79652ca5ab717fcac2ba56a8579984a524ea513c74e7d3986ac9864578d72d83f01c826378cec7eae975caf0a1bdd926b5c2581a737881245697a676ff2a8b5f3f1bb717754e1e3d985459e0243d32a6f54fe3c3c4b82c97c899fffc3c86fb67d890f9b26d3f73507c679175a917576afd1b6b1a750e8851c53c15a3b1409c8235b50a59069edc9b89d5805e8bcb705c40b7938585d0144a64ef3bc0559392a2f079b116ecc6af4f8b3d457a20c1325edee663a063828f2ab3cc237fbbe9081cd91b6562f698cc3ddabc2ed060f175703cf912c9e0bec28b4e53a1620c4f2965b6b7fef6a079f06d19a7ffbe0955bd50738f0a0b2435847dbf8a14684b37bf910ebda07a17e2baea8339e7d64450e5a54a71b90fcf14ee4beac63ab0b045a6cf290e5349223ddf700bd4ef61b8e74446e0aa362367345e5e17b1b85144bc0ea6030451b6db101bfddee2e7ef0098130ff5f16fbab118f17b7ab1aa32e6a6e7b575fc8aeb84891e3e4fa30c6620c7909ddebfcbdaaaba018ad1a4fb7cbba9af0a1689fbec12096351f39615b1ebbb857529a44b03d5317baf9f5aee80ba72ec581dcb14b8565cdc5458415a17d89f029c99a99ea57f12e613ccfd7516635181b19de70b8bc1e4bdd975ec832e4f2c2efab0314f9cc1c097fea375c15fe75c838b3956dd9079a6b12f9d8ce6ffe75e2e25072542e441fbd9213c38e0959237cb30e2e3904a5786453ff5074cc104f3b329fde4db4000cc97bfa68d5e9a9ca3eb446408c8623c07372a47d594ea8559071a74837502abc912e8f08dd17008706073e943b4973bb7295792f7417a3e700014c71cb10885d8fa37bb7378183ff6949c6522a70b2c30e3b435d159f1dc7b5c0c9fc738ffc3681178f7d5e8754d5e5b90aa5113449972a4eb009ca59d3a84d054cc6e946f64933db9e99a1d14ec770ab490d0bbc051e36f13f3f94b12cdfd29d1a8019ed96082e4a4ee483d869ec406db3d935bfbd4e263628b6e632e2dbacc7eccf8f1808a5a4673058b80346edbae64bfba9a463bae5c11c423d45d2b57b8d432dcdc53608de1161ec94d4c8379f12e9ec84c2faaf14b546e81a31156c486aa175683f3dcd6b0f8fc1886f8aa1d108c456357c1d8dcfa627bc55dbf9c1214183d76d2a9210e92757df9479139becebdc2737a258cac262c90e04bdac5b5c0d3f2e35ee8ccb024e8d1b75f8cb1ee111ec26796d8eb30c38d719349bc6925abdf1e2e3276200a8cce7a60820a37833a850af3105b2da2e82d5de737915c81953c3ae0848a78f7c0ccacc8fdfa59492ad3691e157f8f70810cacc1792dad0f7700b6009b7ce9435ee9c59e3c31b9a5a29fde22ed23527eb13447eabe5e5e3f61d58af96e06b5e67d450776eb1ed7ccc4d308b8e50399edac3a192b4d7bfff450c8190abe6f87b74dfb7cb2a49ed007bfd69f578532b04ce2496778e125db96169ac83d6dcb4291050841e3981662d876148122d255e88ab026d58f36c614d917c0cd8500198260cb9de84d25351c2f9d5d6f1b174c4fd23e2ff264e93eef57d3c5e31557cc1165cd62558185de0290f6b3b7933db66f01f019f02e78548075180f039da7a7a582f06a0ac03dd6604"}, {0xc, 0x7, {0x1, 0x1}}, {0xc, 0x8, {0x0, 0x2}}}}]}, {0x198, 0x1, [@m_ctinfo={0x194, 0x11, 0x0, 0x0, {{0xb}, {0x84, 0x2, 0x0, 0x1, [@TCA_CTINFO_ACT={0x18, 0x3, {0x6, 0x40, 0x6, 0x8, 0x401}}, @TCA_CTINFO_PARMS_DSCP_STATEMASK={0x8, 0x6, 0x10001}, @TCA_CTINFO_ACT={0x18, 0x3, {0x7, 0x4, 0xea8d1699e576f26a, 0x10001, 0x9}}, @TCA_CTINFO_PARMS_DSCP_STATEMASK={0x8, 0x6, 0x44f}, @TCA_CTINFO_ACT={0x18, 0x3, {0x40, 0x0, 0x7, 0x37, 0x7}}, @TCA_CTINFO_ACT={0x18, 0x3, {0x72ec, 0x80, 0x2, 0x54b, 0x3}}, @TCA_CTINFO_PARMS_CPMARK_MASK={0x8, 0x7, 0x6}, @TCA_CTINFO_PARMS_DSCP_MASK={0x8, 0x5, 0x1f}]}, {0xe6, 0x6, "f4502bd5cba3be40892dca2893b0e1a4b871a9d100afc328727227191015d725b6f70849ff57c2f688fd9f8745ca786ba8fb17d1fdcb2bdeb9074c621fc603282a592684a7d2cd8f6fa1cf5d2a0f861ded83480669b211b037af51a8b781059870311ec1c1729dfc9d132dec020ba0a65d33bc23a9b71f54d39c79be79abd35876240536391459041c1cc8d41e60afccb28b6ff4a277e36dfa76d5ece9b8abf671cb7ca27d444575d43fd295a0b6ef23441b453b1e080e020f98f184e99c78ac541736466d929bb4ff35dbf5bb7fc4d8c2aef292afb0af751d3e98296125ffbf2864"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x2, 0x3}}}}]}, {0x2884, 0x1, [@m_ctinfo={0x68, 0x9, 0x0, 0x0, {{0xb}, {0x14, 0x2, 0x0, 0x1, [@TCA_CTINFO_PARMS_DSCP_MASK={0x8, 0x5, 0x9}, @TCA_CTINFO_PARMS_DSCP_MASK={0x8, 0x5, 0x8}]}, {0x2b, 0x6, "274f1e1502dddb944ad9bf985d1cbb29df6cf93ab4fcf17971a8fdca9f7df759a4eb6f835acc2a"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x1, 0x2}}}}, @m_skbmod={0x120, 0x5, 0x0, 0x0, {{0xb}, {0x54, 0x2, 0x0, 0x1, [@TCA_SKBMOD_PARMS={0x24, 0x2, {{0x0, 0x8, 0x3, 0x4cf8, 0x80000000}, 0x1}}, @TCA_SKBMOD_ETYPE={0x6, 0x5, 0x7ff}, @TCA_SKBMOD_PARMS={0x24, 0x2, {{0x40, 0xfffffffa, 0x3, 0x5, 0xf15}, 0x1}}]}, {0xa3, 0x6, "aa8dcb80b777791b42753fd244c2d04e1e23d4d2129c4ae42f4342b9d4a0a49be57ceb727d8f77441a493b1489523b3a67d0bf4b55a6f5f7413a952d94ea83d9752ebc12131e034fc6bbb3ee459519ea30309463f1eff0f4950dd16adbe4cd063efefaa53953a60ed55fc072115c0f08bf8491eb903d370431c860eca9d0c13a26180db412b6785e8fab0a412ba2267417cb31266c5e98c6b800ce71d71b33"}, {0xc, 0x7, {0x1, 0x1}}, {0xc, 0x8, {0x1, 0x2}}}}, @m_ipt={0x284, 0x1b, 0x0, 0x0, {{0x8}, {0x15c, 0x2, 0x0, 0x1, [@TCA_IPT_TABLE={0x24, 0x1, 'nat\x00'}, @TCA_IPT_HOOK={0x8, 0x2, 0x1}, @TCA_IPT_TARG={0xcc, 0x6, {0x1, 'mangle\x00', 0x80, 0xa73, "cdd3be8ea37c59e3f77c68830fdd9408891b0252be7b8f1ed8a54b9d34272ee7178efbc6f78d6462d4ed6bb09dc0644e936398a911e532eb9b1e6786d419dbc2a3f47ffb0a6f1461e193f58f2cc099a8cc0384be81319cb176061357db877c338924a3da51ab476474c67bdc521a3adf7c9f3f927d2a8f19a902316de00a152ba53424605cdfd972c708dab753fda7d7adbbe2384361692fb81bc81f94230de88be7"}}, @TCA_IPT_TABLE={0x24, 0x1, 'raw\x00'}, @TCA_IPT_HOOK={0x8, 0x2, 0x3}, @TCA_IPT_INDEX={0x8, 0x3, 0x6}, @TCA_IPT_TABLE={0x24, 0x1, 'filter\x00'}, @TCA_IPT_INDEX={0x8, 0x3, 0x50000000}]}, {0x102, 0x6, "01cc04ec15445b181c4c6d20f7364a9c5d16dc0ca74085bc2645c9316d1da29ef8c518faf6c56c2c95937ca7b0b41508cdb076a9631de6beb1df8580fdb990fecd5496c5e6c4d873dff34d2b501cbb78ec89cd4f6a7a70f613bb24394b9453dabb19c5cd559c8713f8306b8f3bccd7f1d88a94d8f6a81095d1864f88df4747cd2f8f2c5ffb829574bbbd71ee7dcdecfb355ba702a5387981a9923060aecb91202727c155a55b52cac68ad9b398bf9e236858025072522fc80fbf5debbc050d85a5fba890a6a2f0d423f3bb021d630a8f370ea76c0737df3958ab694e485d0918fd821647fa23eea7bccfbeed41fe6a720f272a778173b5ea20ad3cb41004"}, {0xc}, {0xc, 0x8, {0x2, 0x1}}}}, @m_skbmod={0x14c, 0x1d, 0x0, 0x0, {{0xb}, {0x9c, 0x2, 0x0, 0x1, [@TCA_SKBMOD_PARMS={0x24, 0x2, {{0x10001, 0x15, 0x20000008, 0x5}, 0x4}}, @TCA_SKBMOD_PARMS={0x24, 0x2, {{0x5, 0x4, 0x3, 0x0, 0x3}, 0x2}}, @TCA_SKBMOD_DMAC={0xa, 0x3, @random="bab94bc00662"}, @TCA_SKBMOD_DMAC={0xa, 0x3, @link_local}, @TCA_SKBMOD_PARMS={0x24, 0x2, {{0x7, 0x772, 0x0, 0x3, 0x80}, 0x2}}, @TCA_SKBMOD_SMAC={0xa, 0x4, @multicast}, @TCA_SKBMOD_ETYPE={0x6, 0x5, 0xba}]}, {0x87, 0x6, "3762b4abdec472911fe94849ef288cb01205350486b0924923a33804122b2b88687beacfb17ca624e4864c87a7ba214bce350c309539ca9319a5518bc66a0aff9d4504c9b06d21f10eefbaa1a359c18237cf9a33f121f2c13e4e84b47c32ce1c08ebc1d669deeca1c514f4626b3eb9642600005508aaa9ccbdb7c3f62e120f1c8e3b33"}, {0xc, 0x7, {0x1, 0x1}}, {0xc, 0x8, {0x2, 0x4}}}}, @m_police={0x2108, 0x18, 0x0, 0x0, {{0xb}, {0x20b4, 0x2, 0x0, 0x1, [[@TCA_POLICE_RATE={0x404, 0x2, [0xcf32, 0x8, 0xfffff25e, 0x9, 0x4, 0xff, 0x7, 0xf6, 0x101, 0xc3f, 0xa61, 0x0, 0x7, 0x7f, 0x334a, 0xf8, 0xb0, 0xff, 0x7, 0x7, 0x4, 0x5, 0x5, 0x3ff, 0x7, 0x2, 0x1f, 0x9, 0xfffff697, 0x69aa, 0x3322, 0x0, 0x5, 0x5, 0x20, 0x685, 0x7, 0x4313, 0xf8, 0x45f, 0x5, 0x1ff, 0x6, 0xf472, 0x4, 0xfffffffc, 0x7d, 0x7, 0x4, 0x401, 0x7, 0x51, 0x7ff, 0x80, 0x9, 0x1000, 0x5, 0x8, 0xd35a, 0x4, 0x10000, 0x5, 0x9, 0x1d43, 0x742a, 0x200, 0x9, 0x80000001, 0x4, 0x5, 0x0, 0x80000000, 0x4, 0x3e8, 0x9, 0x1f, 0x7, 0x7, 0x6271, 0x8, 0xa016, 0x1, 0x401, 0x1, 0x7fff, 0x0, 0x4, 0x100, 0xc7, 0x10000, 0x800, 0x7f, 0x8001, 0x4, 0xe6, 0x0, 0x9, 0x0, 0x3, 0xfffffff9, 0x8, 0x6, 0x7, 0x0, 0x3, 0x2, 0x1, 0x1, 0x1ff, 0x7fffffff, 0x3f, 0x5b, 0x8, 0x3, 0x7fffffff, 0x4, 0x2, 0x3ff, 0x80000001, 0x8, 0x9, 0x9, 0x8001, 0x0, 0x8, 0x0, 0x7fff, 0x6, 0x9, 0x8, 0x7, 0x9, 0x3ff, 0xa7b6, 0x3, 0x7a2, 0x7, 0x3, 0x7fffffff, 0x401, 0x7, 0x7, 0x2, 0x3, 0x2, 0x4, 0x6, 0xbd, 0xfff, 0x0, 0x0, 0x9, 0x3, 0x100, 0x7, 0x9, 0x9, 0xef9b, 0x7ff, 0x3, 0x0, 0x8, 0x2, 0x8000, 0x4, 0xffff, 0x8000, 0x81, 0x10000, 0x48, 0x3f, 0x7, 0x1b1ef42d, 0xa83, 0x40, 0x4, 0xbc5, 0x0, 0xb1, 0x80, 0x6ff, 0x1, 0x1, 0xd6, 0x9, 0x3, 0x9, 0x7fffffff, 0x5, 0xd8000000, 0xffffff00, 0x80000001, 0x2, 0xac9c, 0x4, 0x400, 0xd4, 0xfffffff7, 0x7, 0xff, 0x3a, 0x16, 0x7f, 0x3, 0x5, 0x7, 0x0, 0x8, 0x17c, 0x0, 0xb9, 0x7, 0x1, 0xfffffff8, 0x1, 0x80000001, 0x1, 0x7f, 0x3, 0x10001, 0x7, 0x4, 0x2, 0xfffffffe, 0x0, 0x6, 0x0, 0x7, 0x9, 0x0, 0x1, 0x40, 0x2000000, 0x6, 0x80000000, 0x6f027b66, 0x9, 0xe7bd1d19, 0x2, 0x8, 0x100, 0x2, 0x5, 0x9, 0x7fffffff, 0x6, 0x3c35341d, 0x9, 0x101, 0x0, 0x8, 0x5, 0x9, 0x1ff, 0xd0, 0x1ff]}, @TCA_POLICE_RESULT={0x8, 0x5, 0x49}, @TCA_POLICE_RATE={0x404, 0x2, [0x9ca, 0x101, 0x6, 0x8, 0x0, 0x30000000, 0x0, 0x6, 0xd2, 0x9, 0x8, 0x1, 0xffffc0f3, 0x2, 0x3, 0x6, 0x5, 0x2, 0x1, 0x8, 0x7, 0x3, 0x7, 0xfff, 0x5, 0x3, 0x3, 0x7, 0xffffffff, 0x9, 0x80, 0x101, 0x7, 0xc5f4, 0x6, 0x5, 0x3399, 0x2, 0x401, 0xcae7, 0x401, 0xffffffff, 0x0, 0x8001, 0x4, 0x401, 0x0, 0x1, 0x0, 0x2, 0x703c, 0xfffffffe, 0x40, 0xa524, 0x1734, 0xff, 0x6, 0x7, 0x2, 0x7, 0x6e8, 0x7, 0xff, 0xc, 0x80000000, 0x7, 0xf2, 0x9, 0x0, 0x6, 0x89, 0x6, 0x401, 0x2, 0x8, 0x101, 0x2, 0x1, 0x4835, 0x1f, 0x9, 0x8, 0x1, 0x3, 0x0, 0x7, 0x8, 0x0, 0x20, 0x2, 0x6c050d00, 0x200, 0x7, 0x82e6, 0xedc, 0x7fff, 0xffff7fff, 0x7, 0x1, 0x5, 0xdca2, 0x8, 0x1, 0x5, 0x1f, 0x80000000, 0x6, 0x7fff, 0x0, 0x0, 0x1, 0x3, 0x100, 0x6, 0x1, 0xa24d, 0xff, 0x9, 0x6, 0x2, 0x3, 0xd6, 0x1, 0x3, 0x0, 0x2, 0x9, 0x6, 0x6, 0x2, 0x80000001, 0x6, 0x20, 0x400000, 0x7, 0x800, 0x2, 0x8d7d, 0x9, 0x12000000, 0x7, 0xd14, 0x82, 0x1, 0x8, 0x7, 0x2, 0x0, 0x1ff, 0x800, 0x7fff, 0xffff0844, 0x4, 0x0, 0x42, 0x20, 0xfffffffb, 0x5, 0x5fe, 0x10000, 0x8, 0xe3f, 0x3, 0xffff, 0x2c, 0x4, 0xcf, 0x8001, 0x7fffffff, 0x4, 0x1, 0x200, 0x2, 0x0, 0x4, 0x540c, 0x2, 0x1, 0x3, 0x2, 0x9, 0x2, 0x5, 0x400, 0x0, 0xe93f, 0xd7, 0xffff8001, 0xb4c1, 0x5, 0x3f, 0x40, 0x2, 0x6, 0x6008, 0x800, 0x1000, 0x2c, 0x1, 0x8, 0x3, 0x3, 0x6, 0x6, 0x6, 0x7, 0x9, 0x8, 0x6, 0x80000000, 0x4, 0x4, 0x3ff, 0xfffffff8, 0x9, 0xfffff95a, 0x4a, 0x23ed, 0xfff, 0x3ff, 0x1, 0x7, 0x20000000, 0xfffffff1, 0x5, 0x2, 0xb3c, 0x3, 0x80000001, 0x3, 0x2, 0x20, 0x81, 0x200, 0xef, 0x1, 0x1, 0x1, 0x4, 0x1, 0x4, 0x5, 0x48000000, 0x6, 0x80, 0x1, 0x8, 0xae45, 0x7f, 0x1, 0x1ff, 0x2, 0x3, 0x81, 0x6, 0x82d]}, @TCA_POLICE_PEAKRATE64={0xc, 0x9, 0x2}, @TCA_POLICE_RATE64={0xc, 0x8, 0x3}, @TCA_POLICE_RATE64={0xc, 0x8, 0x2}, @TCA_POLICE_AVRATE={0x8, 0x4, 0x3f}], [@TCA_POLICE_RATE={0x404, 0x2, [0x3, 0xee, 0xfa42, 0xffff, 0x1f, 0x1, 0xfff, 0x3, 0x3ff, 0x9, 0x1ff, 0x8, 0x8001, 0x81, 0x3, 0x7ff, 0xf8, 0x0, 0x1f, 0x88, 0x5, 0xff, 0x0, 0x3, 0x3ff, 0x8, 0x3, 0x6, 0x143, 0x5, 0x1800000, 0x9, 0x2, 0x1, 0x7, 0x7, 0x10001, 0x2, 0x7, 0x71, 0xffff, 0x1ff, 0x0, 0x40, 0x73, 0x8, 0x9, 0x7, 0x1, 0x1, 0x73f, 0x800, 0x7e, 0x6, 0xffffff2b, 0x40, 0x3d, 0x7fff, 0xa4f, 0x7f, 0x5, 0xa123, 0xc1b, 0xc59b, 0x3, 0x8, 0xffff, 0x545, 0x0, 0x8, 0xce, 0x1, 0x3ff, 0x0, 0x4db, 0x101, 0x1, 0x10001, 0x9, 0xfff, 0x0, 0x1, 0x10000, 0x7, 0x9, 0x22, 0x81, 0x800, 0x97d, 0xfffffffe, 0x8, 0x8, 0x9, 0x10001, 0x6, 0x80000000, 0x4, 0x1, 0x80, 0x8001, 0xfea, 0x3, 0x101, 0x501, 0x40, 0xfff, 0xd6eb, 0x0, 0x0, 0x1000, 0x40, 0x20, 0x8001, 0x80000000, 0x7, 0x80000001, 0x7, 0x3, 0x2, 0x2, 0x2, 0x1, 0x1, 0x0, 0x4, 0x7, 0xfca, 0x4, 0xffff, 0x101, 0xef6a, 0x101, 0x0, 0x140, 0x1, 0x0, 0xfffffe01, 0x0, 0xfffffffe, 0x4, 0x9, 0x6, 0x1, 0x5, 0x40, 0x0, 0x5, 0x8, 0x0, 0x7ff, 0x7, 0x20, 0x1, 0xb989, 0x4, 0x2bd44098, 0x2, 0x9, 0x8e8, 0xd, 0x5, 0x3ff, 0x83, 0x9, 0x5, 0xd8, 0x5, 0x6, 0x9, 0x3ff, 0x8, 0x7fffffff, 0x0, 0xfffe0000, 0x6, 0x81, 0x8, 0x4, 0x6e, 0x6, 0x5c, 0xc335, 0x1ff, 0x40, 0x537e, 0xfffffff9, 0xffff, 0x4, 0x87ef, 0x8, 0x800, 0x7, 0x7, 0x0, 0x0, 0xfffffffd, 0x660, 0x1ff, 0x0, 0x1, 0x4a1b, 0x1f, 0x0, 0xfc0000, 0x3ff, 0x401, 0x8, 0x0, 0x1, 0x1000, 0x7, 0x101, 0xff000000, 0x9, 0x8, 0x3d3a, 0x7f, 0x7, 0x3, 0x3, 0x10000, 0x7, 0x2, 0x401, 0xfffffb6d, 0x5, 0x101, 0x7, 0xbc, 0x6b, 0x5, 0x0, 0xb46, 0x2, 0x7, 0x1, 0x8, 0x97d, 0x101, 0x5, 0x7, 0x1, 0x9, 0x0, 0xb97b, 0x401, 0x3f, 0x1, 0x7, 0x9, 0x80000000, 0x1000, 0x1, 0x5, 0xf1a, 0x8]}, @TCA_POLICE_AVRATE={0x8, 0x4, 0x2e}, @TCA_POLICE_PEAKRATE={0x404, 0x3, [0x0, 0xff, 0x400, 0x9, 0x7fff, 0x4, 0x800, 0x56, 0x0, 0xfffff403, 0x10001, 0x3, 0x6, 0x6, 0x4, 0x3, 0x5, 0x5802, 0x6, 0x8, 0x0, 0x8000, 0x3ff, 0xffff3305, 0x20c, 0x20000, 0x7, 0xff, 0x8, 0x8, 0x4, 0x3f, 0xb6, 0x5, 0xc7, 0x0, 0x5, 0x3, 0x3, 0x3, 0x2, 0x0, 0x3ff, 0x3, 0x7fffffff, 0x8a6, 0x6, 0x9, 0xfffff800, 0x0, 0x5, 0x9, 0xf80, 0x9, 0x6, 0x7fffffff, 0x0, 0x886b, 0x8, 0x4bf723bf, 0x0, 0x8, 0x80000000, 0x7fffffff, 0x4, 0xb6, 0x2, 0x2, 0x4395, 0x3, 0x4, 0x3b72, 0x0, 0xfffffff7, 0x3, 0xecf, 0x7, 0xffff, 0xffff, 0x9, 0x6, 0xa4a, 0x6, 0x80, 0xff, 0x349c, 0x1, 0x5, 0x81, 0x5, 0x20000000, 0xfffffffe, 0x89, 0x40, 0x7fffffff, 0x80, 0x3, 0x9, 0x81, 0x0, 0x3, 0x4, 0xfff00000, 0x591, 0x8, 0xc69, 0x100, 0x7, 0x2000, 0x81, 0x19, 0x4, 0x2, 0x7fff, 0x9, 0x7, 0x42f, 0x1ff, 0xaf, 0x3, 0x4, 0x8, 0x2, 0x1, 0xdc, 0x3, 0x1000, 0x6, 0x639f, 0x3ff, 0x0, 0xc16, 0x7ff, 0x4, 0x4, 0x8, 0x3, 0x8001, 0x6, 0x3, 0x1f, 0x7fffffff, 0x0, 0xc, 0x5, 0xb79, 0x7, 0x10001, 0x4, 0x4, 0x2, 0x21c, 0x0, 0xb8, 0x7, 0x43, 0x800, 0xb5, 0x3, 0x35, 0x0, 0xffff, 0x2, 0x10000, 0x3f9, 0x61ac, 0x6, 0x5, 0xc000, 0x0, 0xfffffff9, 0x4c4, 0x0, 0xffff, 0x9, 0x6, 0x1004, 0x1, 0x2, 0x1, 0x0, 0x40, 0xea01, 0x2, 0x9, 0x8000, 0x3, 0x7, 0x10001, 0x2, 0x5, 0x1f, 0x563c, 0x9, 0x8, 0x8, 0x4, 0x1, 0x5, 0x101, 0x9, 0x1ff, 0x7fffffff, 0x5, 0x6, 0x10001, 0x426, 0xfffff111, 0x8, 0x9, 0x0, 0x3, 0x5, 0xd, 0x5, 0x1, 0x9, 0x5, 0x7ff, 0x2, 0x3, 0x7b8, 0xfffffffe, 0x7, 0x2, 0xff, 0x3f, 0xffff, 0x4, 0x1000, 0xd0c, 0x6, 0x2, 0x4, 0x9, 0x3ff, 0x3ff, 0x8, 0x4, 0x0, 0x8375, 0x4, 0x5ca, 0x6, 0xb48, 0xe97, 0x2, 0x6, 0x3, 0x2, 0xffff8001, 0x6, 0x100, 0x3ff, 0x7f, 0x3f]}, @TCA_POLICE_TBF={0x3c, 0x1, {0x23, 0x4, 0xfffffff8, 0x62, 0xe87, {0x1f, 0x2, 0x6, 0x8, 0x100, 0x8}, {0x1, 0x1, 0x6, 0x7fff, 0x8, 0x80}, 0x40, 0x1, 0x20}}], [@TCA_POLICE_RATE64={0xc, 0x8, 0x5}, @TCA_POLICE_PEAKRATE={0x404, 0x3, [0x1, 0x1, 0x5, 0x7ff, 0x7, 0x1, 0x7fffffff, 0x1, 0x0, 0x4, 0x8000, 0x4, 0xbe, 0x3, 0x3, 0x5, 0x6, 0x2, 0x400, 0x1, 0x59a, 0x1, 0x7fffffff, 0x1ff8, 0x3d, 0x2, 0x0, 0x0, 0x6, 0x10001, 0x8, 0x7, 0xeb, 0x4000000, 0x8, 0x5, 0xcb70, 0x4, 0x700000, 0x100, 0x8000, 0x1, 0x0, 0x1ff, 0x6, 0x200, 0x2, 0x1, 0x7, 0x2, 0x5, 0x2, 0x200, 0x9, 0x4, 0x6, 0x7, 0x0, 0x1, 0x7, 0x4, 0x200, 0x8001, 0x7ff, 0x5be5, 0x2, 0x80, 0xa0, 0x9, 0x1, 0x80bd, 0xfffff144, 0x9d, 0x8000, 0x20, 0x2, 0x5a6d, 0x80000000, 0x9, 0x265c, 0x10000, 0x4, 0x2, 0x6, 0x80, 0x3b, 0xc2, 0x6f4, 0x4, 0x100, 0x3, 0x1, 0x6, 0x8, 0x46e, 0x7, 0x6d, 0x8, 0x6, 0xffff, 0xffffffff, 0x400, 0x7ff, 0x8, 0x1, 0xffffffff, 0x3942, 0x0, 0x101, 0x4, 0xcba6, 0x9, 0x2, 0x1d, 0x73c, 0x5, 0x101, 0x6a1, 0x4, 0xde, 0x0, 0x2, 0x3809, 0x1ff, 0x27b6e54, 0x9e, 0xfffffffb, 0x1, 0x6, 0x900000, 0x1000, 0x0, 0x7, 0x8e5, 0x444, 0x80000001, 0xd68, 0x8, 0x1, 0x3, 0x8, 0x7, 0x101, 0x40, 0x9, 0x7, 0x8001, 0xc15, 0x8001, 0x4d, 0x8e, 0x1ff, 0x401, 0x2, 0x7f, 0x401, 0x1, 0x7, 0xfffffff7, 0x80000001, 0x3, 0x394, 0x7, 0x100, 0x8001, 0x2, 0x200, 0x401, 0xc8, 0x5441, 0x1, 0x7f, 0xab3, 0x0, 0x7, 0x1f, 0x2, 0x8266, 0xeee, 0x7, 0xf2, 0x80000000, 0x6, 0xffff, 0x3, 0x3003, 0x9, 0x4, 0x3f, 0x6, 0x9, 0x1, 0x7, 0x2, 0x8, 0x3, 0x7, 0x9, 0x6, 0x8, 0x1000, 0x3aa0, 0x4, 0x2, 0x0, 0x3, 0x7, 0xabc, 0x3f, 0x4, 0x6, 0x9, 0xbe, 0x6, 0x5, 0xff, 0x7, 0x81, 0xf9f9, 0x1, 0x5, 0x9, 0x1, 0x3f, 0x7, 0x40f4, 0x116e, 0x4f, 0x8001, 0x5, 0x7, 0x7, 0x9d6, 0x6, 0x8, 0xe3, 0x8, 0x7ff, 0x4, 0x3, 0x7, 0x70, 0x1c000000, 0x100, 0x0, 0xffffff60, 0x5, 0x65d, 0xe14, 0x80000000, 0x7fff, 0x5325, 0xb3, 0x5, 0x4, 0xffff]}], [@TCA_POLICE_PEAKRATE={0x404, 0x3, [0x9, 0xdd1, 0x7, 0x5, 0x0, 0xfffff801, 0x180, 0x101, 0x40000000, 0x10000, 0x3, 0xc3a, 0xc138, 0x800, 0x6, 0x0, 0x7, 0x8, 0x80, 0x3, 0x8, 0x0, 0x0, 0x8db, 0x543, 0x4, 0x20, 0x40, 0x4, 0x53e, 0x8000, 0x1, 0x2, 0xffff, 0x4, 0xcb, 0x80, 0x4f2, 0x0, 0x7fffffff, 0x2, 0x3, 0xffffffff, 0x5, 0x4, 0x80000000, 0x0, 0x4, 0x2, 0xfffffffb, 0x8, 0xe3, 0x27b, 0x1, 0x7453, 0x8, 0x7f, 0x1, 0xddd, 0x8, 0x6, 0x9, 0xfffffffe, 0x6, 0x15, 0x3, 0x400, 0x1000, 0xea, 0x2, 0x5, 0xffffdcd9, 0xe9, 0x4, 0x0, 0x3, 0x1ff, 0x8, 0x8, 0x2, 0xff, 0x0, 0x5, 0x7, 0x5e5, 0x2, 0xc1ff, 0xffff7fff, 0x7fffffff, 0x3ff, 0x6, 0x6, 0x7fffffff, 0x7ff, 0x8cde, 0xffff8b45, 0x3ff, 0x101, 0x1, 0x8, 0x3, 0x7, 0x5, 0x20, 0x3, 0xd6, 0xfff, 0x3, 0xff, 0x7, 0x0, 0xd78, 0x3f, 0x0, 0x9, 0x5, 0x9, 0x1, 0x6, 0x4, 0x6, 0x0, 0x1, 0x5, 0x1, 0x0, 0x101, 0x7ff, 0x0, 0x2, 0x0, 0x4, 0x3, 0xfffffff7, 0x4261, 0x76, 0x2, 0xd13, 0x1, 0x65, 0x5, 0x7, 0x40, 0x9, 0x5, 0x2, 0x7, 0x3, 0xd1d8, 0x1, 0x4, 0x8, 0x5, 0x0, 0xffff, 0x0, 0xfffffbff, 0x5, 0x8, 0x4, 0x0, 0x62f, 0x1, 0x3, 0x7ff, 0x400, 0x6, 0xfffffffe, 0x8, 0x8, 0x0, 0x1, 0x9, 0x0, 0x7, 0x1, 0x81, 0x101, 0x1, 0x4, 0xde, 0x6, 0x400000, 0x8000, 0x6, 0x6119, 0x2aa, 0x0, 0x4cc1, 0x449b3b14, 0x0, 0xcbb, 0x2, 0xcdca, 0x800, 0x5, 0x1, 0x3, 0x39b, 0x80, 0x1, 0x1, 0x7, 0x3, 0x3, 0xa80e, 0xffffffff, 0x1, 0x0, 0x6, 0x2, 0x6, 0x6, 0x0, 0x5, 0x7fffffff, 0x9f6, 0x7ff, 0x0, 0x5, 0x7fff, 0x3ff, 0xfff, 0x186, 0x4, 0x7, 0x1, 0x22, 0x7ee, 0x676, 0x401, 0x2020, 0x2, 0xffff, 0x7, 0x6, 0x1, 0xe797, 0x7, 0xfffff000, 0x0, 0x3f, 0xfffffff9, 0x2fec, 0x7, 0x8, 0x0, 0xb8, 0x5, 0x9, 0x2, 0x5, 0xfff, 0x9, 0x6, 0x58]}, @TCA_POLICE_PEAKRATE={0x404, 0x3, [0xffffffff, 0x7, 0xfffff801, 0x5, 0x8, 0x8, 0xde3, 0x40, 0x3, 0xfffff687, 0x7, 0x5, 0x81, 0x8, 0xfffffffb, 0x7, 0xff, 0xffffffff, 0x10000, 0xffffffff, 0x7fff, 0x9, 0x3, 0x0, 0x400, 0xedf6, 0xfffff3d2, 0x6, 0x6, 0x7, 0xffffffff, 0x20, 0x9, 0x1, 0x81, 0x8, 0x0, 0x0, 0x0, 0x3, 0x7, 0x4, 0xb25, 0x80, 0xd18, 0xff, 0x10000, 0xffff, 0xd8d, 0x5, 0x8, 0x9, 0x4, 0x101, 0x3, 0xffffffff, 0x81, 0x3, 0x8, 0x82, 0x7, 0x2, 0x2, 0x87, 0x7, 0x38000000, 0x101, 0xfff, 0x20, 0x2, 0xffffffff, 0xffffffff, 0x1, 0x7, 0xfffffffe, 0x2, 0x7fffffff, 0xfffffff8, 0x101, 0x9, 0x478, 0x6, 0x0, 0x3ff, 0x400, 0xfe, 0xffffffff, 0x0, 0xfff, 0x71, 0x4, 0x7, 0x0, 0x7, 0xc77d, 0x5, 0x5, 0x7, 0xffffffff, 0x4, 0x6, 0x3db1, 0x7fff, 0x7fffffff, 0x7, 0x400, 0x73, 0x80000000, 0x2, 0x8, 0x8, 0x0, 0x1, 0x3ff, 0x5, 0x80, 0x1, 0x4, 0xfffffeff, 0x29ceac62, 0xfffffffa, 0xd1, 0x20, 0x9, 0x1, 0x1, 0x2, 0xd844, 0x1, 0x4, 0x8, 0x57, 0x3ff, 0x5, 0xb79c, 0x0, 0xffffff81, 0x0, 0x4, 0x80000001, 0x80000001, 0xe7, 0xfffffffb, 0x2, 0x5, 0x99b, 0x5, 0x2, 0xffffffff, 0x6, 0x1, 0x6, 0x6, 0x7, 0x1, 0x5, 0x2, 0x8001, 0x20df, 0x40, 0x1, 0xffff0000, 0x80000000, 0x824c, 0x7, 0x9, 0x2, 0x6, 0x3f, 0x8000, 0x8, 0x3, 0x7, 0x5, 0xac2, 0x4, 0x9, 0x2, 0x6, 0xfdb, 0x8000, 0xa175, 0xc12e, 0x0, 0x3ff, 0xacf, 0x5, 0x3ff, 0x8, 0xcc, 0x8000, 0x9, 0x1, 0x8, 0x0, 0x80000001, 0x1, 0x4, 0x4, 0x6, 0x1, 0x2, 0x3, 0x800, 0x2, 0x7, 0x6, 0x3, 0xfffff0d4, 0x800, 0xfffffffe, 0xfffffffe, 0x800, 0x9, 0x80, 0x40, 0x2, 0x5, 0x1, 0x9, 0x5, 0x1, 0x6, 0xcbe, 0xffff, 0x192, 0x8f5, 0x6, 0xb7, 0x20, 0x6, 0xfff, 0x4, 0x1ff, 0xfff, 0x7, 0x3, 0x7fff, 0x1f, 0x1, 0x8, 0x917, 0x2, 0x4, 0x9, 0x1f, 0x10000, 0x85, 0x0, 0x2, 0x7f, 0x7, 0x78c00000, 0x6, 0xfff, 0x2]}], [@TCA_POLICE_RATE64={0xc, 0x8, 0x8}, @TCA_POLICE_PEAKRATE={0x404, 0x3, [0x3, 0x6, 0x7, 0x0, 0x4, 0x80000000, 0x2, 0x4, 0x8001, 0x9, 0x5, 0x3a102d02, 0x0, 0x6, 0xb9, 0x73, 0x200, 0x5, 0x20, 0x88, 0xffff, 0x8, 0x1, 0x40, 0x9, 0x8, 0xd8ef, 0x3c4, 0x1, 0xffff, 0x10001, 0x2, 0x7, 0xffff, 0x6, 0x5, 0x0, 0x200, 0x90f, 0x1, 0x2, 0x4, 0x38, 0x7, 0x3, 0x3f, 0x0, 0x8, 0x10000, 0x1, 0x1, 0x2, 0x10000, 0xe9, 0x101, 0x17, 0x3, 0x6, 0x7, 0x1, 0x8, 0x9, 0x2, 0x3, 0x1, 0x7, 0x5, 0x4, 0x81, 0xe61, 0x9, 0xffffff60, 0x2ca4, 0x400, 0x3, 0x6, 0x80, 0xfffffffd, 0x7, 0x3000000, 0x6, 0x5, 0xd, 0x80000001, 0x7, 0x30215e45, 0xb6e, 0x8, 0x9, 0x100, 0x5, 0x2, 0x8001, 0x400, 0x10001, 0x1, 0x2, 0x4, 0x3, 0x5, 0xfffffffc, 0x1, 0xffffcea8, 0xc89, 0x4, 0x1, 0x82, 0x80000000, 0x101, 0xce, 0x5, 0x6, 0x8000, 0x7, 0x2, 0xffff, 0x5, 0x8000, 0x3ffd361d, 0x4, 0x8, 0x0, 0x200, 0x3ff0000, 0x6, 0x7, 0xfffffc01, 0x1000, 0x8000, 0xffffffff, 0x24dd, 0x81, 0x1f, 0xd51e, 0xcc, 0x2, 0x1, 0x81, 0x76, 0x5, 0x2, 0x5, 0xfff, 0x1, 0xd5db, 0x6, 0x3ff, 0x5, 0x8, 0x3ff, 0x4, 0x9, 0x5, 0x9, 0x8, 0x10000, 0x0, 0x7f, 0x0, 0x4, 0x2, 0x7, 0x9, 0x9, 0x0, 0x6, 0x5, 0x8, 0x57, 0x8, 0x5, 0xfff, 0x20, 0x4, 0x400, 0x81, 0x7fff, 0x1, 0x8d93, 0xfffff001, 0x7, 0x3, 0xfffff800, 0x800, 0xfff, 0xffffffff, 0x3, 0x2, 0x10001, 0x5, 0x6, 0x800, 0x26f, 0xfffffff9, 0x4, 0x100, 0x1, 0x4, 0x6, 0x3f, 0x356, 0x4, 0x100, 0x7, 0x9, 0x6, 0x8, 0xffffffff, 0xfff, 0x5, 0xf9b0, 0x6, 0x5, 0x7, 0x1, 0xd3, 0x7, 0x4b, 0x9, 0x1, 0x2, 0x8, 0x30de, 0x80000001, 0x80, 0x4, 0x7, 0x8001, 0x4, 0x20, 0x7, 0xfffff000, 0x10001, 0x4, 0x9, 0x3f, 0x100, 0x1, 0x7fad, 0x43, 0x2, 0xfff, 0x80, 0x7, 0x2, 0x323, 0x3, 0x8579, 0xfffffe02, 0xeca, 0xfffffffc, 0x40, 0xc874, 0x200, 0x7, 0x564d]}]]}, {0x2c, 0x6, "57d66643ccf3f33d8803622b2a2e5998cec4c3ff25dd5e6c45581a8421d1f9d14b3b29eb26a2a2e5"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x3}}}}, @m_tunnel_key={0x110, 0x1a, 0x0, 0x0, {{0xf}, {0x3c, 0x2, 0x0, 0x1, [@TCA_TUNNEL_KEY_PARMS={0x1c, 0x2, {{0xf9f, 0x3, 0x10000000, 0x3f, 0x400}, 0x1}}, @TCA_TUNNEL_KEY_PARMS={0x1c, 0x2, {{0x0, 0x6, 0x7, 0x3ff, 0x3}, 0x1}}]}, {0xa8, 0x6, "0abd7855246fb7f082fe6b57b8b3169f5eac835eb56c5b0d9efa7eeb1278a5b1fb9883828595142ccdca21b11d41844644f0d68f6cddb14606fe1c8dad4146b1b2f906dcb995ed0b0af0ba636e7184ab703e413b8acb839ddec86ede3817a4cdc928750d696bcf20afc2dbfcb8d8d7ddb9994e8f0ec135f00da151c3069181328fbb7a2fc3dd1c308141b89c4cfce2b2a12059aaa095cd15d56124306b78750a71fb77f6"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x3, 0x2}}}}, @m_sample={0x110, 0x18, 0x0, 0x0, {{0xb}, {0x6c, 0x2, 0x0, 0x1, [@TCA_SAMPLE_TRUNC_SIZE={0x8, 0x4, 0x2}, @TCA_SAMPLE_PARMS={0x18, 0x2, {0x1000, 0x4, 0x0, 0x4, 0x9}}, @TCA_SAMPLE_PARMS={0x18, 0x2, {0x1f, 0x8, 0x4, 0x8, 0x3}}, @TCA_SAMPLE_PSAMPLE_GROUP={0x8, 0x5, 0x3}, @TCA_SAMPLE_PARMS={0x18, 0x2, {0xffffffe0, 0x0, 0x4, 0x5, 0xe9}}, @TCA_SAMPLE_RATE={0x8, 0x3, 0x61}, @TCA_SAMPLE_PSAMPLE_GROUP={0x8, 0x5, 0x1}]}, {0x79, 0x6, "edbf34d1c555f6ebc1777a65236b826ffce6cf2c764fa70003c03b23d8036ed8665f8bb83d8043a3eaa563648d70fa1584df07f7bd447d8dbc7a4aca6c1509c740b49fb2162a440316083187a9a5d1921db7c8452e24e310b423fdaf32e68bc9571e2ea6d1fee51ad7a6c5a00242052b819c590cb3"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x0, 0x1}}}}]}, {0x371c, 0x1, [@m_simple={0x138, 0x1c, 0x0, 0x0, {{0xb}, {0x34, 0x2, 0x0, 0x1, [@TCA_DEF_PARMS={0x18, 0x2, {0x81, 0x4, 0x4, 0x8, 0x8a44}}, @TCA_DEF_DATA={0x9, 0x3, '\xaa\xaa\xaa\xaa\xaa'}, @TCA_DEF_DATA={0xb, 0x3, '%$]+{d\x00'}]}, {0xdc, 0x6, "11131507d6b1dbd8767ad3b9c2c1117c3f69c148bd889c206b720bef2e940ee68dd72a177d399f85a2f8eb2b8b8a786c954a6dfad91a8fc6900ef764ba3eeff459fb9b44bea86d179aa630813cd67f0489e7db7bf2d06b21411c83fc94a4ff8b2e3fb6812683020214d2306f032088aef073544a6d1274296f70e526a67e46c9b0d9dc980b199eb6ab7919fa2b5fa9d6c2d471f555afc478f63923ed1d1245324522b32f38f4330d5bd0d96e85a9cf0895708b1fd6f7a1c95606dc2f882785b2205c008a5fd17b016338d5eb6db80ee16945d09f10b927bb"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x0, 0x1}}}}, @m_ife={0x1050, 0x8, 0x0, 0x0, {{0x8}, {0x28, 0x2, 0x0, 0x1, [@TCA_IFE_PARMS={0x1c, 0x1, {{0x21a5, 0xd9ce, 0x3, 0x1, 0xbf}}}, @TCA_IFE_TYPE={0x6, 0x5, 0x200}]}, {0x1004, 0x6, "02c00816bb9cf782f358be6274e88d1a8c59f19415f3a0ea6c21d02667ff63a6c7e989a7dbeb4205eb9ad3a43d31ba6216f223da048dcdf8cc67cbb0f43678efd40702345916747067eeb96dd895e425553f129df52646cc7014ff700e87771c0b04d138aba24cc16837d583c5a9dafcd5401aab618fd2efc06c7d9c4dfdfb4d10708c85afedd21e9ea213c97cc933e60ece225dac0a95664359afbd465d455882677cbc6b9e28b8100b71a253be523c467deafcff44d98ab720fd0049f3ab1305153095e7a93058ba385507cb9895aee02f2d44d67846dc4a50acc96aecb5f7e9a737bf13825d009e83f8d57e1f53cfec3ec9c3118d1daf65015a32ea79ba40180e52de83023ac54c29b0aca53c0aab15148157b2cbe13880f2b423e991e49b1919bd8774ee05b4ff74f781013f76dd7a80ac4bb8582aabc633585b415e9d2d6d0620b8e9ea1ba522e3e505507ad970da00928cacc5acbedd61c7d4fc9f25f31cbafa508de97f4168b5d2a7de25221d4d8c41a8b7b02c349de42aa5eee7eaf67fd2d5bfabedbe11a54193019f5012ce7d7f73ad0d5ede4573e80f253ea538a4cc3474a1a376bb6e43dc64c95bfc09be727c92db664261fd2905602066cbb48b5f349bfc413289fb3de758f234564f7ced749bd964ef3fa1e4da0e4da894ee9b8b10b854c98998a2ddd4b07e446c4feecdd514efcdf4eca3d13e94b1fc39c977ad358cfa0aa490347c0f59238f66c9e614dbd018406ff746c347f90711d912e21c4caee5b38a02c7069d26cb92c3ae0584bccca5fe0223c6069a3105a7d46ae92ef0282797cc45e70980f4dfb984643ea4e7beb8e81a21d09db58117e2bae6db31e3164e29a348a0169cc43cbc8abab14d0e4e10442ed3ec6338db3aa741cbe906d7341d93fab517cf708868d7a84901e8a3add94d78e58a7971f28737173fe7d580b3cdc381ce45342c55e8ba22cb8ee3ded269c7ea422c83424d7250d21915c344b53e7eb303c935ff8825c940c88acc7ae0fc8c14214968bb84a6ef30a35fec79f94ac7370edd43f7a38b16db7bfd6aae6d655f5eefdbfc8d92f7dc89c5d1554991808ef6adfcae42e0e7704f7610f597328b3ee32f48547910a2173a79cffc4471b7c271c7b27f194ec49fa687f3124990855dfa674c18b36691b747bb98adbc7be0275b03c24aff6fb025faa35728f7b43ab4b47cabe864b3de5973c47d4df7c641bb22df6dfa4d612654ec65fbf0b33ac9190adcc992cabfadcea125d4cb0a95c3fe4ae2d2605bbadd7a1d1e4569b222ed76bea57c4b28ccc9c674d5b708095b96c4691d086e5e76420110881ae7680c60927040aca7fb015288df16e848de2f5f53472cabe156ea2b9872f066a204ec6ceeaae8a0ae5fa4760db437475da13a8bea4a26c78bfbbc23f602fe21df602607a9a57d81c6521de1304f7f4731de4f11db1acd33b76056edf4e548374ee824f8c2eff3d7010e6247b225dbd644909474bdc8df6d30ad6b44f866b66743971dd5a70112ac8c8e67f6588e421303ca9e590ef59c4421c831aafd0636886dc1ab49d513ffd401deb06ceaee71508db4f2bede45e9f8bb41874244225ad9581e1007b0b369a3b4f35472ff66ce82479f98ed531bd1e266b89651717ca6aa9098b093c62111e96d926062b1e5074d3692dabababba5affd3f07854e2bb37a9fc6c243b1e539babdf07558fde8ecbafefeb63504db1056486b38bedd429163f697ee748d27338fe4bc90916c645bf63ed6217f66a4c1b71136c77c1f56b520ea0a7b8704d0d59f397d83f43b36ead4a2932dea8977ebb1ae1c3ad704fcdd6325034816fc1d46517504d3a7c00dfa0b7b0326a3abc6b928d68a342c887bb0a751258d2188df124828b4545b759cc6a3e13de2e50db5df55a32f197dd2d48bacc1712ffdb8fed199d2b3bf0d34c2d88bd2ff42393f8210ad17e1c521bb60ff66e8bf3f31a20e8d3d71cbe49f7dbdf1571dc9d6d2787866e8bd02b7f4198759e0cbd724f5e7bb67ea96cc494e992d1553660c78d8efcae45be8dd43855c543c2f44ebcd8f6f36678d13b01d60f913a8007265077e65915233071f16c94562e3dd6d38c7cf40e0a4a2210819065f03175c6e8c5becbe70fa94ea9e990aaf8baac5a960c4973e0c210ddfdd008df0f50ebe2945a13ff121d844fdafbf8505c451d13caef3c05bc92493adaf6fc2b71ae5264155639c5e28c927a75f306b19b0749d0f6870154d936767887b0141e0bfc20d498bb0776caea79e44e5d84b5e74bea50307448b8a8a37a6a8c0114acd511bbd8b10820a18853189f928a0b4f37dfa2673f7f70429335911bc79297847963744f67c34fdf9817bbdebdd10dd05342535ee3b9f7dd48b25f27724f910835b9b5daa693133eb840089b2c7774755cfb6821512554eebee9fe53999492d74cea5c9e336a9abd4582f22cf9bf2618354ec011e836cb832ce3507265c91163014e42a7c05261beb11c30a5bb85a8b8305ada7f51f20220ecf5967274b004aefb6d8e158841b7e53e3bc1e4ce7634eb9a370ad84ec8952252adc96347308bc6df27e4fd0f2e4f89b6c206dfee56d4c05497edbbe30c9f0c391b7ade438f19dd075a7b27331e8d6ba0f4b789e4ff7209896dfad18c513b447414ee01bc7d914814848603831f2ce03763ce5c2e3981547aab541c1d4277f285ed7a78ecdcf61c1ee88762a9a9aa3cbe25c309cf1a6b1f3f73e8869849ebcdd0ccaa3723f38867accd70672d120ad33b4e1c82291a2cbe50e085cceda67ea32bd1dd23c72d5ac0a2d5b8882574c94d0fb9cb6c7ffba058e73358e8823674cba6196a1eeb33a701f74ab0acaf455e53098b7f20ade50aa9e8af4b002a1fb0ed653fc59d7a406f3b8985914b46df70fecf22b42446ad05d9f2ce61dcc25138bb5ba71cfce6a485c6161a4e2128b6aeee3775de4b54b3c4d1f50cfec8797c224d9400e427518eccd4f1ca6ed68191c8761bd26a24b7e43a0297a3b511338c926e3db1c2b569edde816a65409f3b90504d620864b90db4ddfd9d21a840f2cf14e972809e99531a650302cd1f797247185a7f1867e07bf38e911368b98de9aafe7373249e4ab9d328770b605871319fb0a6b84aa0e894b8a97fa3871db0eb65cab376a5a898933dc6f1d00cc946d51e48070644717fbdd26c8290454cf7f795c75c82a0d5930f078019bc5b72c0bbd2161ce351f817eff9140a545a99a456a722a70558a2f1703efd30639e79f1a34d5e793d6dcaf214eeb5cc36e1b6e2709bce3fe8bd865db8e97442c45f5c95476d1e8e3e4dd416ac1cccbb04e63c2657f449cbd187f844047616d61047b4cf2aeb2ad369c4a6afacfa46fd2fdc49b0c883c2b57bb244ded4cc93257015b93d52fb61d0a9ff96913b9ed978c8653d9f57c0b2a2eb2b6babe9898bbd15722ea77f3258dbab79508cf037eac99ae088f27601534175f9e6bb6f85c095fb9e9ffcac67169f783abe834a3becb1d50641d4d26ce434cb965c6d6625f0cdf4299aa0c0185602174501c6d2249231ad2428d6994d00ddf470bd5e4cb3ee8b6b27b7e691a1d2758245aaa4ad6a16cf9da4d20b0a979fe6e98d991c1b7850b0c7c4b1c6b6617a5de521eacc0b9ced4e20f95b67a821e07a5b1a91821f7fbf6891ef79dc6739e8cdf9b429f64969325b861d47eedbcc28b497a85ccf5a532eb405c582db7bb657535750b896391f100f756b57eeeedbc890132f6220e01c35c082c1278090397281d82fd69b7bda9685f3d1f27b9e9ba6cd87b6fc8d35b164ff930696665606befa18c966b06fbe6b80ca143aa823918fecdc9fa0b21bbd0cdc83f9c70a944e876f13d01eae9f99985839a0afc3793ed554514ae0286128bd471725957d7522aa563d205f5a1234238dffac7a8d7fe4f1c882b5ee64e13727950ebc9d9b2da1977fe65c512951db4501f424b59191802555aa20906487c5d1223ff62603aacb3e58319a662dd4b4e80447e5859d3c8114f1039dca8e09d29ebd5afa302075e028e6becc8a4f548bf25fadeed771722e966b7ecf47390dd982feb708edf3b0e1e90c169fc03cc86e5d730eaf69e9829e6d6cabfa4228c5265f839def6cfb2c3d54f5fdde11770fa5d86cb249b3982c5e696b4f6e7d9f74f02d5ae5407749e8bd19e50b5bdd98a9f27c79d5cf3cfe6a9fd28072011d7b2686848bd87ed355835e74e9b1833f5dac52ba3cb8ddaa8f8e5704032168aee36b22cf087df2ee02beeb0f7f43f7dc2bc73aa185bc54b4fd4e27c59571a8dc48d39de139001e53e9cfd8b09d41d332de9ccbf0b28587bf13ac70f31d79dd17c0bf1261409084115208b82f9d8068a3ea906477b63871caf8709efff9fe8df7cc53c582ec2dd29655a582833c4615649cb29c043bd173c0d97d86be1d577c2ad6f343176d7755d56913549428a12973e4a3149910938913f88b50c8c289afbbdbb5291f1547c066204b0cec528e96c65db5a274807cf947052d0ca7a0108f6030e6cf0e7a4c3c161ad2052c531f7954c6f8b75bb3782d2f43060161b18d682b27ebc8b6723f68aaa8b4b1e329d12aa7468a468609e7205db2315bee881913a42f69e2233d0de06e3ac900e8ec2308042ace01b8b2ea607e7c9e65a88736307511dd2c3a349c52cb0b03fd11ee5ee8693bf74f1eab4d4ab6777b4fb58d2ce2855e9ba9a884ac4c92536223e006ed888ba75a576aaae130578a80de0c70e8708105135dbb9eebddff401b1ae53d1a5dd80a00775382889850163a974b15e2247a45c3da2112f87f1efe8b1506a479b8a57cb248451b922cf766f948aa4e49419dfbba8446c906b99cceb3c9a8fa5cffdd8080ad2d570acd5d92a16ffdffe04924d020445fcf7abd19ccf545f3666caadec4cce91ebc5913ad983978609b2256a252907ba602bc5610d034ef0d88414da4f386494bc511a9422d47121e9f2423536c6ce9da13e9542b89ef8651dc563a9ab3c5424ed586b1788a89327c384aa097891afb5c9df351ba5739a84ab3e303d92f0449a60ff3c94125aae68d93ff6c539fb28bcae72a20a049c5e03967006c4031a145d6616256cc20aa6627017f9c7be6da295fe89ddf330675904d4068b49c484fb4d377f390cb3d67e0b066e5f696bba7f1b053a0dc822feefb349ce924f31711c49ca69aa792bb6f7e2270818179548f2388d59fa38ef02f28e62aa6ed2c2e60323a7f4ad1b21d5db3b3a78854cc315613895b3991230315349c340544d5d76c348031434b969743b3635ad29771c207e45686123e8cc0ecdd9111c4a64b4577399c399bc04eac210db197280d195a1ca56e838577d99d2a33649d35fa81090ee16a571d305948969736626bc66b8172d3cc8b11acdc4a9fb5858ba19f77803066aed4cb12a4b0589b59d81c1e2bc4f7cacbd5789e71f5d78e106ece96a2edd64885b21787d2d1a5a468427ab48bba13c482d441d081853183425a0973b749e882dc4a590c4bd17c1e278380edd6797489e96fcaceabdf3a89cf0f5f4f228dfac69d0d9e6753fd6f9478618f7e739eb0ba5948f33d0af4df5f751ff90d38d3bbf9de7a15e73e1fde2b99ce9b27f23f8c2bc1164d3a11cd3842f0ddf5505eccb8a99601e399a75daa604a8e688f9aa9b19d4778b0523a11ac4a57dd138804341a5cffe8b309a58609971bda535291f5c9ce02a2f3289f0265da081e97058da9f73a0c6950e31a7afd282354e65acab15d6ea0e504370d4e9e8a0d930d3a8b387a818025aebf3515b2f040b7e243f217fbd6696b2aebf2d"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x3, 0x2}}}}, @m_vlan={0x110, 0xc, 0x0, 0x0, {{0x9}, {0x2c, 0x2, 0x0, 0x1, [@TCA_VLAN_PUSH_VLAN_PRIORITY={0x5}, @TCA_VLAN_PUSH_VLAN_ID={0x6, 0x3, 0x640}, @TCA_VLAN_PUSH_VLAN_PRIORITY={0x5, 0x6, 0x7}, @TCA_VLAN_PUSH_VLAN_ID={0x6, 0x3, 0x329}, @TCA_VLAN_PUSH_VLAN_PROTOCOL={0x6, 0x4, 0x8100}]}, {0xbc, 0x6, "8ddcfb024e4971bbb9fbf5da56b0660f4ac74e402fd0be27c4958fda3a01b7c0283376041e45f93c4b7187789ade8b9d6d48c0c06be690d46ee75b99648ef0d33b36b96ac7e4e43e220431da98fcebae96e8cec9367a3228f9c3209c4aeefb1b2b78f80f228043d4d74a535ecb6297180635336e3cd7085360a73f63fbf996c3899cc3236e5edafe430aace40f1f1e4e02a8f0c931cc107a2543b7021e34412155e2d996941880ff53b798813e750fd5ba83f0b1e577cc71"}, {0xc, 0x7, {0x0, 0x1}}, {0xc, 0x8, {0x2}}}}, @m_police={0x2480, 0x19, 0x0, 0x0, {{0xb}, {0x1454, 0x2, 0x0, 0x1, [[@TCA_POLICE_PEAKRATE64={0xc, 0x9, 0x8}], [@TCA_POLICE_AVRATE={0x8}, @TCA_POLICE_PEAKRATE={0x404, 0x3, [0x6, 0xffffffff, 0x1000, 0x3f, 0x3, 0x10260, 0xfffffff7, 0x0, 0x5, 0x9, 0x2, 0x5, 0x1d, 0xad6, 0x8, 0x0, 0x11, 0x6, 0x1, 0x100, 0x2, 0x6, 0x1f, 0x1, 0x800, 0x6fac3282, 0x5, 0x3, 0x3, 0x5a, 0x4, 0x64, 0x800, 0xff, 0x6, 0x8f, 0x5, 0x80000000, 0x4, 0x40, 0x200, 0x5, 0x6, 0x200, 0x4, 0xfffffffe, 0x9, 0x2, 0x5, 0x401, 0x8, 0x8, 0x0, 0x6, 0xaac4, 0xe393, 0x7f, 0xa1, 0x0, 0xbab, 0x7f, 0x9, 0x8001, 0x10001, 0x20, 0x4, 0x10000, 0x1, 0x5, 0xfff, 0x7, 0x3, 0x9, 0x3, 0x1, 0x7, 0x2, 0x2, 0x101, 0xff, 0x3b, 0x100, 0x3ec7, 0xffffffff, 0x0, 0x200, 0xfffffff9, 0x3, 0x0, 0x9, 0x101, 0x8, 0x4, 0xffffffc4, 0x3, 0x3, 0x1ff, 0x1000, 0x13, 0x9, 0x7ff, 0x7, 0x4, 0x4, 0x4b0, 0x4, 0x3, 0x9, 0x2, 0x3, 0x81, 0x800, 0x1f, 0x5, 0x38eb, 0x8f, 0x1ff, 0x5c, 0x8000800, 0x887d, 0x7fffffff, 0x5, 0x425b, 0x89, 0x5, 0x1, 0x9, 0xffffffff, 0x7, 0x68, 0xe58, 0x5d73, 0x2, 0x401, 0x9, 0x1, 0x10001, 0xfb2, 0x101, 0x80000001, 0xff, 0x0, 0x8, 0xff, 0x8, 0xffff, 0x7fffffff, 0xfe, 0x1f, 0x3d6, 0x2, 0x0, 0x7fffffff, 0x7ff, 0x6, 0x4, 0x7ff, 0x4, 0x7, 0xffffff49, 0xffff8001, 0x5, 0xa388, 0x2, 0x7, 0x0, 0x1, 0x61, 0x1, 0x6, 0x7, 0x0, 0x3, 0x4, 0x9, 0x1, 0x9, 0x3f, 0x6, 0x8, 0x3, 0x8, 0x1f, 0x101, 0x6, 0x5, 0x4, 0x0, 0x2, 0x0, 0x5, 0x6, 0x3, 0xfb, 0x8000, 0x401, 0x7, 0x80000000, 0x559, 0xb75, 0x400, 0x9, 0x1, 0xfbb, 0x3ff, 0x200, 0x1, 0xff, 0x2, 0x77, 0x6, 0x9, 0x4, 0x1f, 0x9d9d, 0x2, 0x3, 0x2, 0x0, 0x2, 0x2, 0xffff8000, 0x5, 0xadf, 0x0, 0xb0ab, 0x80000001, 0x200, 0x46, 0xfff, 0x7, 0x9, 0x0, 0x7, 0xfff, 0x8, 0x10001, 0x3, 0x7ff8, 0x7f, 0x5, 0x92bd, 0x9dd2, 0x3d4d, 0x6, 0xc6a, 0xfffffffe, 0x187b, 0x3, 0x5, 0x7, 0x42e, 0x3d81b815, 0x7ff, 0xd570, 0x7]}, @TCA_POLICE_PEAKRATE={0x404, 0x3, [0x4, 0x8, 0x8, 0x8, 0x7ff, 0x8001, 0x401, 0x6, 0x100, 0x1, 0x6, 0x0, 0x0, 0x767f, 0x20, 0xf23, 0x4, 0x4, 0x10001, 0x6ea3, 0xffff, 0x3, 0xff, 0xf23, 0x0, 0x6ed3, 0x5, 0x7, 0xc9, 0x60000000, 0x1, 0x10001, 0x0, 0x80000, 0x63fd2603, 0x6, 0x885e, 0x3, 0x1, 0x5, 0x8, 0x0, 0x5, 0x16c, 0x0, 0x40, 0x9, 0x2, 0x6, 0x1, 0x5, 0x5, 0x3f, 0x200, 0x4, 0x5, 0x0, 0x81, 0x2, 0x6, 0x0, 0x6, 0x2fc5, 0x1, 0x6, 0x1, 0x43, 0x4, 0x2, 0x6, 0x3, 0x5, 0x2, 0x3, 0x8001, 0x9, 0x10001, 0x30e07375, 0x1, 0x657, 0x0, 0xd5, 0x8, 0x2, 0x7, 0x7b6, 0x2, 0x400, 0xfffffffc, 0x8001, 0xffffffff, 0x20, 0x0, 0x1, 0x80, 0x1, 0x8, 0x101, 0x3, 0x1, 0x359e, 0x30cba8c8, 0x0, 0x0, 0x80000000, 0xf9d, 0x9, 0x2, 0x2, 0x7, 0x2, 0x81, 0x100, 0x7, 0x4, 0x0, 0x3f, 0x7, 0x7, 0x5, 0xfffff000, 0x2, 0xfff, 0x4, 0x5, 0x3, 0x6, 0x107, 0x0, 0x0, 0x3, 0x10040000, 0x40, 0xffffff00, 0x10000, 0x0, 0x4, 0x3, 0x7f, 0x80000000, 0x4, 0x39f, 0x6, 0x0, 0x3, 0x7fff, 0x7fff, 0x80, 0x6f, 0x8, 0x1, 0x7, 0x40, 0x795, 0x3, 0x40, 0x2, 0xca, 0x63, 0x62, 0x6, 0x87, 0x80000000, 0x9, 0xffffff80, 0x9, 0x9, 0x8, 0x1ff, 0x0, 0x8, 0x4, 0x8, 0x2, 0xed, 0x7f, 0x4, 0x6, 0x0, 0x5, 0xffffffff, 0x1, 0xc, 0x7fff, 0x7, 0x6, 0x3, 0x1000, 0x0, 0xdda, 0x3, 0x2, 0x1ff, 0x7, 0x6, 0x80000000, 0x40, 0x2, 0x95a, 0x101, 0x3, 0x3, 0x2, 0x8, 0x7, 0x7ff, 0x2, 0xdf1c, 0x80000000, 0x2, 0x3, 0x10001, 0x5, 0x8, 0x2, 0x20, 0xda0, 0x4, 0x2, 0x6, 0x9, 0x7, 0x299, 0x1, 0xb6b7, 0x8db, 0x0, 0xf03, 0x7, 0x8001, 0x8001, 0x100, 0x13, 0x9d5, 0x6, 0xcd018a5b, 0x6, 0x800, 0x10000, 0x3, 0x9, 0x8000, 0x3, 0x66a, 0x80, 0x4, 0x2, 0x0, 0x9, 0x0, 0x7, 0xfff, 0x81, 0x5, 0xffffffff, 0x6]}, @TCA_POLICE_PEAKRATE={0x404, 0x3, [0x8, 0x10000, 0x80, 0x2, 0x2, 0x9ef9, 0x0, 0x1, 0x4, 0x2, 0x3, 0x8, 0x4, 0x872, 0x10000, 0x2, 0x9, 0x9, 0x200, 0x2, 0x7f, 0x1, 0xff3f, 0x2, 0x7fff, 0x8, 0x4, 0x80000000, 0x5, 0x2, 0x2, 0x32b9, 0x0, 0x400, 0x3ff, 0x46c20400, 0x2, 0x8, 0x6, 0x7, 0x3ff, 0x80, 0x8, 0x8000, 0xffffb074, 0x9, 0x9, 0x0, 0x8, 0x100000, 0x10001, 0x8, 0x3, 0x401, 0x4, 0x4, 0xfff, 0xcf5, 0x8000, 0x91f, 0xffff, 0x2, 0x4, 0x4, 0x5, 0x4, 0xc2, 0x8000, 0x9, 0x1, 0x4, 0xb2, 0xff, 0x8, 0x7fffffff, 0xfff, 0x7, 0x857, 0xff, 0x7fffffff, 0x100, 0xfffffff7, 0x800, 0x6, 0x23, 0x72fb, 0xfffffff7, 0xfffffffa, 0xdbc, 0x8, 0x8001, 0x5, 0x7, 0x99, 0x8, 0x8b81, 0xb, 0x1, 0x4, 0xfff, 0x0, 0x3ff, 0x0, 0x6, 0x120000, 0x6, 0x0, 0x7, 0x0, 0x120000, 0x0, 0x7d, 0x9, 0x3, 0x3, 0x3f, 0x5, 0x1b4e27f3, 0x80000001, 0x6, 0x0, 0x8, 0x7fffffff, 0x9, 0xfffffff8, 0x8, 0x87e650d8, 0x0, 0xc53e, 0x9, 0x6, 0x9, 0x9, 0x10001, 0x10001, 0x4, 0x4, 0x0, 0x3, 0x1, 0x5, 0xceae, 0x7, 0x0, 0x178, 0x4, 0x25e, 0x6, 0xa3d, 0x1, 0xffffff57, 0x1, 0x1, 0x101, 0x2, 0x1, 0x1, 0x3, 0x100, 0x2, 0xfffff508, 0x98, 0x5, 0x8, 0x2, 0xffffffff, 0x2, 0x4, 0x5, 0x1, 0x1f, 0x40, 0x7, 0xfffffffb, 0x0, 0x1000, 0x6, 0x8001, 0x46, 0x4, 0x8, 0x2, 0x5, 0x0, 0x81, 0x7, 0x7, 0x3, 0x81, 0x7ff, 0x401, 0x3ff, 0xfa81, 0x1f, 0xd7, 0x0, 0x83a, 0x9, 0x7, 0x7fff, 0x87d, 0x3bf3f110, 0x6, 0x4, 0x7fffffff, 0x1, 0xc3, 0x0, 0x0, 0x800, 0xffffff81, 0x7fff, 0xf7, 0x3f, 0x3, 0x0, 0x1000, 0x5, 0xf1d, 0x9, 0x81, 0x3, 0x101, 0x6, 0x9, 0x20, 0xfffff80c, 0x6, 0x7, 0xffffffff, 0x80000000, 0x8, 0x32b1140b, 0x379, 0x383003b0, 0x0, 0xfffffffc, 0x6, 0x7f, 0x2, 0x5, 0x6, 0x7ff, 0x7ff, 0x4, 0x1, 0x4, 0xffffffff, 0x10001, 0x8, 0xfffffffd, 0xfff, 0xfffffffb, 0x100, 0xffffffc1]}], [@TCA_POLICE_AVRATE={0x8, 0x4, 0x8}, @TCA_POLICE_RATE={0x404, 0x2, [0x9, 0xffff, 0x2, 0xfffffff7, 0x0, 0x22d3, 0x6, 0x9, 0x6, 0x3f, 0xfffffffd, 0x400, 0x3, 0x0, 0x5, 0xffffff03, 0x2, 0x1, 0x80000000, 0x7ee, 0x7c0, 0x800, 0x66e7, 0x0, 0x3f, 0x3, 0xfffffef9, 0x97, 0x80000000, 0x0, 0x4, 0x8, 0x6, 0x7, 0x9, 0x9, 0x80, 0x1f, 0x249, 0xffffffff, 0xfff, 0x0, 0x3f, 0x80000001, 0xffff, 0x9, 0x5, 0xee, 0x401, 0x3f, 0xb54c, 0x7fffffff, 0x0, 0x0, 0x8, 0x80000001, 0x7a, 0x52, 0x60000, 0x78, 0x2, 0x8, 0x3, 0x6, 0xfffffffb, 0x3, 0x8, 0xfff, 0x6, 0x8001, 0x100, 0x3, 0xfffff02a, 0x4, 0x80000001, 0x1, 0x8, 0x1, 0x0, 0x2, 0x5, 0x10001, 0x3, 0x11400000, 0x2, 0x8, 0xfff, 0x10001, 0xfffffff7, 0x5, 0x1, 0x8, 0x0, 0x401, 0x2, 0x5e, 0x7, 0x6, 0x10001, 0x4, 0x3, 0x101, 0x8000, 0x0, 0x7b, 0x81, 0x9, 0x80, 0x7ff, 0x3ac, 0x0, 0x9, 0x2, 0x8, 0x6, 0xc0, 0x98de, 0x40, 0x7, 0x2, 0x7, 0x80000001, 0x0, 0x200, 0x7, 0x6, 0x7fff, 0x5, 0xef09, 0x9, 0x2, 0x5, 0x7ff, 0x1, 0x6, 0xfffffff7, 0x4, 0x2, 0x1, 0xffff, 0xe021, 0xb9b2, 0x8, 0x9, 0x6, 0x1ff, 0x1, 0x0, 0x5, 0xffff, 0x3, 0x600000, 0x36, 0x7, 0x4, 0x3, 0x9, 0x80, 0x1, 0xffff, 0x2, 0x3, 0xe765, 0x4, 0x8, 0x100, 0x7, 0x699c, 0xffff, 0x3, 0x3, 0x0, 0x8, 0x3f, 0x1, 0xfffff801, 0x0, 0x2, 0x798e, 0xffffffff, 0x1, 0x9, 0x46a1, 0x7d4, 0xe5, 0x4, 0x6, 0x3, 0x400, 0x3f, 0x0, 0x1, 0xfffffffa, 0x2165, 0x3, 0x7, 0x401, 0x8, 0x5, 0x0, 0x70000000, 0xfffff800, 0x1, 0x3, 0x7, 0x255, 0x9, 0x8, 0x10001, 0xffff, 0x7, 0x40, 0x2, 0x9, 0x1ff, 0x0, 0x3, 0xfffffda1, 0x7ff, 0x6, 0x8000, 0x1, 0x40, 0xfffffc00, 0x4, 0x1ff, 0x6, 0x8, 0xb8, 0x401, 0x80000000, 0xaf5, 0xfffffc00, 0x7ff, 0x10000, 0x3f, 0x3ff, 0x5, 0x2, 0x100, 0x3, 0x7ff, 0x4, 0xa, 0x0, 0x2, 0x1, 0x8001, 0x2, 0x8, 0x3, 0x5, 0x3f, 0x100, 0x3, 0xdad]}, @TCA_POLICE_RATE64={0xc, 0x8, 0x6}], [@TCA_POLICE_PEAKRATE64={0xc, 0x9, 0xfffffffffffffff8}, @TCA_POLICE_RESULT={0x8, 0x5, 0x100}, @TCA_POLICE_PEAKRATE={0x404, 0x3, [0x6efb, 0x1, 0xfffffffb, 0x3c6b, 0x2b7, 0x5, 0x0, 0x5, 0x200, 0x80000001, 0xfffffffd, 0x4, 0x5, 0x6, 0x848, 0x73e, 0x200, 0x8001, 0x5, 0x8, 0x1, 0x5, 0x20, 0x71, 0x5, 0x7, 0xdce, 0x6, 0x52, 0xfe, 0x20, 0x3ff, 0x2, 0x6, 0x80000, 0x7, 0x6, 0x3ff, 0x101, 0x4b, 0x0, 0x0, 0x6, 0x7, 0x6, 0x7, 0x9, 0x4, 0x3, 0x9, 0x10001, 0x8000, 0x2, 0xffff8000, 0xde, 0xff, 0x1000, 0x4, 0x1ff, 0x8000, 0x3, 0x4, 0x3, 0xffff8001, 0x2, 0x40000, 0x101, 0xffff, 0x1, 0x1, 0x1ff, 0x800, 0x1, 0x94, 0x4, 0x1, 0x1ff, 0x9ee4, 0xb48, 0x9, 0x4, 0x2, 0x4, 0x100, 0x8, 0xdae184c, 0x1, 0x2a52, 0x8, 0x1376771e, 0x1, 0x1, 0x0, 0x8, 0x7ff, 0x0, 0x0, 0x5, 0x8, 0x5, 0x8, 0x2, 0x3, 0x5, 0x1, 0x8000, 0x1ff, 0xfffffff8, 0xd3e, 0x7f, 0x7f, 0x8, 0x1, 0xff, 0x5, 0x2, 0x4, 0x6, 0xbd75, 0x100, 0x2, 0x9, 0x98000000, 0x5, 0x91, 0x8000, 0xe3b4, 0x4, 0xc5c, 0xff, 0x1, 0x8, 0x1, 0x9, 0x40, 0x1000, 0x5, 0x1000, 0x7f, 0xa01d, 0x2, 0x8, 0x4, 0x972, 0xffff, 0x400, 0x9, 0x8f6, 0xffffffff, 0x23f, 0x800, 0x9, 0x80000001, 0x0, 0x4, 0x6c, 0x968f, 0x7, 0x7, 0x81, 0x3, 0xd5e, 0xfffffffb, 0x3, 0x1000, 0xe608, 0x9, 0x1, 0x0, 0x81, 0x1e6, 0x5, 0xffffff00, 0x5, 0x9, 0x3, 0x80000000, 0x0, 0x2, 0x7fffffff, 0x6, 0x8, 0xb, 0x7, 0x7ff, 0x6, 0x80000000, 0x3, 0x0, 0x7f2, 0x1f, 0x362, 0x3fc0ecda, 0x7f, 0x3, 0x0, 0x8, 0x7ff, 0x504aa4da, 0x800, 0x7, 0x60c6, 0x0, 0x0, 0x10000, 0xffffffff, 0x7, 0x2, 0x3db5eaf8, 0x4, 0x7, 0x0, 0x9, 0x8, 0x6ee0, 0x3f, 0xd65, 0x0, 0x7f, 0x9, 0x7, 0x9, 0x8, 0x3, 0x9, 0x4, 0xfffffffe, 0x2, 0x1, 0x80000001, 0x8, 0x2, 0x150f, 0x7, 0x0, 0x4, 0xffffffff, 0x7ff, 0x9, 0xfffffffc, 0x2, 0x8001, 0xba6, 0xffffffff, 0x5, 0x7, 0x3260400, 0x2, 0x8, 0xea, 0x2, 0x9, 0x7, 0x3, 0xfffffffc, 0x3]}]]}, {0x1004, 0x6, "a7bcdb1038f3f9f90fc98adb655274a422f83d0f9ea1a03e166b61f29529cd1d484c9524104effdc970c4c17d5e251af10863ac1a68596a6f4123259bd2d0260a7148a38d3544f3945cd0ef10dfaa79e4652bd1b6c7a223295b3ecb57c20f95567efd042258eeb633071d52f6104b2a4113721d955ddc4be047fd98262277455b931ea33ae77a153115f10d06def20dae9618d2ba9e747f1659ce0f4bf2675d63687051ad217e00d390fa1dc4ce8e4e0a183ec2f3e2bb3e8e3994c464806f5405ab64a0ae99caca1071d40e2d9c0fd818184381bee39c70987b6fd77ea1cc345d3101ff72f08c7af9411c374b2d2c72844f3a8822f2580f5106e2d831dbee73523920802adb7dd6608917cb449775e0d2214c9d498a82c0a69dc9b8fe67c9cf57436d0edc7503996a18f7d3635dd8337d4de37b24aabb64871c24be86256fc712c0e9a96f19bfcfaa58740a2208097a27e2ebed465c5559c561db4d54e08a1304c33fbda359bed98ca62d23c12f6834482381f040b4b16f9d720dcda16ed1e796743ea17920314adb3f7ac5ccdd34c664fc538babdb3a19a423a98d86a98e249aaf30629191f67d88bdbd35e22d7294950f4b746f05320f5cb3f158c22aba77041c64859a18d3633aa1a903b1b3b0e99298818415fa3d17f7f2f8424c4b6e378908fe932ccce51814be7fef961081b64a7ced5c077c38984ef2e6332ea55eee413e2760671a991a3b5b9f54d5667aa08c6c30a87f3f82d8a589774ee7a96ab0d3e9011f88b0018302a54cf6f7b4978873f66434d157e97a4050bc0db3d4d83388d302506f3e7f8bdadd07b3c31c64ca332a870cc4f6f5428361f815d6175503f5f5a3ef7c85ebe6466e1f81927c3acc4298943997bd6da03032c556766e013cc90185d30530b27ad052337b2bd689c2effa204919c29a909c0e6506a89cf33f47bd9fd0b0e0cece767502ca5d21237289b670f73a33b52fc8c7890507f1b2c90392136ddd4dbb75166a06e7791d54fb9a8629f9e37654b3bb3849df2628f90c7ca13bcc7b800f6e2df8ffff113e590cdd91eba931913bfb61d2bdcbe1fd6de52ecade9a8d857d0c293910aaf1ace358f680012b4312491743d01ff3e534ca804be11cef3249f9a35a7997a4daf78172c9277ac003252099fe627cbb98b3e8f4c975e5e7355dc2d2bb6c87f72ad0575c82b36b3552b74dd082bda5399fa18fc6f353bab1d832cd65dbab2d4cbd5c0827253292ed69ff46928410270df96c3b821faf9770aeab56d7c9380628a45e917e8aac8caa8db0a539870510c9909b9d9c83c9a38f52d99234f91008870eb2072b22239ae62d064a943041c257aad7442835c9642450e90d31d5f5fb4a3460360aec958254228ead48e71437b8564af4eb7fc937a32a14c13fe325fe06ac5aff6df8d02cd797a599a381c77676a89f62e3bc1e047d4b281ec4a91f08afe9548202f46a4f3d9fcf84d9c02a91e2d5bc13f7655b05ab34268583c8fcd3c1b7961e5d18cd7522d97f51f19652bbe3f0392f0a8bc7ba978ce83d35587e5202dc1a6a3361a6c1fd536df611d5919fa6ac79cea89aaa13c24febc1792c22128a901a421c33340c29e16b1b72ef52ea14e6180cdc1036521b9d6b824937c1071eb290f4bf7873d468c8981597287535ca0d8c922a419d0cebe90d4c70168ec8d3d60555d0c71ad66886582c2596e125de9e53b60d10c603176c18ec91025fd364d3d59386b0c9f30be1ce994d749b4c71a835acff1c62689794d4f98dab1a9f538ed00de4d590024175b4a55d3e583ca6939f9a471b98a0edc8567400289481c3a7dc01ec9a3d053eb10057e78c22240091ac2d959507c81c8b4b34ab33d7120af03aa7ae8d9f54e91198da40bc02cbf9faa0929b0e4489e0a2d8dd7ffa8651dd2249460cac6770fc38c8d39f18063a34003a0f98fe40315f72d07a1f5ae64c91539fd2b5289bc566e4990315593c25f7bf5a9a8e0d40134e63eb0e65ec8707c50c679ad5f38b065530ce0580bba48cafc2ab85be256e5b19c69b7ad0f3b07c609a54d914ddbcc25fa326dddf3dcbc8688555dc593471ccbe9b53bdf7c0c42dd33aa68aeb3fa3a37d16a2ab70a1295ddcc11f67b326583aa1b7389652858ab3f0c049a437ab991ce6483a1e8092bbe43fff2c7c81be792f651b07f99e6d46df4b58aacabc6ab67eddf412faa451fafc3c9afbf447b60e515627ce422ddd777c5870c7a71a3b276beaab38841bcf6b8f6845f5162767b5427efde2c8cd66ba097854fa0e9b6b3b2c11864c8c6f47610cfa7c853cf21aa0d4bc24478d8cbe10b62388823cf3f33d7dd11f07aa4a49fcc9224d678748103e37098d7a1ccc122cfddd8dcdb7a34b7262ecbdc5eca4b8a86b07fe3b72169dbe12834d6e035dff1db758ca3cdef764f75bbe77bcad4072936718ea58fd73cef18f024b74a00a0140466872c7720f8d30abbe19a6c6ad5abad913fb37729b2191bf40e898fbd341a848106dc5ced0270ab10339dccfced7cb44b17d6263f5c4a884f5f394aa250f5b9fba3544fd43ac84e1b5bd373d808f93257d9f1ea7eb727dcddae6e0a3fcf4255fd0023e72b501b91a3314b11bb6b929e9248e1dc6b38c93bef0cfa4b62f365ecf1e4853d9fbc779f6b823a3400715a350ad17ef312a241c28e477fa4cb503c934b4d68e71c72f2fef95bc7c3f19aee22157cfb627d20bcb5a091c53a2ee115bf7c95cf51614e76517589267bac8dede26f87e2068c5e7d55315b58b35d72b1a858d5144481e8e0eaa5b5c210d1b643951b792c9c5cd379646de9ef1dc0836bf24bab8bd1e260f846863ab4e89f9462747f5c31d557f4f907f1f99281cb324627fe57b860d761627e6f01efe19a787ce580acbf383e43e8214779ea4adc37f442bef06567741b28708282cc173d7e0d7b4151001ae31b569437d096b3efe54bd6650142a09d78f25ead48d9251451651f220ef69e1a90d4c5ac16bbb1391417d1ab96e3255625c998a072ade2548eb2a9ece3ac4d58874e6ef11c01d41ad4de4eeb947d2ab9be092ea1d0772ae9eaffff5dfa0cac627c570861753fe9a0c912b3a922f66c0530967a60531a07f7259a0c44dbe631c7dca29e4153b5b252182d8567be28cbbc3f103f6d95231fa7d483804f2028e3652cf62cacea2d9adcb3c2a6cda49cfcdc90ab57765d6393c15f4ffd1621240053e54368de5ddb81a9c2643f4c5c37ab090f1b28d2cd575ccd56b9f6a7e20fdacab2438bb345e124c18b54f2712479aeae8db9a409c344bf51066d66d063803ca46333199439cccdb7528373036ec82112b6261175d23d00899a93dc1519786c52b794e76d37d797592fd5e726ff6be4a18b3ce5f94ae3b79eb5c862e981bd2381a1ae19f7dabd4f334a48ad4c4033808721d569cac48fdadd13063628dc7efbe1e09ae7dd0fdab6fa2c40fc0081e238fd7d0dfa3aac86fb553368a4fc8bfe62a4cf6b86865a9f7dfb5d128bf0c91986ed3f7c0d207c87b623ac4e3757e6b13b6efe019f87ed39ee6fe468cecdb7074556582aef8874ad1e35cad5d722c9061a1c98464ce93b989275d61fcb93e573854eca37b8f204d9880e97a5d3c72f62c40a87644c832b81b5cf7efe11ccbb2690c2ab9de9407556b2db0520706b9ec1d68228f2268df9e00542bdf8b8115c35629c9da9b95349226c611ac602cf344320160cbe170b08530933cfc29134ce7a4fceb53604e85c197210d6155693e637a9288aad845ee494c0ee93f886534ee9323eaa11309bc4f2face40c589fe4d5b169cdeb50d3a60787fbf28ea6c376a7c1c74d43f482fb634ef085f4c620bf71ffcc9d143ba11f55ec00f6c05133be0b055876d680cf8343df40cad06fe6f9d17720d3cad6d292250a28a02fa39cbd5106af9772ca36ffe1723d96fe4c5c8da636ac1ae608b65c85d4ee7477e7ff919350c4ab313a69f04428fb70fe264a779163b61f068780ca8b72ba13c1d0d91f0fa1f041bc7d2e2a74a298a52ff4e32f59f8cbcb8d74ad36e1032659dabee15089b9d672e7f6883f18da16492bb0eda365c8847e00588172fcacb2fc55a135f07e04d2f313491e46264215fecc6697343a844021240e949c981dbfe65c8867b0d95e537e12eb747a2a4e6c65cfac8ead38b8d9571c4a56a6892aa4c51b3c8f8c76f6dcdc3f02bdf7761011a52050085b0d7cfd309bbad80064e8e1fde47726176dbc18806b63d04f4adfd75d8ceee95f80332f635875fe7b583703e545a533fa31e9f93e2a57731b9fc2eb6913822164ad0f24b945f09b24ab5114f196be446aa1360e8cfa89a38ebc3b3814feb7a0bf87bd9dbb6399a013e813decca9ad32ec0ff047addfd89f4935edad7ef7474f3422b691d06bb4ebf1c96ba0ef221cd053a3af5e4e7a85fbe808d46fd3b74cdb81c22b735ad7a68a31c840277845e4ef44dbbaa537e99f88df1b8d963d4982242c2cbead4947eb8bd6618349f5efe93249ad46befa0fb815fa07c5ce01ed534253ce4170d2907bcb027a7e6a4be140c252036282a3f2b18ee8cd5f3c4135383fd3be7857a8cdafb34338095d0dce439ceff00a584090da40999785f643435db599820034b358a152199b49c906d5f223d7f2a42dc08662324d9b052b004de59a09ababb7d49f0dfd8a938bc56a0fd6f8d936645c78bdd8ec0e639be719b7c77dc66a7dd322c8ab99097acd31f8663265abb4d034743c232ce3e338debf2c80a7045320d40284a27ab4536e8dcd228404904ad25e14aa92b4dd63f6f29f2b8eaa869a4fca344730d271cce748d7bba6ee7ed286c6b48541a6ce6ab3b1259e905c80a881d9bbbf7a5a0441c591580e129133de1d0069b666060088fa2879eac3188c3269124c7eaceef70d2e2fa8b0dea3cc0d94b468c928bae3ec90c785fcdef4282a87d0830c84347b95804b91f26b28add8917b7af1ebf5e9854e0829745587d764402b7c5f3576d8b7476c42cbbb0e9ee7e57e47aecd2b8c6807af88a3649f6c80dc0b4a0add18cb684fda364cdd6211008877e6d75cf573aab520f5ca0822064623a4f83385d950f75599cb80edeedb7272fe3e9698eae3e9421abee75f91f5eee4439cea3aae851af71e1464508ad8ee4c6f0e59f7ce0a873ec7a15f53f8a1af7f8b940545b7502e88f8994d7ff95bbca8dcc4cdfacf9ebcf50c479f5c66662c60422a5e25559ee249806ad2d17c5c80f03fa9844eb39fe1ff4488af4d56c3ea6ffd6c2ea267cf6c29d95a86cb26bc2b90a78cc27a94f7cb6cf1e6e59c6065f780ef9c0f535a732404091d7adc13dfd2dfbfca22955340093bbd85141697556c85eab3568db2576cdf43e802a69f251e234a3b34652f7eae755959a61e1eccd058b81ec379dfa60ac24390d975c692cf138ffdfb89c5d61aa4810f7e7ca12099583145869a903d7cf7c2ef3966f82200ae6435c2742f70e6ed98ed29467770dba73646efe8b2862da258f0b11b2784aa0ca4ca0f2c88498a36076bfa0e6a26749620fe0c578261965ca8d778582d2f15fbe8396cf1542afc0592b050bb3653c99fdb956067043a5bfefd628a05081b4660e48e5d7b0938c7c0f8bcfb79d5cf8d54f2b45c0f0316fe7fcc771ca3ed91963874a7fed37fdbc66eb904e92141b10bf5c4fecd94fc51ef1434ad9dd40b32fcce3574ddb621c536e529a7adc75ccc51ac8b7f348c99a5159a93cba7b54a65626cffa1296c8e4b5195493eab1b32d19e206fb8d8236c2cacce1e1a3859ea1c6194c181377e5dbc46d258306fcd9df12aafa68c7"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x0, 0x1}}}}]}, {0x116c, 0x1, [@m_ct={0x1034, 0x2, 0x0, 0x0, {{0x7}, {0xc, 0x2, 0x0, 0x1, [@TCA_CT_NAT_IPV4_MIN={0x8, 0x9, @multicast2}]}, {0x1004, 0x6, "6bfa717e7f089647c44496c1f7abefc8d085b01cb2d26c74262dfaa5e7342baf41bcf36424b7095d1239e4f96b8d6c7ce722e4b4aed7c76bde4b21bfae6ff9a0dceb8fbf0243fe5e55d1d7642c41bec535cbc2a199a45c6111bcb15458d1111dc89eda6339e54bf080684d28d0e69d8ba92f98d23a956eb6bd409f44a37933ee8839a2345040ec74ffc791a23edbc81561fbdf81c7ba46a2333190e7934d56fc91e43813bfa653affdff9c1d75e6235bd22236d1b37999ea503a698bfd19d5120d0d491f171b04fefc31c739d60c0ea79c921d5800e9723fb5aaa01fc870f9cb829b0f3d3e0f4cf6d23ede3e65c8fac675f289ab7fb5c11acd672b6f4a5b80e68b26ee3c17fecc16e04723bf336cbe0b342397cfe02951a63eac0ea8ca8c2e0420392eb3f4824e9b68bc9c7cc6f21b6f0c68feea729391972fa6a15b062601d0ebe6ae0d1688fc5676effe9a0a4e3a4640cfb41357a6a3741ef6b87acc76a4cea6fa43e9bafe6ee9d9973f8345b88f95b397b31d13fa3e77f68b1bb26469e356e1af9fdc77fa8544de5d9020f90a887bd460ea36c0cd507743b765ee9a132af45b21ec10f1afb60d14fd6f6900f7d4a07c7f1b35cf2691e3fd9014b82d35437348ac71fcf0a5bde4c32e7b1dbbc9fd2c5fe8706572866e9f79d9a794fff1d4c59be45bb8aa5992aef930ff4676ef3ff3dd1863f3f25763e0e084f10b5748cef554f8294c754c97a2be5206cc3564a799fa030bc9008423501cdd2002d1de6627d25724ed85468db9dee81eb644ead961373801710cacd4620fb4d08242eab4c7a6c0fecc57f7c697e1b123f6506cc5ef222c9dffb5f35cac1dcbf7792015a3a540b14d331ceded67b8b4b7af25bc3e74535617f6bb26739417d33d27b87167d151a7fbd8d41c5751b0da858740d0e6ca79c6634db43e656390ff1d3e90f2aa6467641fec79bf2ba6481b1c912f59d95fbf1dc385b54d10c8cac551c73b12149c3f56e2551b1b16114b4ab8e49fcbc0eca2e17fac915e5b7a2463721f97efb88665021cc1a55efa6e670b7be56fc80636c17a662372f0fcc5e089189294ccebd0d8162b2399460661e07da267f27ba4a1188bcadcc50f37e8dd28de03e60a76b4a6432323e505832081e417f60ee08503b9f0b024d6f78542637e07e7273db65bfc46753f8059a2a7a0edf3354b3cb02ab92f6b7d82181293ff0c216e52d15251161068b4fd820a3cf3408a2be5de20d7c9d7802e5d6d942b14c75d813c53c05eae820a0c7809c1db51b44f0319d4e0733a50916e6b65b387f751358cad41a1d1b127d37ad6b095db538e9a288dcb38ea341c7877921c33499c0195e808d3287f5a02077d842336ea5f09499780caa7c734f374f5505a920c9d67fd1c4e8321a19b42bdf7a617a339d7b5836b2a1f6b8de75039dd8ef6d63e25cdf916f99abc6157ae8b57d228fe10c24ff3198a686d6750f44cfb492a2a03f1f436d09d36efec4d8a88ba8182f4fb16594599cde436d69d17a895a954a4fcfa297817e7e3a620e714a85a7e69a67e7362c57dd6663194735f396897e439832c92f94b7d19320522e27ce1ca19bbd0e505d956d2fa6a4d5521d9683921d2261a14425c094c06f32fedc40574eb267214337ea16c15b4f797b0f316b84d6bd190213791edcd9b8633381de86531fd95381b4886f87331c3fd4e26896e325db3a74a07ba3d3170799c825094658084ecfe53b0baa446487cd572f8c2a4f7b84ebd9c300108e79bf96e2fcb4912a8ab43e622ee3ded344e9b68ff8f71360c7a3339f5f4145ed484d3f1063cb29cb99c1f59425f296fd2f97b7f1b3340a5e3f1c8d514172e2b9f05adbe324a67175f3c764ea9d9d69b5d2291cdcd371918ddfc185e8979dc88866b9cd9b9d84ef4a4c20c08750ee7dfee19679b4d381b4a7a2e86088cf5594ac23709aa9f83d2af9d451901cefaecc722bb4b91edbf41f1020299f9c409c06049af11907845bf6dbd42540b320a513d8e4fbfe4df129bfdf92e8af11c1aa6de2271b03e0def746f5af40cbf845782ce9ef855b69fb69f0178c5fca2598a9b574bc447d46603240b786f51f33275ed995e083a511cb0ae01f9ac99b45bd5ec0e65a5f7fee07e71cb66d209020ca04ad5e85bd54a009e37afc62fa2951caf9c7f8f05ffc23b796622cbe7cec1d31d81df97bfb8ef697dcfcfd0033820ee2a67fd9752547e8699b764dccd51d21eac97f9d3663aa033289ac1aa6cd9dd4bc62759bdffbed48bc4de30bb16d4cee2f4a3fbf41352ed12976644cbe3e8da018b07829c50711526a50a44498bf1d6fca580c2b82a87fef69accfdd9a1360e379e9722b60e09d519a741c4e5fe18f23e5dd6a5971f4c28390eef1312ba3c7d8349f234e3af37d48d3a9104a478a2edb69af10d10b6e41077768658a8de219fb9d0d59c00a41b38328180b8bd49ab017cb05d95c2981a69aece3c45de9f8965368f7e3a9f52382816222499276cc0cc33fc4101c35d3ca7f2f636bf3738632b399e8d18716f8f0e67e90468ac5b68bedda2a70fb153034de9c4e899807e8f18c98e5bb250115b3a3ffee24f54bd018bd0a9cfad461328c677483eae1c2a8bee0320b47f95ccd5696b7c3a426ced53fccc89b35ca75867be64fcfaeaabef50c9c2f753787fc7045929c43320e1ea3c2a392afbda7c18cf8c49674aee35126106ed2ad01fc865e9ba485eb12c3a4ff0e0e80e3af54548dcd60d33c01ec1fe5ca26b1ae65c1134f80600880294d61fc2b18c6b29e14d4b4a850ca8850c332b812ee310e5b3451a6084944a25249ec2dfef9aa597f7574b3508f7747283bb56426f0b3d11a644d42992af6d3cf98832aabb7087cc0d8a5e36183ab1201ec7b25ddce6d9db6372749b4a97666591b444f7e882bb6c2c10c6252fc406eb7c2ea9fec14879faf3d3f92769500dd06008d272c18eb727b9bb8a6278ebeeffdcfbed715d60bdb735533d120844e814a481262c988e4df69ddb6b17d607a22b01720f8270ab69094262a71aa337ca1fc5d279b124e744d7ea3737b66ed6f9940423190a2b55a028932cd096552501cb26bc87e57fb28424a38602051ce3e21f5b99132d3ba60f67f7f4041c679aeb637c3595cc3f960f16db6f63210b9d67cdce77bef9c33d93edc531bf60712b17ecce9725017dd363d29ddecc18571f6048fec6d5d1178d32c84e0560214eb039385781d34880cde1e2a9c691fd63a09f804eb4c4b02e0563bcafbdc232c452cbb6c497699f1477d8e6ec19578413c01dbf0d6fd5e4b0b857586dd02bfe58b145bfa8c5d9ab7b72a50ebd8bee63d5378d53ae009237a8510df1c60cf4b3789b10872749bcb9a55aa2be7a928fe505fe7ba84cdde55266361c66670c6a797ec00b0bd85cdacd60135378ba9565f5036720649f4461927ab242f627fb9372f66cb949e8c125a5dbd4254e6ea755970d9e63b0e8514775e8a06604b9705c6c71981d258c49ec10fac5596c0f4f5bc2816394d50f6b855f8e36ea8795a274bc4bcfd187aeb8b4e932ee396e6add004caad9760522e1f82beea8a3839b02c78760b5d18d824eb6b5b925c7270e97e1372f817057f956de76b49bb33ef3ddbf97feeba333576e76763c9a2e440afa08473e6cd8d7e9f0189782245c8b2b067adc185ee6425ed04ec47f56504eafb90534f6cc23c87afe0848b6b8834c5392b58012427487dbe0ab4ea8301d1b7b25430ded2abb2e4fd9a799a07e360531ee2eda7c6b640d5c91d5cdd421a348762d329a3e85ac8839815b9c15d90e464cb4bdce461138806c71b7232031d9fcb2b25e0c5de46b9645d5328206988c5aa1acba5ddcf6b308320f7ddf03369604df2588337414c31e979bcc5cbc63ce9cceb66afefa4b825aa7891ca946d20ed5bfcd59e2934563d5aac7c2df3ed316cd9b3a735671aba59cc1a9c678dd73cc47099d08e36a43d52d26967bf15bc98cbf1b12b448d11ae5ec8d8f221d0cc4b18eae57ffca3565b971ab15683ab4d087f375c95b79735559a66f0ef1966be6f7f969f81fd2fb79a7e50833a16552b11e9e5410db54e42f057b4a4e478915989b2c12e48f1820b1c3c33ba090d9530beccdd83e57075fb9e080c6b979bb107865221f8973419b9a2b727c317586852c7a1119a22c8a4b8345544e132cd60ebbe8cbd23a179206d364e681ffa960742d239f08a665d6a76d6c93df018fd7dda85707ec3191bf5c579e00e61761e3161f9cfd104a9e07f47f209c7b72682c6f0fdb893233ab6e661ab0229e091b975c89c935d1523f504f4d8e4c96d06d9db464218574f0d181f5d55c8ded091eaf18447886b866097a7b8869617613a775b7b5359c0f77d435ac65f0f55813efb154f74b473122144b9a07ec672a5fff9a28ee3ef1d176150653e95b7c88673adf3e0e6992fc30808087cc062a33bee85a8b1ad82c3636480ad65487ffd128c4fc24c9d68f0ad27c8d04c4e51a31b216cd73824ff6c8e08596743891ca70de51fbe06c0490299a668ca081dd8942cbf6f4dcd57b2acb1fd623576e4cc053565be38e92073b5d88ba29d57a5b40c62c4e519091489fc44bb35301629cbc6d869a305613ae89f61a0b0e2bc064fa91bbe53605b968132b42e4dc8ca0085a1dd70e7e067e56273def02f17f9e9b1d94562c3bc935857be82f5e9d34bbe3d322c953733641bec2312f4ead77a8de8e9d6be922e6af4857ac40997d8f3fa701fc427063d8855103527976cf812fc0987e75bd368362cc0a148a05a890fedd972fec3f3e6e3fbbd92c44cc87b2f8861d254ee018530b5673300514eac45dfa2dc0aeb0442317d9f43fea7f1925bb41148ff446d1c0d65884e60a9cb2f3be36903099eccb9dfb76c4bf245af8eccddf00d96274bce2d7666e89486d62064766e5bce33148a6fb74cf3aa673bb535cea960f9bdf717b2abe1920eda0dbdb993d97e05705a25c7d5f20dd1c53130de1e36275e642aba8bb36cd12695ca6a95632e12c07416a627fcb82b658cd2f60d2f5566d4aad1d39ee492862548208c5e4841c1c3db6a068ecd58d224e06050aa14ec3d5b2a1301c8d48abf3c2eeab0515a8c4a5fe4fff4283ac59a24b478dfdafdb2273656fe073b30f8337fee8dde931525ea1990d19bf4d989d5d53da54f51e4a74689d8af3a28fc430cafec6c25d0e85732644fdf85dcb920ed9397f8f722dbe7041682367f959b4e86c14202b7f15b09a277ea59bc90c1d89a6fb5537bae02560ef303415b9dced473bd52aade2474a67681342b3cb4b6a629f09c9f52e0d7199a4a53ebc637e28aa0683b14910da5cbcbed498043a51b9c9eb9c7ba5a0c0b46f49f7257924ac73270163b3c74c9fac5441c6e22217ad4c5f6879f6fc2786df75ac22fc1e40dda996a18c7c249eac9349acc92d3caf402aa7b01d7e578321244b486b8e4632b18b9ad9d6a20768a75dbb4a70e2f844ca163ec6fed1196b6a103a808b3454b9aa96d89c8628d42e050af9fa82e3765ecadb4d7339f0687b844ee6b5cdd4d64e44c981ccbbf00f0fd9f26d3ebb10c0346051f55f19ac3d6a3b9c23df1066e4a8a6233e4f72b70fcf192ebab3b1ccfced4a5c0762e2e3a15a3fad2e10e4b429fd95163114aba3e5359778554c2e6ea25574b51a8c075cdca568656fb5482c95be21be9a68b3f48d52293a324854e962d43c736795859cd60551efebb005a659da93d5a0d3884f6e63d650e50936c3c2759a71334b5c5c9f952b9f85b6b683c4fa7e1bd6a8d5dbfc448e6c9c59de6ba219b5ade43d1548cf"}, {0xc, 0x7, {0x1, 0x1}}, {0xc, 0x8, {0x0, 0x1}}}}, @m_connmark={0x134, 0x20, 0x0, 0x0, {{0xd}, {0x3c, 0x2, 0x0, 0x1, [@TCA_CONNMARK_PARMS={0x1c, 0x1, {{0xff, 0x2, 0x4, 0x4be}, 0x3}}, @TCA_CONNMARK_PARMS={0x1c, 0x1, {{0x1, 0xffff, 0xfffffffffffffff9, 0x40, 0x80000001}, 0x1f}}]}, {0xcb, 0x6, "1dfd737696337485ee009803800be0f2d721113219a5801852cabaea2bdc8cb4b3418961513098d3e84366ba10997b9a6cbce3bb8825df7bb5b01cecb5ec166956a06f65f81c7c9b28c0094e89363f153d4b7c9e62e2ac0975093ee7df920899f8694e1064e0badf71ca0a09b5281042979bce214160b467ee5e58a9dd4501777d8f75fa203646e710f79819a53102fcc9c7329737b8d3cc6af4364f95a04a9983af333800d900a29f1fcd004f13f85f3ddf36757e1bced9ad8d5435396d084171e54e5e8f4fa4"}, {0xc, 0x7, {0x1}}, {0xc, 0x8, {0x3, 0x1}}}}]}]}, 0xc038}, 0x1, 0x0, 0x0, 0x1}, 0x0) sendmsg$kcm(r2, &(0x7f00000001c0)={0x0, 0x0, &(0x7f0000000140)=[{&(0x7f00000000c0)="2e00000010008188040f46ecdb4cb9cca7480ef410000000e3bd6efb440009000e000a000d000000ba8000001201", 0x2e}], 0x1}, 0x0) mkdirat$cgroup(0xffffffffffffffff, &(0x7f0000000140)='syz0\x00', 0x1ff) sendmsg(r2, &(0x7f0000000480)={&(0x7f00000003c0)=@rc={0x1f, @fixed={'\xaa\xaa\xaa\xaa\xaa', 0x11}, 0xe4}, 0x80, &(0x7f0000000440)=[{&(0x7f0000000680)="155bf1e8742db1abf08cbd8dedf2bf4f27dff204fd8a77f7b4e19741c0b8c7654648d0799c103490c17a8751b038a210f1795e5aaf430a937f5d97d9b232f6bc12930d80f8a1a97c0551c2484d2ac93bd07f90dea95054b7f4490ce83551c1768c41b28bcae79d91e710907a4618d00f0ff46b1ee14b2cf001b0c7582def28b2f989f26b5f8c5e4e481d0a5a2de67796004100cc9f09cb04becc5c30029fd5f23672cb2172660b695e2cf241b612c0e9fbe803dd253c0fda632743743eb7bbb1ae49594e6a88f5f5661e9f2bb5c88801ac2806a8a30e653670be53bc146ab19562e53da4caee6ccc55cfa5f5e2c0a981d4f2a707e58f2c7edf577bedf1e80034a45072ff488481ffb696b682c189a1cc2832e890abd2c414636868f4d6e4e0ee44c4538cb1fdd07a3780dcd75c04e689d14a961c6a35df355bd9ea0c73727d5574ad45a1e898aaa7a157fa05d75c7df7a6aa48ff82ffb7b8b9d5a968316855eb11e6a3d1e2b8914a4391c0d358c2430e4bc3a25510d2bc77174f57394fc52e457ace1aed289ebf7cac57693d383e7a72a2320758ef1ba2d4fbe0b04fa8f27c18b0ecdcd06b14f4f005389132c89b5b4dc283af6f99adb3b3311c7db0136ac01a457b0438a6980ea110a8b932d9655e4ea3b9e6ccd99280eabf969652b5cd751c1261c57e6d4d3250f1e141fcaaf693671965efcf9e1c1149c24f9c50122472b80f099de5dd90859ea973ec6242e7a22182eae75b07712da267114503e79f1701def2293c8ea9b468b8b657aba83b934ada58aae1e2605b83ec726462f8de43d8cbc192fef47cd522c73f72106706c6419d9d2c25d535ed248f56b34ac394b692529793bc2d33aba8447763975af0b77ccb03eba05b59af452cdad3818b1f2889571b3c3e6545637ef29fa10772f1d61fbed929c93132313ed944301c6f2ffb8d06afb300fa9898a826be28fe79712e4c9841ca8521bfcce9391121c7838a11e78f740f7a57373e9ac3c297c4c8e479d00fb199e584d2891051d801e622021758d89624455837e1c807c9f1c3382c64765d122e64873951f01d4d12439c7fe8cad9e4876135a9866f75b4915363d20d6ea113e7c321ec6ae9c5ece72a19fd98516adc3952e4fc6694c0063dfbcc70a0c32ae49acd4bf4df24260c736c1559d1f63017fc75d04f2db15392684622a15f18cb73c9788e21fab57a422d64f8673b6b910f9d74a95735a4ba45d974d36461dec53b273e8ef1480e11ad6b3a7c3bdffc411f909d9e2cd4e6c508b22f8671a9fad3ed38a774447bbf57dcac147aef464bcd047a1162dbdad296d3490778ed26a1384eaf3500b250517dcf265a66ce5d3f333b12ac3db20a0f7bfae57989c6995daa31ca1f4d13ae56ea1afbe68af729f49f299ec183434e3567bb1539259d74ba8be0ef1361fb0cdca8b81899b6b445156239e39a797c2a5729ae80dadff7cdaa4e8954200ee95cb78cf364a4bd24ed53e9a54b8d5c2f8d7b917f1ec08f784b3c0a51a813e464e6252a5659f3c8418cb225ef63081a7d44d00667091d62a9c1ea5c1fe79b91e198ef01efe27a6a955a6f216858a70814bfa42866a56f4b9b88bd55796ba4e5d7f99cb50048c014ea663fd1ee77b6e7435900c5685914750f85b954eb0173fdfaafc1592a6bab0eca4a74bc65ec2d23496742fecaec131b4130e4e8f92a504750ff6929491d0c9c2e7f7938cb0adc69ab5a95c8e066804b1e4b29431fdc6e06ecf836ea4e7c7099b250f078e66f2f64b192a0f68b226ed86017e8cdc9f3cff4b582277997d78569212a7a6a3fe0eaacf9a4329bd1b7910be401dd562cbf0459456664694a750364f0df5c1f5d04ab574d84207a23b82d8836f4fc04838bcf5fe540df53926641c3a7d124d32f96014ac62ceeef1c1a911f2cb7eac55354eb426c6e611e18aba59d4b749acfe3801d4418510ea49242464d7803fb82082c7a9373fe85900f91be6ce3ecf3998fcb50a14c6cbaa3f3fb1430b5ae90246bbcc3aac767800c39d56e6d4606b6d15161d1c22bac0353c1708d4c6ee216e885dd7b4f1efee2842b2ee57b56acc2f3866ed4a77cf4baae02bef171fd0d44b4600999ceb1ba6b43341ae2bb2a1a8c49d3bc7b9adad3be3f9d7e02e242ac23deb18ee473e070ea7da2a09d5d1eace5ec48db56abce8818fbc29f4f728fc263c91975e09dfd4a2101c12b1e606924351969d9fcb76455e15e4fc4ffcafd4d898de97d51bf06a36e3b760a4324b22a9426a2450f13ae1aa79a69cc8bde38615c04c243f7fd57a2d5a707b6d04664421a24a8edcd676cc4970f9ef28a9c6af5c22423048f06a1d0dd020937006a3acbeda1ce9688a921ee9004afd02037b820f64442a2b0b488719710fce6c356bc67d37f8774d740ef976ee8165738182e3162d6b8ecf3b25b1aadf2363bdb23a7dd047e402de68f0fc227492a9b79800413023b5f2a53aba119aabbf7c2d3dcd73dde332c17f0dd28b280d49c4890f241e46f774a46ba75499b2de8aa488ccd2db66889cbdfb12dda226fb46ab6bbde8e0394df179922a6ab37b16219cf3c7df209fb2ed4f6de8cf79313026842763cab926754f5d7dfe9af9b4030dac05db11aedc670fd18e20351a79afa5ee4e2a43c9af85d197239c495d6933f71ef35ac09b3cb9ce4adeff1a1893ea65e99c1b548429847e3ac4713ced02ee285a2577b7bc6142028cf5bdc8ac14a01bb36c0365e36cf702d9df66dea0142236af093c708dcf325db43ed76e17760b32b8e06f00ea72c26d372b644ae50b68694bbf4838cc9014557d5310b046abf40357c895327a2600cabbac1598e945336dae8075d6cf7ad9107afcc9f175bbd9db60bf3888a68614af0efc2b744a9beb9aa0bb6d7f9f8b5c1d91b09e5224deeee583895faaf439eee67462ed02cbda79be34f31128b50f71b4deb419f9b66e6b3210a41398a37bd5c376ec48f4763d6481d4bfea15737db3b117171babd6ddaddaedda29f5e3ecc78fee18cc2733c243c9bfb42015021874038701e074daed156dfc161c56f6c7ce511c54aec3cc38bffd17cfa2bd97d5b0220df63ab69af2e7da7846c54c90554fe9d798e6280f9fdc10bfe5b7261f25c72b53cb1a488919baceff5cecb2965e0b669d3414419b61e6869fcd46b3328cbd514a1da2208466054791f585e784fed254ae6dcd2dbe26dc87735e6c31e14442ea33364e2481e980307fb1fc07d633cef34b7635411af6cb9847a62b0f05ee8e9bec730b14fb391d411e223e5095bce6eadccce6500d040252a335c3cd8b3c2df1b4dd63e925306d1365ccf35268e8c5645a097e2b94521dd76f4e71977696be973284bed41c7387391ad3e4085c7af2682cbe7bb56ea5685263aaad056c6c79757b00f67e4e2f08ef257dad004e4009eda5b17c93efe11ea261b3f54ce6a9a50dbef52427f4fc5f44248b9a5be41d251d900c91346a9e0093d05368642907551167f7ddf091af45ba5eea2970d595076e5ee01477a1bd10d9b25a2d77ef401c56358c4e2cd575c7d022bb11cadcb6fae815bb5a8f33629e6f6d09bd4258d6f15f4a5c3679425e328fe376c45faee8572cc99a04ee38b4103f39bc2289c71891833212d45cb716297478b6b70571d84bc5c740bde02053925900565b0af0aa12544ded7d2d0bf1075a1b38783df38c06d9adca764d3e68ae0ba3eba3c2dd32093051140af3e76e3d8e9697c7181d9b35bd935e090960081e27e488437383b8888418bb0090845d9aebebb355a13f5b52fdd86813b248c7ed3dd23696521fb004d8a1bfab22f24b233f56755c98c8cc6d1bea07f9aa55698e23f41e910dd997ce4c24bbb868121878ee7e0a494c40e087433a242f01c2d579057e7eff2b9949a88e703f54ef64c72b1cffdeb1144fbda138bae4500a559572ef9fc568a9a09ce908ee5061e5822b4d06b632564d9798b0c8f8308446191e6ef275aaace3857603aae7d3e28e07f3731f9c267eb8d7d27f2eb756547fceadacb931cf69e9922f2995d37971425625ab345e864deff9c30eb0c21b1b2b53d8788ab8777a598236763a0febff0826ce991dcd9fe389f69c3544a6966515eaa3068524b196ccf69c2712309e62f4328d592c4a22d8d9307aa355410f1b0d9496a04e21bf70d0dd6d4d07db4c5138e2a5db430ad5990f3ad5145ee21feb3f751022927dc80cc32f7753af9098ec161ddc92a907e816fd78cc0feafaa071171d7a7aec992b0fb5b8ca66025420a26d30cbc49e731b8f3d7b93374e3fecd344d073799cc0e51b97cde4bb503def0c4506b4d9a77b3a114cc6c5aa79157f94dc8382bf1d6a1e967f44fcba28c0c63115e55ed8cdec9f2b72788cd4529b0c4b844b28dd3569b9ae6e08f438b4bb057339e5967dcf74538a46a09d073f413df8a4b4f485184e0bd896b6eb22591cf8845d8986686c018cc71941d9533fc414da37bc36fdd2d9e019ba92981f77578ae32c3c04277f3bebc708954251fe52ee8e8357d4d65982a53dc98352cee142ce2c16feabf0bb8699ed746cd436ead251898fa190b17f2ebe98663134157572fd03c29db29ec92a44e02a5e6534f6fda9a24c2e3bf487215b6baab6015018a5fb310564b866569feecc4f010bb84e7a67d2eb251e09a6d5197daefd707bd8fdeb0fd59003a2d0021d8dd4542af0a568278961be94e8ddb60c37fae48501df34cde7a6e4fc613d27b35ae76fdc4fe45cefd7f3fb6e54574cdbcab4cc210b4491effba05b7635cd041addee1baa2ce3990b0fd8cf58861d84dcfd2ad38995f59fb3138acff20b3b4a9449603f77b42a89a13e9d7bf888de16ae604c8f45744b03b6a2e22b3f468a0948a8f18d11c6d6cdbbfab1c9e8cd594e95c55927bed83567d430e4b8f30934efc085279c821390fc5de98fff7726a922f0f36faad31e46d6c159a04e4abe7f1f12389ef27688cc0be812ee659437c38ac111e6b685776585609dd4c977684eba0a34ac255956a117c108d59c14f6880610bf99ac5e13938acba0c5910061147c7e18b88411df6de8d91a84e5b29620a81ed0bd5bb7da914e444d974e513de0c5dd09b0c6e4700c7fa5e505215fe8fa58276913a1c5ee9404ff5d18bfb00cd772dc193657f36f4b316534dc23d50306a22fb29bc2c70a5ac29550169da8fff147a619c3f08e02bb75248fa70d8f1f6559e1039e6cf99084e0bab723ec54b6657d3220e8c963a81f575f4afe0af864b043a7a6b1e5b5c671dc40f5e04847a831acc8dc75e63efe29636078e5d94e1b4730b8674c12bedb308980bb631667d33835fa1a35390e02e25bb0f915e73c1d886f38ccdb3711edd046ff045ef29d1363af41d9a7391873da5413f3e5a9afd0eae3f7d3c7fef44a997f43e807818cc07d21f3852c7de348e5e5045b4256427f8fc314d459fc9987526afcabb847748bc07598492f1280bed83ae0906bd342d86f4c2187bfb2170d25f7b0ab59bd87b678e914767a1f6a04590be7da8236c956e1e0e07b06b6d3dc6d36413ac4dfd6a515142ff416c6c37c72824c070eab7686b60d8fa10e58f25d37896cdb64937ecc3718b4c8737abcdded74c8aea28240ac034137f6ed09d4b84a0f42ff966440b568db1195b26c02a95f7cdc19c548ce653d1ea9e3bfff8c249ddc86eb48d7d48955db7a28a6c3d6e964d1c81e276b9f35f9d69636998abd591698fe9324453dc616c1182a59ecfde8bb9c41a0de37bff6620974ab0166115debae84f8bce8a2d4c0ab791f705a128536f758c3e", 0xff5}], 0x1, &(0x7f0000001680)=[{0x50, 0x6, 0x2, "6c07555833a7ddb115c7f380681877f0fa489f64438d8b569e33b81927980cdad0918c824f70096376eb41fbc99a8be12c8230d9f24acbd6b8297ddd35"}, {0x78, 0x1abdb499df2a4ec2, 0x7ff, "08775f74d33f4dd5fde9164bac6cfe3455fd9674c83074067e2c8fedced7e61fcc48c79146e71c87a395950e2dcd1e16e628f181edf5a7e4ee0792fe9af341f136b774757889dad6889766d6bf4ccf2b76e48cfbce3386de43e0247a9c26c2df8c7f"}, {0xd0, 0x108, 0x9, "a1f98fc0a7c1204b32c077f000d32dca065d3ec9e1ca9ee09ce67ca001fa36fc4fc8231f925eff1a32ad5ea9130644ac14c277ac20b03fa058912b5323f35531ec7a2cbda4f51e06bed885aac4e027e75c0b044abd5aa9d20c76ec6eaf8be45ac823eccddae7fd2e7485b3eb82828545a583cce5f09b426658a4d48cc9143b23778df0817b43f2141b02ec53bf60118e2a37fff03be022790f8345395989fe8aca1e2090da503366cd57d23efe08d69af9b573bb6883848a36e0ac7028"}, {0xc0, 0x10e, 0x2, "55238d4ebe7e44db25cdab7541827c96108ff5a612522bcd6562ae9f8feea108c5b878ca4642bf5e8efb7fbdb9e2de4fecd4c8436b6d68b49c106adc0c167842e52980f5283427e41d092be3b8e5b281555eb12f488e4b57cdbf3557a50ded212b91b542a3612b902ec9116478ac78b2d004d1e95da1d65021748376052a68459c58fb1b97919189a24d6d5ca2779854bc7022411e5699719177453d489d99bb15e48f1b8a3e8e169d1fe231d048d9"}, {0x108, 0x6, 0x81, "0f9b701ee74c1eea9bd92ef168ab9904cc686dffa229f67135eb4d82010c02158198c187f90c98cac0b240afe23132a8cf3658cdd09c7e4548cd879d6c1a28850b11ef209cab2343bb7d02b4704f60723c036d394379efaf6e7b40ae1ecd7098812e6aff59cc102985989bb64722ca6f10a8064e15dc05064ec830590b0afbf9b313b77852181d49cec198fd568273f689a954dd0a89cc450799beca3511ea2741cae0d7336f4a06961d4f204af2c001278e5c81629ab46c8bca3ac7014f7b993cda5c387481048baf2c3ec650ec48376203849e06790b4a84749dd74e2a9cdd2e046498e3877de71342f1836477efb60f1f133b"}, {0x78, 0x105, 0x5, "654302c32e48f380cb236849d090437502a5a12f4bafbf40dd493ebfcc83225425c6c2705e8b0561027c1bfacc75695e18065f3ff26a5a068285396f3e2509aa551e75aa1e56fc45223230ca4f0de2129df46bfcac3187f54ff7d084913dd8e8dd50f4b8465f"}, {0xa0, 0x119, 0x9a7, "bc0f8c79684f5662de2299411140eb00eaf83ab5e234d7444cd106f405c06eb51b963b0389f9c9b9f7b098edbf5b007882f004322d161b0386de99ef03bc6068c44677e7c364f119e8491d86ada16091162f65471b127fb3ce8a9955fcce38521eb9ac24484947f71d95f26260562544787cc7832ffa0073b99b81f458567f9513b6e6ed4238ac30a1"}, {0x10, 0x113}], 0x488}, 0x20000080) r3 = openat$cgroup_ro(0xffffffffffffffff, &(0x7f0000000200)='cpuacct.usage_percpu_sys\x00', 0x0, 0x0) r4 = bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000380)={&(0x7f0000000180)='rxrpc_rx_discard_ack\x00', r3}, 0x10) perf_event_open$cgroup(&(0x7f0000000040)={0x0, 0x80, 0x0, 0x2, 0x1f, 0x71, 0x0, 0x2, 0x80, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x2, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x3ff, 0x1, @perf_config_ext={0x1e, 0xff}, 0x8041, 0x1, 0x0, 0x3, 0xffffffff, 0x83, 0x7fff, 0x0, 0xff, 0x0, 0x4}, r3, 0x1, r4, 0x0) write$cgroup_int(0xffffffffffffffff, &(0x7f0000000300)=0x1, 0x12) 03:05:30 executing program 5: ioctl$sock_ipv4_tunnel_SIOCGETTUNNEL(0xffffffffffffffff, 0x89f0, &(0x7f00000000c0)={'syztnl1\x00', &(0x7f0000000040)={'gretap0\x00', 0x0, 0x700, 0x40, 0xfff, 0xfffffffd, {{0x10, 0x4, 0x3, 0x39, 0x40, 0x68, 0x0, 0x91, 0x29, 0x0, @initdev={0xac, 0x1e, 0x0, 0x0}, @loopback, {[@timestamp={0x44, 0x2c, 0xf, 0x0, 0x2, [0x7cc4, 0x8, 0xff, 0xb6, 0xfff, 0xd4, 0x7fffffff, 0x4e, 0xb0, 0xda7f]}]}}}}}) sendmsg$BATADV_CMD_TP_METER_CANCEL(0xffffffffffffffff, &(0x7f00000001c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x400}, 0xc, &(0x7f0000000180)={&(0x7f0000000100)={0x5c, 0x0, 0x4, 0x70bd2d, 0x25dfdbff, {}, [@BATADV_ATTR_ISOLATION_MARK={0x8, 0x2b, 0x3}, @BATADV_ATTR_AP_ISOLATION_ENABLED={0x5}, @BATADV_ATTR_ELP_INTERVAL={0x8, 0x3a, 0x7}, @BATADV_ATTR_MULTICAST_FANOUT={0x8, 0x3c, 0xff000000}, @BATADV_ATTR_DISTRIBUTED_ARP_TABLE_ENABLED={0x5, 0x2f, 0x1}, @BATADV_ATTR_MESH_IFINDEX={0x8, 0x3, r0}, @BATADV_ATTR_ISOLATION_MASK={0x8, 0x2c, 0x8000}, @BATADV_ATTR_ELP_INTERVAL={0x8, 0x3a, 0x9}, @BATADV_ATTR_TPMETER_TEST_TIME={0x8, 0xb, 0x15}]}, 0x5c}, 0x1, 0x0, 0x0, 0x40000c0}, 0x4000040) socket$netlink(0x10, 0x3, 0xa) [ 331.023950] ntfs: volume version 3.1. 03:05:30 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) r1 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) preadv(r1, &(0x7f0000000280), 0x0, 0xd9f, 0x0) getresuid(&(0x7f00000002c0), &(0x7f0000000300), &(0x7f0000000340)=0x0) syz_mount_image$f2fs(&(0x7f0000000080), &(0x7f00000000c0)='./file0\x00', 0x3ff, 0x2, &(0x7f0000000200)=[{&(0x7f0000000100)="55a41a93474661186a48682c0665943c64e1cef4ffa2d0ef7a32d87d7f34da715225aef817cb11026622faaa60d8235fbb7c63e2292ff6ad54c772809a801239e4bb44922f7fc9b94531c2", 0x4b, 0x8}, {&(0x7f0000000180)="9773bb6703a8a8928a", 0x9, 0x7}], 0x100000, &(0x7f0000000380)=ANY=[@ANYBLOB="70726a6a71756f74613d2f6465762f707070002c616c6c6f635f6d6f64653d64656661756c742c6e6f61636c2c696e6c696e655f64656e7472792c6673796e635f6d6f64653d706f7369782c7375626a5f726f6c653d2f6465762f707070002c95126f7ea90f28a95e6f626a5f747970653d2f6465762f707070002c736d61636b66736465663d2f6465762f70", @ANYRESDEC=r2, @ANYBLOB="303030303030304eb0300000000000000000"]) r3 = openat$ppp(0xffffffffffffff9c, &(0x7f0000001740), 0x2, 0x0) getresuid(&(0x7f0000000440), &(0x7f0000000480)=0x0, &(0x7f00000004c0)) ioprio_set$uid(0x0, r4, 0x2007) ioctl$PPPIOCNEWUNIT(r3, 0xc004743e, &(0x7f0000000780)) ioctl$PPPIOCSPASS(r3, 0x40107447, &(0x7f0000000240)={0x1, &(0x7f0000000000)=[{0x6}]}) r5 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r5, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r5, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) ioctl$PPPIOCSDEBUG(r0, 0x40047440, &(0x7f0000001440)=0x9) writev(r3, &(0x7f00000001c0)=[{&(0x7f0000000280)='9', 0x1}], 0x5) 03:05:30 executing program 1: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0x1, 0x803, 0x0) r2 = socket$inet_icmp_raw(0x2, 0x3, 0x1) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000080)={'vlan0\x00', 0x0}) sendto$packet(0xffffffffffffffff, 0x0, 0x0, 0x0, &(0x7f0000000100)={0x11, 0x0, r3, 0x1, 0x0, 0x6, @remote}, 0x14) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000002c0)=0x14) ioctl$ifreq_SIOCGIFINDEX_team(r0, 0x8933, &(0x7f0000000040)={'team0\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000180)=ANY=[@ANYBLOB="440000001000010400"/20, @ANYRES32=0x0, @ANYBLOB="0000000000000000140012800c0001006d616376746170000400028008000500", @ANYRES32=r4, @ANYBLOB="2200f900be1230a27da0bfa0067eeab9bc41ae4250128efad91ceb820727f392", @ANYRES32=r5, @ANYBLOB], 0x44}, 0x1, 0x18cc9}, 0x0) 03:05:30 executing program 4: prlimit64(0x0, 0xe, &(0x7f00000001c0)={0x8d, 0x4000000090}, 0x0) recvmmsg(0xffffffffffffffff, &(0x7f0000003140)=[{{&(0x7f0000000300)=@generic, 0x80, &(0x7f0000000380)=[{&(0x7f0000000580)=""/174, 0xae}, {&(0x7f0000000280)=""/45, 0x2d}], 0x2, &(0x7f00000004c0)=""/102, 0x66}, 0x8001}, {{&(0x7f0000000700)=@phonet, 0x80, &(0x7f0000001900)=[{&(0x7f0000000400)=""/50, 0x32}, {&(0x7f0000000780)=""/132, 0x84}, {0x0}], 0x3}, 0x7f}, {{&(0x7f0000001a80)=@ieee802154={0x24, @short}, 0x80, &(0x7f0000001cc0)=[{0x0}, {&(0x7f0000001b40)=""/240, 0xf0}, {&(0x7f0000001c40)=""/63, 0x3f}, {&(0x7f0000001c80)=""/47, 0x2f}], 0x4}, 0x1}, {{0x0, 0x0, &(0x7f0000000680)=[{0x0}, {&(0x7f0000002d40)=""/86, 0x56}, {&(0x7f0000004300)=""/224, 0xe0}, {&(0x7f0000004400)=""/175, 0xaf}], 0x4}, 0x3}, {{&(0x7f0000002e40)=@rc={0x1f, @none}, 0x80, 0x0, 0x0, &(0x7f0000003040)=""/235, 0xeb}}], 0x5, 0x0, &(0x7f0000003280)) r0 = getpid() sched_setattr(r0, &(0x7f0000000040)={0x38, 0x1, 0x0, 0x0, 0x8}, 0x0) r1 = socket$inet6(0xa, 0xa, 0x0) connect$inet6(0xffffffffffffffff, &(0x7f00000000c0)={0xa, 0x4e23, 0x0, @empty, 0xf3}, 0x1c) recvmmsg(r1, &(0x7f00000032c0)=[{{0x0, 0x0, 0x0}}], 0x1, 0x0, 0x0) pipe(&(0x7f00000003c0)={0xffffffffffffffff, 0xffffffffffffffff}) fcntl$setpipe(r3, 0x407, 0x0) write(r3, &(0x7f0000000340), 0x41395527) vmsplice(r2, &(0x7f0000000000)=[{&(0x7f0000000500), 0x3528a9c0}], 0x1, 0x0) sched_setattr(0x0, &(0x7f0000000080)={0x38, 0x2, 0x1, 0x0, 0x3}, 0x0) mkdir(&(0x7f0000000540)='./file0\x00', 0x0) r4 = syz_mount_image$ext4(0x0, 0x0, 0xffffffff, 0x1, &(0x7f0000000480)=[{&(0x7f00000029c0)}], 0x840461, &(0x7f0000000640)=ANY=[@ANYRES64, @ANYRESHEX]) clone(0x103, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) r5 = openat$fuse(0xffffffffffffff9c, &(0x7f0000000100), 0x2, 0x0) vmsplice(r4, &(0x7f00000009c0)=[{&(0x7f0000000200)="92f8924f4fd94f131711682fbf1a50e5beaec4b5f889c4f93ef738c87b95f59de0388782abcc6ac2d5852743c52dc8e5f601", 0x32}, {&(0x7f0000000840)="ddac035cf84937433ac5a81aa32ae67b7617a90508b8ea136b2ac528dfcb4d43473a9442bc30cc4bf4d16a45469144814dcfdb0bf61d0138cc04a82b74cc6a1231b6879a9daf561da7c8641e0d76f82aa4d29b7b7da32c52618d814995371627eaa61920b04249da8a3c7b9bc0f2e1693282ef3b30eb3a66adfa43851cd8b7df611649bc8e91b20d9082432ae120c9301e6b89086fbb5b0c5e89cc851380ca023993ad95b0eaf1e51a98ec521d775e72179e6df9c3670b6b8fe2eb6e23b488ff17a834508fb527ae7769ebde9f48ea98d5c7d59a1fdcab45f92210208c4510dc9d17104df21d38", 0xe7}, {&(0x7f0000000240)}, {&(0x7f0000000940)="3c840b3a669ea4dcdc835df95dd81a254083b6a2d6cee56a16b597e51a4787a92aa8e856fb741b0b78637e55a14902d16eef314b52bc7922f7f2adb37cf741ecf3494f26b5fc2751c0d72b9879635a9e42cfd8defee83604aba25a0c65", 0x5d}], 0x4, 0x4) mount$fuse(0x0, &(0x7f00000002c0)='./file0\x00', &(0x7f0000000440), 0x0, &(0x7f0000000140)={{'fd', 0x3d, r5}, 0x2c, {'rootmode', 0x3d, 0x6000}}) 03:05:30 executing program 5: r0 = dup2(0xffffffffffffffff, 0xffffffffffffffff) setsockopt$SO_BINDTODEVICE(r0, 0x1, 0x19, &(0x7f0000000180)='ip6erspan0\x00', 0x10) perf_event_open(&(0x7f0000000040)={0x2, 0x80, 0xb7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0x8001, 0x8}}, 0x0, 0x0, 0xffffffffffffffff, 0x0) clone(0x2000100, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) request_key(&(0x7f0000000040)='asymmetric\x00', &(0x7f0000001ffb)={'syz', 0x1}, &(0x7f0000001fee)='R\trust\xe3c*sgrVex:De', 0x0) r1 = getpid() r2 = openat$sndseq(0xffffffffffffff9c, &(0x7f0000000000), 0x0) read(r2, &(0x7f0000000080)=""/238, 0xee) signalfd4(0xffffffffffffffff, 0x0, 0x0, 0x40000) clone(0x0, 0x0, 0x0, &(0x7f0000000240), 0x0) clone(0x8042000, &(0x7f00000001c0)="6b901185d03542d2ba5aaa0b98dd5b58721f4fe40b54914445a2229feec47bdb5f0e4abe40240553bbffe90a2aa862fa06ff", &(0x7f0000000200), &(0x7f0000000280), &(0x7f00000002c0)) ptrace(0x10, r1) [ 331.229310] bond0: team0 is up - this may be due to an out of date ifenslave [ 331.256765] bridge0: port 3(team0) entered blocking state [ 331.256946] bridge0: port 3(team0) entered disabled state [ 331.321972] ptrace attach of "/root/syz-executor.5"[20253] was attempted by "/root/syz-executor.5"[20257] [ 331.362684] device team0 entered promiscuous mode [ 331.372250] device team_slave_0 entered promiscuous mode [ 331.378969] device team_slave_1 entered promiscuous mode [ 331.388019] bridge0: port 3(team0) entered blocking state [ 331.394239] bridge0: port 3(team0) entered forwarding state [ 331.403223] netlink: 8 bytes leftover after parsing attributes in process `syz-executor.1'. 03:05:30 executing program 5: perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0x0, 0xffffffffffffffff, 0x0) mkdir(&(0x7f0000000300)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000080)='./file0\x00', &(0x7f00000000c0)='ramfs\x00', 0x50, 0x0) r0 = open(&(0x7f0000000200)='./file0\x00', 0x0, 0x0) fchdir(r0) r1 = open(&(0x7f0000000000)='./bus\x00', 0x141042, 0x0) r2 = open(&(0x7f0000000000)='./bus\x00', 0x141042, 0x0) write$P9_RREADLINK(r2, &(0x7f00000003c0)=ANY=[], 0x9) sendfile(r2, r2, &(0x7f0000000240), 0x7fff) open(&(0x7f0000000040)='./bus\x00', 0x101000, 0x2) write$P9_RREADLINK(r1, &(0x7f0000000180)=ANY=[], 0x1c) sendfile(r1, r1, &(0x7f0000000240), 0xfa7c) [ 331.464495] device team0 left promiscuous mode [ 331.484272] device team_slave_0 left promiscuous mode [ 331.496013] device team_slave_1 left promiscuous mode [ 331.503775] bridge0: port 3(team0) entered disabled state [ 331.511736] bond0: team0 is up - this may be due to an out of date ifenslave 03:05:31 executing program 1: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0x1, 0x803, 0x0) socket$inet_icmp_raw(0x2, 0x3, 0x1) sendto$packet(0xffffffffffffffff, 0x0, 0x0, 0x0, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @remote}, 0x14) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000002c0)=0x14) ioctl$ifreq_SIOCGIFINDEX_team(r0, 0x8933, &(0x7f0000000040)) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000300)=@newlink={0x20, 0x10, 0x100, 0xffffffff, 0x0, {0x0, 0x0, 0x0, 0x0, 0x0, 0x8000}}, 0x20}, 0x1, 0x18cc9}, 0x0) 03:05:31 executing program 2: openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000000c0)='memory.events\x00', 0x26e1, 0x0) r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000100)='memory.events\x00', 0x100002, 0x0) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000280)='memory.events\x00', 0x7a05, 0x1700) write$cgroup_subtree(r1, &(0x7f0000000000)=ANY=[], 0x32600) r2 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r2, 0x0) r3 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r3, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r3, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) preadv(r3, &(0x7f0000000280), 0x0, 0x40000004, 0x0) write$eventfd(r0, &(0x7f0000000180), 0x8) 03:05:31 executing program 3: r0 = openat$6lowpan_control(0xffffffffffffff9c, &(0x7f0000000040), 0x2, 0x0) write$binfmt_misc(0xffffffffffffffff, &(0x7f0000000140)=ANY=[], 0x4240a2a0) openat$uinput(0xffffffffffffff9c, &(0x7f0000000100), 0x0, 0x0) r1 = fork() perf_event_open(&(0x7f0000000280)={0x3, 0x80, 0x4, 0x0, 0x0, 0x3, 0x0, 0x41c1, 0x10a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x800003ff, 0x2, @perf_bp={&(0x7f0000000140), 0x6}, 0x0, 0x0, 0x9, 0x0, 0xfffffffffffffffc, 0x0, 0x0, 0x0, 0xfffffff8}, r1, 0xffffffffffffffff, 0xffffffffffffffff, 0x3) write$6lowpan_control(r0, &(0x7f0000000000)='connect aa:aa:aa:aa:aa:10 0', 0x1b) r2 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r2, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r2, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) ioctl$UI_ABS_SETUP(r2, 0x401c5504, &(0x7f0000000300)={0x8, {0x1, 0xfff, 0x10001, 0x3, 0x6, 0xfdf0}}) r3 = openat$rdma_cm(0xffffffffffffff9c, &(0x7f0000000200), 0x2, 0x0) fsetxattr$trusted_overlay_nlink(r2, &(0x7f0000000340), &(0x7f0000000380)={'L+', 0x1ff}, 0x16, 0x1) recvfrom$packet(0xffffffffffffffff, &(0x7f0000000180)=""/42, 0x2a, 0x40010121, 0x0, 0x0) write$RDMA_USER_CM_CMD_CREATE_ID(r3, &(0x7f00000001c0)={0x0, 0x18, 0xfa00, {0x0, &(0x7f0000000100)={0xffffffffffffffff}, 0x111}}, 0x20) write$RDMA_USER_CM_CMD_BIND_IP(r3, &(0x7f0000000240)={0x2, 0x28, 0xfa00, {0x0, {0xa, 0x4e20, 0x0, @loopback}, r4}}, 0x30) write$RDMA_USER_CM_CMD_DESTROY_ID(0xffffffffffffffff, &(0x7f00000000c0)={0x1, 0x10, 0xfa00, {&(0x7f0000000080), r4}}, 0x18) [ 331.691031] audit: type=1804 audit(1621479931.136:55): pid=20316 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="open_writers" comm="syz-executor.5" name="/root/syzkaller-testdir916927625/syzkaller.HOUHHZ/444/file0/bus" dev="ramfs" ino=60283 res=1 [ 331.946433] audit: type=1804 audit(1621479931.386:56): pid=20292 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="open_writers" comm="syz-executor.5" name="/root/syzkaller-testdir916927625/syzkaller.HOUHHZ/444/file0/bus" dev="ramfs" ino=60283 res=1 [ 332.043199] kvm: vcpu 0: requested 128 ns lapic timer period limited to 500000 ns 03:05:31 executing program 0: r0 = openat(0xffffffffffffff9c, &(0x7f0000000080)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f0000000280), 0x18, 0xd9f, 0x0) clone(0x101910b00, 0x0, 0x0, 0x0, 0x0) mount(0x0, &(0x7f0000000240)='.\x00', &(0x7f00000001c0)='ecryptfs\x00', 0x0, 0x0) ioctl$FS_IOC_SETVERSION(r0, 0x40087602, 0x0) r1 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r1, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r1, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) ioctl$BTRFS_IOC_DEFAULT_SUBVOL(r1, 0x40089413, &(0x7f0000000000)=0xcbe) 03:05:31 executing program 4: r0 = socket$l2tp(0x2, 0x2, 0x73) setsockopt$IPT_SO_SET_REPLACE(r0, 0x0, 0x40, &(0x7f00000003c0)=@mangle={'mangle\x00', 0x1f, 0x6, 0x520, 0x3a0, 0xc8, 0x200, 0x2e0, 0x2e0, 0x488, 0x488, 0x488, 0x488, 0x488, 0x6, 0x0, {[{{@ip={@initdev={0xac, 0x1e, 0x0, 0x0}, @empty, 0x0, 0x0, 'caif0\x00', 'macvlan1\x00'}, 0x0, 0x98, 0xc8, 0x0, {}, [@inet=@rpfilter={{0x28}, {0x3070483ff854b791}}]}, @TPROXY={0x30, 'TPROXY\x00', 0x0, {0x0, 0x0, @multicast2}}}, {{@uncond, 0x0, 0xd8, 0x138, 0x0, {}, [@inet=@rpfilter={{0x28}}, @common=@set={{0x40}}]}, @common=@SET={0x60}}, {{@uncond, 0x0, 0xb8, 0xe0, 0x0, {}, [@inet=@rpfilter={{0x28}}, @common=@socket0={{0x20}}]}, @inet=@TOS={0x28}}, {{@uncond, 0x0, 0x98, 0xc0, 0x0, {}, [@inet=@rpfilter={{0x28}}]}, @TTL={0x28}}, {{@ip={@loopback, @broadcast, 0x0, 0x0, 'bridge0\x00', 'ip6gretap0\x00'}, 0x0, 0xc0, 0xe8, 0x0, {}, [@common=@icmp={{0x28}, {0x0, "e427"}}, @common=@icmp={{0x28}, {0x0, "62e8"}}]}, @ECN={0x28}}], {{'\x00', 0x0, 0x70, 0x98}, {0x28}}}}, 0x580) socket$nl_sock_diag(0x10, 0x3, 0x4) socket$inet6_dccp(0xa, 0x6, 0x0) r1 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r1, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r1, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) sendfile(r0, r1, &(0x7f0000000040)=0x2, 0x4) 03:05:31 executing program 1: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0x1, 0x803, 0x0) r2 = socket$inet_icmp_raw(0x2, 0x3, 0x1) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000080)={'vlan0\x00', 0x0}) sendto$packet(0xffffffffffffffff, 0x0, 0x0, 0x0, &(0x7f0000000100)={0x11, 0x0, r3, 0x1, 0x0, 0x6, @remote}, 0x14) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000002c0)=0x14) sendto$inet6(r1, &(0x7f0000000180)="e3c6a8e016d4c2dc792a79f6c9ab0c2c24f8dfb48219b040a9849f4d11994b69e482ec434a4844270a7d62c35be67fe0e0c5e4077a48683140e635882ab8240f4fd1a2d44364468d246ee901c54e4d461b14794b359039dd4d14744a6ebb4efc82d9fe4336af964533239aeb354f525f9ce6f2b22dd2d9ce29a6d55f6a1b8bf83e09af911e127ad323cb279abc0937f0c59409191865f9d82e729280aeb384f58784f2daefb0ea6331bd64", 0xab, 0x20004010, 0x0, 0x0) ioctl$ifreq_SIOCGIFINDEX_team(r0, 0x8933, &(0x7f0000000040)={'team0\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000300)=@newlink={0x44, 0x10, 0x401, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @macvtap={{0xc}, {0x4}}}, @IFLA_LINK={0x8, 0x5, r4}, @IFLA_MASTER={0x8, 0xa, r5}]}, 0x44}, 0x1, 0x18cc9}, 0x0) 03:05:31 executing program 2: perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r0, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r0, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) perf_event_open(&(0x7f0000000140)={0x1, 0x80, 0x81, 0xed, 0x9, 0x5, 0x0, 0x1ff, 0x42020, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x2, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x62, 0x2, @perf_config_ext={0x3, 0x1f}, 0x2, 0x8, 0x0, 0x2, 0x881, 0x400, 0xba2, 0x0, 0x8000}, 0xffffffffffffffff, 0x10, r0, 0xa) syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x0, 0xb, &(0x7f0000000200)=[{&(0x7f0000010000)="200000004000000003000000290000000f000000000000000200000002000000008000000080000020000000e0f4655fe0f4655f0100ffff53ef010001000000dff4655f000000000000000001000000000000000b0000008000000008", 0x5d, 0x400}, {&(0x7f0000010200)="010000000000050008", 0x9, 0x560}, {&(0x7f0000010300), 0x0, 0x640}, {&(0x7f0000010400)="020000001200000022", 0x9, 0x1000}, {0x0}, {&(0x7f0000000080)="504d4d00504d4dff", 0x8, 0x8000}, {&(0x7f0000011b00)="111fc0d901000000803a0900803a09", 0xf, 0x9000}, {&(0x7f0000012100)="2719c0d901000000803a0900803a0900000000", 0x13}, {&(0x7f0000013b00)="ed41000000100000dff4655fe0f4655fe0f4655f000000000000040008", 0x1d, 0x22080}, {&(0x7f0000013c00)="8081000000180000dff4655fdff4655fdff4655f00000000000001001000000010000800000000000af3010004000000000000000000", 0x36, 0x22100}, {0x0, 0x0, 0x22180}], 0x0, &(0x7f0000014900)) 03:05:31 executing program 3: r0 = perf_event_open(&(0x7f0000000700)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50d, 0x0, 0x2, 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, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) fcntl$getownex(r0, 0x10, &(0x7f00000001c0)={0x0, 0x0}) r2 = openat$cachefiles(0xffffffffffffff9c, &(0x7f00000002c0), 0x2000, 0x0) perf_event_open(&(0x7f0000000140)={0x3, 0x80, 0x0, 0x1, 0x40, 0x8, 0x0, 0x9, 0xc000, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x6, 0x4, @perf_bp={&(0x7f00000000c0), 0x8}, 0x44000, 0x4, 0x0, 0x4, 0x3ac, 0x1000, 0x68f5, 0x0, 0x5, 0x0, 0x8}, r1, 0xa, r2, 0x5) syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file1\x00', 0x80000, 0x6, &(0x7f0000000200)=[{&(0x7f0000010000)="200000003600000019000000600100000ff68f01000000000000000004000000000002000020000020000000ddf4655fddf4655f0100ffff53ef010001000000ddf4655f000000000000000001000000000000000b0000000001000008000000d24200001203", 0x66, 0x400}, {&(0x7f0000010100)="0000000000000000000000026856d49a00cc4371bd6a7c893f280045010040", 0x1f, 0x4e0}, {&(0x7f0000000040)="03", 0x1, 0x640}, {&(0x7f0000010400)="030000000400000005", 0x9, 0x800}, {&(0x7f0000010e00)="ed41000000040000ddf4655fddf4655fddf4655f000000000000040020", 0x1d, 0x1500}, {&(0x7f0000011000)="8081000000180000ddf4655fddf4655fddf4655f0000000000c800002000000010e10800000000000af3020004000000000000000000000002000000", 0x3c, 0x1600}], 0x81, &(0x7f0000000080)) pipe2(&(0x7f0000000380)={0xffffffffffffffff, 0xffffffffffffffff}, 0x80800) perf_event_open(&(0x7f0000000300)={0x2, 0x80, 0x80, 0xe5, 0x8, 0x41, 0x0, 0x4, 0x980, 0x4, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x5, 0x1, @perf_config_ext={0xfa, 0xfffffffffffffc00}, 0x40000, 0x7fffffff, 0x6, 0x8, 0x7f, 0x8df1, 0x9, 0x0, 0x7, 0x0, 0x400}, r1, 0x0, r3, 0xb) 03:05:31 executing program 5: perf_event_open(&(0x7f0000000040)={0x2, 0x80, 0xb7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0x0, 0xffffffffffffffff, 0x0) sendmmsg(0xffffffffffffffff, &(0x7f0000005440)=[{{0x0, 0xfffffffffffffcfb, 0x0}}], 0xfb93a852dd518c, 0x0) [ 332.201785] ipt_rpfilter: unknown options encountered [ 332.212744] ipt_rpfilter: unknown options encountered [ 332.222918] team0: Device macvtap17 failed to register rx_handler [ 332.236157] Error parsing options; rc = [-22] 03:05:31 executing program 4: r0 = syz_open_dev$loop(&(0x7f0000000080), 0x0, 0x10d082) r1 = memfd_create(&(0x7f0000000300)='\xbb\x02\xb1\xed\x97\xcb\xb1,\x116\xe0\x89]\xad\x01\xc3r%;\x99\xbck\xe7=\xfa\xf6HB\x00\x9e\xc0\xa9\xc9v\x05\xe8@\x8a|\xbd\x88\xc7\x82\x9a\x94g\xda\xa6q\x15\xf5\xe1\x86\x8e\x1d\xdf\x9d+,\x00\xd7h\xa4\x06jtl\x00\x00\x00\x00!\xf8\xac\xdc\x00\x00\x00\xd5\\\x01g\xfd\x92\x06\xb9|\x9d\xec\xdb\x9d\x94i`8t\xbd\xe8\xbfj~NO@\x1a\xfc\xff\xff\xff\xff\xff\xff\xff\x1a\xed\xaaqE\xa8\x01\x05\x00\x00\x00\x00\x00\x00\x00\x91l\x00\x00', 0x2) r2 = getpgid(0x0) perf_event_open(&(0x7f0000000700)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50d, 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}, 0x50801}, r2, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) pwritev(r1, &(0x7f00000001c0)=[{&(0x7f0000000000)='!', 0x1}], 0x1, 0x40ee1, 0x0) ioctl$LOOP_CHANGE_FD(r0, 0x4c00, r1) mmap(&(0x7f0000000000/0x600000)=nil, 0x600000, 0x2, 0x11, r0, 0x0) perf_event_open$cgroup(&(0x7f00000000c0)={0x4, 0x80, 0x7, 0x3, 0x0, 0x7, 0x0, 0x1000, 0x8000, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0xd4d, 0x4, @perf_config_ext={0xa218, 0x6}, 0x2, 0xbb, 0x7, 0x0, 0x8, 0x2, 0x83, 0x0, 0x2, 0x0, 0x1}, 0xffffffffffffffff, 0x1, 0xffffffffffffffff, 0x6) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) write(r4, &(0x7f00000001c0), 0xffffff0f) read(r3, &(0x7f0000000200)=""/250, 0x50c7e3e3) write(r0, &(0x7f0000000000), 0x52698b34) r5 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r5, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r5, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) ioctl$VHOST_GET_VRING_ENDIAN(r5, 0x4008af14, &(0x7f0000000040)={0x1, 0x4}) 03:05:31 executing program 5: sendmsg$RDMA_NLDEV_CMD_STAT_DEL(0xffffffffffffffff, &(0x7f0000000140)={&(0x7f0000000040)={0x10, 0x0, 0x0, 0x200000}, 0xc, &(0x7f00000000c0)={&(0x7f0000000080)={0x20, 0x1412, 0x734, 0x70bd2a, 0x25dfdbfe, "", [@RDMA_NLDEV_ATTR_RES_LQPN={0x8, 0x15, 0x4}, @RDMA_NLDEV_ATTR_STAT_RES={0x8}]}, 0x20}, 0x1, 0x0, 0x0, 0x11}, 0xc7354462854080ac) syz_mount_image$iso9660(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x0, 0x2, &(0x7f0000000200)=[{&(0x7f0000010000)="014344303031", 0x6, 0x8000}, {&(0x7f0000010600)="0243443030310100004c0049004e0055005800200020002000200020002000200020002000200020004300440052004f004d002000200020002000200020002000200020002000200000000000000000be000000000000be252f", 0x5a, 0x8800}], 0x0, &(0x7f0000011e00)=ANY=[@ANYBLOB=' ']) r0 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r0, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r0, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) r1 = socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$l2tp(&(0x7f0000000140), 0xffffffffffffffff) sendmsg$L2TP_CMD_TUNNEL_CREATE(r1, &(0x7f0000000240)={0x0, 0x0, &(0x7f0000000380)={&(0x7f0000000040)=ANY=[@ANYBLOB='<\x00\x00\x00', @ANYRES16=r2, @ANYBLOB="170900000000000000000100000005000700000000000800090000000000060002000100000008000a000000000008001700", @ANYRES32], 0x3c}, 0x1, 0x0, 0x0, 0x20000000}, 0x0) sendmsg$L2TP_CMD_SESSION_MODIFY(r0, &(0x7f0000000280)={&(0x7f0000000180)={0x10, 0x0, 0x0, 0x400}, 0xc, &(0x7f0000000240)={&(0x7f00000001c0)=ANY=[@ANYBLOB='8\x00\x00\x00', @ANYRES16=r2, @ANYBLOB="00042bbd7000fcdbdf250700000005000d000100000014001f0020010000000000000000000000000108001800e0000002"], 0x38}, 0x1, 0x0, 0x0, 0xbbee922c07b749c}, 0x14) [ 332.257102] EXT4-fs warning (device sda1): ext4_ioctl:716: Setting inode version is not supported with metadata_csum enabled. [ 332.292924] Error parsing options; rc = [-22] 03:05:31 executing program 0: r0 = syz_mount_image$squashfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x100000001, 0x0, &(0x7f0000000200), 0xa, &(0x7f00000000c0)=ANY=[]) r1 = syz_open_procfs(0xffffffffffffffff, 0x0) socket$nl_netfilter(0x10, 0x3, 0xc) preadv(0xffffffffffffffff, &(0x7f0000001780)=[{&(0x7f0000000400)=""/113, 0x71}, {&(0x7f0000000480)=""/4096, 0x1000}, {&(0x7f0000001480)=""/255, 0xff}, {&(0x7f0000001580)=""/213, 0xd5}, {&(0x7f0000001680)=""/235, 0xeb}], 0x5, 0xf2d, 0xfffffb91) preadv(r0, &(0x7f0000000380)=[{&(0x7f0000000140)=""/132, 0x84}, {&(0x7f0000000200)=""/170, 0xaa}, {&(0x7f0000000080)=""/126, 0x7e}, {&(0x7f00000002c0)=""/26, 0x1a}, {&(0x7f0000000300)=""/127, 0x7f}, {0x0}], 0x6, 0x9, 0x8) sendmsg$IPSET_CMD_SWAP(r1, &(0x7f0000001900)={&(0x7f0000001800)={0x10, 0x0, 0x0, 0x400}, 0xc, &(0x7f00000018c0)={&(0x7f0000001840)={0x74, 0x6, 0x6, 0x303, 0x0, 0x0, {0x2, 0x0, 0x7}, [@IPSET_ATTR_SETNAME={0x9, 0x2, 'syz0\x00'}, @IPSET_ATTR_PROTOCOL={0x5}, @IPSET_ATTR_SETNAME2={0x9, 0x3, 'syz1\x00'}, @IPSET_ATTR_SETNAME={0x9, 0x2, 'syz0\x00'}, @IPSET_ATTR_PROTOCOL={0x5}, @IPSET_ATTR_SETNAME={0x9, 0x2, 'syz1\x00'}, @IPSET_ATTR_SETNAME2={0x9, 0x3, 'syz1\x00'}, @IPSET_ATTR_SETNAME={0x9, 0x2, 'syz1\x00'}, @IPSET_ATTR_PROTOCOL={0x5}]}, 0x74}, 0x1, 0x0, 0x0, 0x4000031}, 0x4080) openat(r0, &(0x7f0000000040)='./file1\x00', 0x0, 0x0) 03:05:31 executing program 5: perf_event_open(&(0x7f0000000180)={0x2, 0x70, 0xa1, 0x80000001}, 0xffffffffffffffff, 0x0, 0xffffffffffffffff, 0x0) r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000000c0)='memory.events\x00', 0x26e1, 0x0) setsockopt$bt_BT_FLUSHABLE(r0, 0x112, 0x8, 0x0, 0x0) ioctl$PERF_EVENT_IOC_PERIOD(0xffffffffffffffff, 0x4030582a, 0x0) perf_event_open(&(0x7f0000000180)={0x1, 0x70, 0x0, 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, 0xa2, 0x0, 0x0, 0x1902a, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffff}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r1 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r1, 0x0) r2 = openat$autofs(0xffffffffffffff9c, &(0x7f0000001200), 0x400102, 0x0) getsockname$packet(r2, &(0x7f0000001240)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000001280)=0x14) r3 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) r4 = ioctl$KVM_CREATE_VM(r3, 0xae01, 0x0) syz_kvm_setup_cpu$x86(r4, 0xffffffffffffffff, &(0x7f00002c5000/0x18000)=nil, &(0x7f0000000280)=[@textreal={0x8, 0x0}], 0x1, 0x0, 0x0, 0x0) r5 = ioctl$KVM_CREATE_VCPU(r4, 0xae41, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(0xffffffffffffffff, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) syz_kvm_setup_cpu$x86(0xffffffffffffffff, r0, &(0x7f0000617000/0x18000)=nil, &(0x7f00000002c0)=[@textreal={0x8, &(0x7f0000000200)="0f01be05000f22250f20e06635000400000f22e066b9d90a00000f3266b80fbc6bbb0f23d00f21f86635300000080f23f8660f5c4c1366b9fb0800000f32ea3fd50000f30f211367670f08", 0x4b}], 0x1, 0xa, &(0x7f0000000300), 0x0) ioctl$KVM_SET_SREGS(r5, 0x4138ae84, &(0x7f00000000c0)={{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 0x80010001, 0x0, 0x0, 0x20022}) r6 = socket$netlink(0x10, 0x3, 0x15) fsetxattr$security_evm(r6, &(0x7f00000012c0), &(0x7f0000001300)=ANY=[@ANYBLOB], 0x54, 0x2) write$cgroup_type(r0, &(0x7f0000000140), 0x12000005f) faccessat(r0, &(0x7f0000000040)='./file0\x00', 0xa0) [ 332.430088] EXT4-fs (loop2): mounted filesystem without journal. Opts: ,errors=continue [ 332.439277] team0: Device macvtap17 failed to register rx_handler [ 332.444829] EXT4-fs (loop3): ext4_check_descriptors: Checksum for group 0 failed (60935!=0) 03:05:31 executing program 0: r0 = 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}, 0x14020, 0x4}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$FS_IOC_GETFSMAP(0xffffffffffffffff, 0xc0c0583b, &(0x7f00000001c0)=ANY=[@ANYBLOB="000000002a250000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fc0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004eb230e97396dd660100008000"/192]) r1 = creat(&(0x7f0000000000)='./bus\x00', 0x0) setxattr(&(0x7f0000000280)='./file0\x00', &(0x7f00000008c0)=@random={'btrfs.', '*\x00'}, &(0x7f0000000900)='.\x00', 0x2, 0x2) r2 = gettid() chdir(&(0x7f0000000340)='./file0\x00') prctl$PR_SET_PTRACER(0x59616d61, r2) creat(&(0x7f00000002c0)='./file0\x00', 0x108) mmap$perf(&(0x7f0000ffa000/0x3000)=nil, 0x3000, 0x0, 0x2010, 0xffffffffffffffff, 0x0) gettid() perf_event_open(0x0, 0xffffffffffffffff, 0x0, r1, 0x8) chdir(&(0x7f0000000840)='./file0\x00') clone(0x4c20a700, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) ioctl$F2FS_IOC_SET_PIN_FILE(0xffffffffffffffff, 0x4004f50d, &(0x7f0000000040)) ioctl$F2FS_IOC_SET_PIN_FILE(0xffffffffffffffff, 0x4004f50d, &(0x7f0000000300)) syz_mount_image$msdos(&(0x7f0000000080), &(0x7f00000000c0)='./file0\x00', 0xea6ccc4, 0x6, &(0x7f0000000700)=[{&(0x7f0000000180)="804da2e7abee2d8aa86adefad1a42ba2f22d8cb4d23c317c87c4f9e927d0356e0a9a9d85de584d4e8767749e19", 0x2d, 0xe9}, {&(0x7f0000000380)="9810ca1b8972dceeb724fd0c2e8e7d48a02a9bd39b2575433394b24e93bec6defe39661d021b17c3f89b35d200a3a7f65d9e6c25d7f9b4badf6fd6a8db1b17cedfaec974403f99e3b19577fb3ad599e449a6df6aec47456819ff7a60a2a43d37919b2e22b2499532abd4fd00e80c875291a0b32b917c98853d1d9e4c779274e2f9d626513444f552860a1f77c1fba21964e20d3bba50494051d89db770163e5c187e9a4f248541062f", 0xa9, 0x1}, {&(0x7f0000000440)="4c433c3e848771da59f63a714a6adec1a8f43843f18294245f6cc3849f3551fb410f6b3f19a7f39624d2bd6020e22681070d5f494f5e641b746f0f9dc5c32027fda396491d187ff458af115168c3d29aeb6aebec4e5829b7dc5dd8f7b1eb469369c15650b8cb2967df74352d42e6bdd7db88d0e959c67885690285918619f2c0c67ef28e97339d01886496d2ff2762ff0b0e6ef82750cc90eeefc2884e975d5f8cb402e5e0917948c7fcb7232875caccead3d6667bc43bf86fb402aea69f29219b595c565374e5db73c84485b59c3e6adf0d56fb9fd9a1c6499d4453e72801eed450ca9f4a4db823fec6", 0xea, 0x2}, {&(0x7f0000000540)="bc5225ca7855bc35bf71dd637d2a283a8b1c47ff02469fd73d26f0021656d1a336c610520897e66db8f081160b42da943d15547d831628bce4b2d508d7970540ed8ece2aa98963d959f293fc76097f64837947c2b6fd15d304c0749888282bd111afe21a07555d76810bb3ecc2f08942cfa851cfeed4db6767a0a61cdc7e43c6ea0ef83763b956f287de1328148be87aceb65c9e2c03aa01f1c67e7aaeea282ed1189014758ceb4f10cc0a70195b5a49ea1f046f2dc557918e69e633e7a8277a1526dfd398b57755f58a356cc99f65a086f84caaaf58ee", 0xd7, 0x93}, {&(0x7f0000000640)="7474194b101aad746beb7c133aaa8fb6060ab57e49786e25b85c21c7d6ca6214906482fce32f1e389c5048510e013bc303988ee378cf1cd764ae14f519584becd5b179abd7439fbf49ae4394b609fc35b25e968f263533e54a656310e1692cc8820aa7048d35a07edf55ef6db9a441fa3dd80e7c81271a497031ef14f5a4cf8909bb4ef297318c1e2b80840572756e0e50346a8ce1af54b1f3561eca8399", 0x9e, 0x8}, {&(0x7f0000000280), 0x0, 0x8}], 0x20a0008, &(0x7f00000007c0)=ANY=[@ANYBLOB='codepage=864,nodots,nodots,uid<', @ANYRESDEC=0x0, @ANYBLOB="00009a6938ce", @ANYRESDEC=0xee01, @ANYBLOB=',\x00']) sendmsg$IPCTNL_MSG_TIMEOUT_NEW(0xffffffffffffffff, 0x0, 0x810) openat$procfs(0xffffffffffffff9c, 0x0, 0x0, 0x0) mmap$perf(&(0x7f0000ff8000/0x3000)=nil, 0x3000, 0x1, 0x10, r0, 0x8) 03:05:32 executing program 2: r0 = socket$inet6_tcp(0xa, 0x1, 0x0) getsockopt$IP6T_SO_GET_ENTRIES(r0, 0x29, 0x10, 0x0, &(0x7f0000000200)) getsockname$inet6(r0, &(0x7f0000000000)={0xa, 0x0, 0x0, @loopback}, &(0x7f0000000040)=0x1c) [ 332.535800] EXT4-fs (loop3): orphan cleanup on readonly fs [ 332.555788] EXT4-fs error (device loop3): ext4_ext_check_inode:510: inode #3: comm syz-executor.3: pblk 0 bad header/extent: invalid extent entries - magic f30a, entries 2, max 4(4), depth 0(0) 03:05:32 executing program 1: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) sendmsg$NBD_CMD_DISCONNECT(r1, &(0x7f0000000200)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x200000}, 0xc, &(0x7f00000000c0)={&(0x7f00000004c0)=ANY=[@ANYBLOB="29002ca4d32fecdf6b8dd98f16bacb831ddad36db5c48c45f2ef0187bdfb23f49402c173c48200254ea2c1cf6d818a0e7434b05666bdee2f3e76014bf91935ae5891a7e6813f065cb6b6318c3dedec273690c6cd59e492f78ba75ed1de3939e21d1e2b687cc791a9032897ff9626d82dd99210b1053f71f9ddc295b0547508785388ac55f6b32583b53ce49e8b5d7bf8230e805263e286a39d69a3755cd4c7dd0b47acfd179888b9da28bdef87c3959d79851259927ab8fa6f469dbd5a78034f36ed5743c21c610789973cb7a35b0100000000000000000000000000f8159b1208d0d7a8a645a6413d21a548b208ce", @ANYRES16=0x0, @ANYBLOB="00022cbd7000fedbdf25020000000c000300ffffffffffffffff0c00040007000000000000000c0008000b000000000000000c00080009000000000000000c0002007f0e000000000000"], 0x50}, 0x1, 0x0, 0x0, 0x4008000}, 0x4004014) r2 = socket(0x1, 0x803, 0x0) r3 = socket$inet_icmp_raw(0x2, 0x3, 0x1) ioctl$sock_SIOCGIFINDEX(r3, 0x8933, &(0x7f0000000080)={'vlan0\x00', 0x0}) sendto$packet(0xffffffffffffffff, 0x0, 0x0, 0x0, &(0x7f0000000100)={0x11, 0x0, r4, 0x1, 0x0, 0x6, @remote}, 0x14) getsockname$packet(r2, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000002c0)=0x14) ioctl$ifreq_SIOCGIFINDEX_team(r0, 0x8933, &(0x7f0000000040)={'team0\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000300)=@newlink={0x44, 0x10, 0x401, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @macvtap={{0xc}, {0x4}}}, @IFLA_LINK={0x8, 0x5, r5}, @IFLA_MASTER={0x8, 0xa, r6}]}, 0x44}, 0x1, 0x18cc9}, 0x0) [ 332.649950] EXT4-fs error (device loop3): ext4_quota_enable:5718: comm syz-executor.3: Bad quota inode # 3 03:05:32 executing program 2: syz_mount_image$vfat(&(0x7f00000002c0), &(0x7f0000000100)='./file0\x00', 0x0, 0x2, &(0x7f0000000200)=[{&(0x7f0000010000)="601c6d6b646f736617e43c00088020000200000004f8000020004000000000000000000001", 0x25}, {0x0, 0x0, 0x200000000011000}], 0x0, &(0x7f0000000240)=ANY=[]) chdir(&(0x7f0000000040)='./file0\x00') r0 = creat(&(0x7f0000000040)='./bus\x00', 0x0) fcntl$setstatus(r0, 0x4, 0x6900) ftruncate(r0, 0x800) r1 = accept4(r0, 0x0, 0x0, 0x80000) lseek(r0, 0x1200, 0x0) r2 = open(&(0x7f0000000000)='./bus\x00', 0x0, 0x0) sendmsg$kcm(r1, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000000240)=[{&(0x7f0000000180)="768d3fdfbaf02013b1ba574baa263d9291a71a8ab95b7fe88bfe77dd60ccac9ce325883957d65034882cb8d5e3e81fc6eb94986869cf415abefd1a15a0bd03a2e66a3a566267a76fd78fecc3f438383de3721de45e8c0b7701b0d33a", 0x5c}, {&(0x7f00000000c0)="434f9494632662cff6bc2741b7450d2ea04cc1588bf13b68f43b034c83a15c89b194a4d3122d26e1b302a3634152d01f29db2b3c3da8ae8a05f8429653f0b9", 0x3f}, {&(0x7f0000000300)="f224195d2f95786bed66401120a199e5da53ae2d77a3f9cd07e7037824f519cf0f3ec7fdfb72ae45022aff407c9928257d147743c826fa4a6492ae2f7c3f923c0d6dce18a2d932b2f52c1f8d3caae289b6e145db9ac92d7a0cd510c454807c16999b2c8a92e0c476d751043500bd635491899ef59eda7806967962b3fe597f19bd922394212a6d09440a01ec37b68501243b5b34ca762a66c7ba49bba81c17805a15975d3b8a52ddf370875158c8cc8b5a137d5f3d78acd76d14d25fd8dfec15d892dd36bbf76495ad06bc13be0b33dc0b52f9e781fa214eaccfa620b054ffd0", 0xe0}], 0x3}, 0x4000) bind$unix(0xffffffffffffffff, &(0x7f0000002c80)=@abs={0x0, 0x0, 0x4e22}, 0x6e) perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0xff, 0x0, 0x0, 0x3c43, 0x14050, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0x1, 0x7}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) socket$unix(0x1, 0x1, 0x0) r3 = socket$nl_generic(0x10, 0x3, 0x10) fcntl$F_SET_RW_HINT(r3, 0x40c, &(0x7f0000000080)) sendmmsg(0xffffffffffffffff, &(0x7f0000003100)=[{{0x0, 0x0, &(0x7f0000002f00)}}], 0x1, 0x40008004) sendfile(r0, r2, 0x0, 0x8400fffffffa) [ 332.725554] EXT4-fs warning (device loop3): ext4_enable_quotas:5758: Failed to enable quota tracking (type=-1, err=-117). Please run e2fsck to fix. [ 332.763920] team0: Device macvtap17 failed to register rx_handler [ 332.776348] IPVS: ftp: loaded support on port[0] = 21 [ 332.810276] EXT4-fs (loop3): Cannot turn on quotas: error -117 [ 332.828399] EXT4-fs (loop3): mounted filesystem without journal. Opts: ,errors=continue 03:05:32 executing program 3: r0 = perf_event_open(&(0x7f0000000700)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50d, 0x0, 0x2, 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, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) fcntl$getownex(r0, 0x10, &(0x7f00000001c0)={0x0, 0x0}) r2 = openat$cachefiles(0xffffffffffffff9c, &(0x7f00000002c0), 0x2000, 0x0) perf_event_open(&(0x7f0000000140)={0x3, 0x80, 0x0, 0x1, 0x40, 0x8, 0x0, 0x9, 0xc000, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x6, 0x4, @perf_bp={&(0x7f00000000c0), 0x8}, 0x44000, 0x4, 0x0, 0x4, 0x3ac, 0x1000, 0x68f5, 0x0, 0x5, 0x0, 0x8}, r1, 0xa, r2, 0x5) syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file1\x00', 0x80000, 0x6, &(0x7f0000000200)=[{&(0x7f0000010000)="200000003600000019000000600100000ff68f01000000000000000004000000000002000020000020000000ddf4655fddf4655f0100ffff53ef010001000000ddf4655f000000000000000001000000000000000b0000000001000008000000d24200001203", 0x66, 0x400}, {&(0x7f0000010100)="0000000000000000000000026856d49a00cc4371bd6a7c893f280045010040", 0x1f, 0x4e0}, {&(0x7f0000000040)="03", 0x1, 0x640}, {&(0x7f0000010400)="030000000400000005", 0x9, 0x800}, {&(0x7f0000010e00)="ed41000000040000ddf4655fddf4655fddf4655f000000000000040020", 0x1d, 0x1500}, {&(0x7f0000011000)="8081000000180000ddf4655fddf4655fddf4655f0000000000c800002000000010e10800000000000af3020004000000000000000000000002000000", 0x3c, 0x1600}], 0x81, &(0x7f0000000080)) pipe2(&(0x7f0000000380)={0xffffffffffffffff, 0xffffffffffffffff}, 0x80800) perf_event_open(&(0x7f0000000300)={0x2, 0x80, 0x80, 0xe5, 0x8, 0x41, 0x0, 0x4, 0x980, 0x4, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x5, 0x1, @perf_config_ext={0xfa, 0xfffffffffffffc00}, 0x40000, 0x7fffffff, 0x6, 0x8, 0x7f, 0x8df1, 0x9, 0x0, 0x7, 0x0, 0x400}, r1, 0x0, r3, 0xb) [ 332.880910] FAT-fs (loop2): Invalid FSINFO signature: 0x00000000, 0x00000000 (sector = 1) [ 332.939289] audit: type=1804 audit(1621479932.386:57): pid=20428 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="open_writers" comm="syz-executor.2" name="/root/syzkaller-testdir649536596/syzkaller.qXJVY4/429/file0/bus" dev="sda1" ino=14766 res=1 [ 333.116056] print_req_error: I/O error, dev loop3, sector 0 [ 333.157899] IPVS: ftp: loaded support on port[0] = 21 03:05:32 executing program 4: perf_event_open(&(0x7f0000000180)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = socket$pppl2tp(0x18, 0x1, 0x1) r1 = socket$inet6_udp(0xa, 0x2, 0x0) connect$pppl2tp(0xffffffffffffffff, &(0x7f0000000000)=@pppol2tpv3={0x18, 0x1, {0x3, r1, {0x2, 0x0, @dev}, 0x2}}, 0x2e) connect$inet6(r1, &(0x7f0000000080)={0xa, 0x0, 0x0, @local, 0x1}, 0x1c) sendmmsg(r0, &(0x7f0000000280)=[{{0x0, 0x0, 0x0}}], 0x400000000000085, 0x0) setxattr(&(0x7f0000000140)='./file0\x00', 0xfffffffffffffffc, &(0x7f0000000200)='-&\',\'#-:}\x00', 0xa, 0x1) mkdir(&(0x7f00000001c0)='./file0\x00', 0x0) setxattr$system_posix_acl(&(0x7f0000000280)='./file0\x00', 0x0, 0x0, 0x0, 0x0) mkdir(&(0x7f00000009c0)='./file1\x00', 0x0) perf_event_open(&(0x7f0000000180)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r2 = syz_init_net_socket$nfc_raw(0x27, 0x5, 0x0) connect(r2, &(0x7f0000000000)=@in={0x2, 0x0, @private}, 0x80) setxattr$system_posix_acl(&(0x7f0000000580)='./file0\x00', &(0x7f00000005c0)='system.posix_acl_default\x00', &(0x7f00000002c0)=ANY=[@ANYRES64, @ANYRES32=0x0, @ANYBLOB="02000000", @ANYRES32=r2, @ANYBLOB="040000000000040008000000", @ANYRES32=0x0, @ANYRES64=r2, @ANYRES32=0x0, @ANYBLOB='\b\x00\x00\x00', @ANYRES32=0x0, @ANYBLOB='\b\x00\x00\x00', @ANYRES32=0x0, @ANYBLOB='\b\x00\x00\x00', @ANYRES32=0x0, @ANYBLOB="100000000000000020"], 0x5c, 0x0) r3 = dup(0xffffffffffffffff) setsockopt$bt_BT_POWER(r3, 0x112, 0x9, &(0x7f0000000040)=0x2, 0x1) mount$overlay(0x40000a, &(0x7f0000000000)='./file0\x00', &(0x7f00000000c0), 0x0, &(0x7f0000000100)={[{@upperdir={'upperdir', 0x3d, './file0'}}, {@lowerdir={'lowerdir', 0x3d, './file0'}}, {@workdir={'workdir', 0x3d, './file1'}, 0x5c}], [], 0xf603000000000000}) mount(0x0, &(0x7f0000000180)='./file0\x00', &(0x7f0000000240)='cgroup2\x00', 0x0, 0x0) [ 333.210586] team0: Device macvtap17 failed to register rx_handler 03:05:32 executing program 5: perf_event_open(&(0x7f0000000180)={0x2, 0x70, 0xa1, 0x80000001}, 0xffffffffffffffff, 0x0, 0xffffffffffffffff, 0x0) r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000000c0)='memory.events\x00', 0x26e1, 0x0) setsockopt$bt_BT_FLUSHABLE(r0, 0x112, 0x8, 0x0, 0x0) ioctl$PERF_EVENT_IOC_PERIOD(0xffffffffffffffff, 0x4030582a, 0x0) perf_event_open(&(0x7f0000000180)={0x1, 0x70, 0x0, 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, 0xa2, 0x0, 0x0, 0x1902a, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffff}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r1 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r1, 0x0) r2 = openat$autofs(0xffffffffffffff9c, &(0x7f0000001200), 0x400102, 0x0) getsockname$packet(r2, &(0x7f0000001240)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000001280)=0x14) r3 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) r4 = ioctl$KVM_CREATE_VM(r3, 0xae01, 0x0) syz_kvm_setup_cpu$x86(r4, 0xffffffffffffffff, &(0x7f00002c5000/0x18000)=nil, &(0x7f0000000280)=[@textreal={0x8, 0x0}], 0x1, 0x0, 0x0, 0x0) r5 = ioctl$KVM_CREATE_VCPU(r4, 0xae41, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(0xffffffffffffffff, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) syz_kvm_setup_cpu$x86(0xffffffffffffffff, r0, &(0x7f0000617000/0x18000)=nil, &(0x7f00000002c0)=[@textreal={0x8, &(0x7f0000000200)="0f01be05000f22250f20e06635000400000f22e066b9d90a00000f3266b80fbc6bbb0f23d00f21f86635300000080f23f8660f5c4c1366b9fb0800000f32ea3fd50000f30f211367670f08", 0x4b}], 0x1, 0xa, &(0x7f0000000300), 0x0) ioctl$KVM_SET_SREGS(r5, 0x4138ae84, &(0x7f00000000c0)={{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 0x80010001, 0x0, 0x0, 0x20022}) r6 = socket$netlink(0x10, 0x3, 0x15) fsetxattr$security_evm(r6, &(0x7f00000012c0), &(0x7f0000001300)=ANY=[@ANYBLOB], 0x54, 0x2) write$cgroup_type(r0, &(0x7f0000000140), 0x12000005f) faccessat(r0, &(0x7f0000000040)='./file0\x00', 0xa0) [ 333.316026] EXT4-fs (loop3): ext4_check_descriptors: Checksum for group 0 failed (60935!=0) [ 333.406466] EXT4-fs (loop3): orphan cleanup on readonly fs [ 333.418274] EXT4-fs error (device loop3): ext4_ext_check_inode:510: inode #3: comm syz-executor.3: pblk 0 bad header/extent: invalid extent entries - magic f30a, entries 2, max 4(4), depth 0(0) 03:05:32 executing program 1: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket$inet_icmp_raw(0x2, 0x3, 0x1) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f0000000080)={'vlan0\x00', 0x0}) sendto$packet(0xffffffffffffffff, 0x0, 0x0, 0x0, &(0x7f0000000100)={0x11, 0x0, r2, 0x1, 0x0, 0x6, @remote}, 0x14) getsockname$packet(0xffffffffffffffff, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000002c0)=0x14) ioctl$ifreq_SIOCGIFINDEX_team(r0, 0x8933, &(0x7f0000000040)={'team0\x00', 0x0}) setsockopt$IPT_SO_SET_REPLACE(0xffffffffffffffff, 0x0, 0x40, &(0x7f0000000380)=@nat={'nat\x00', 0x1b, 0x5, 0x418, 0x2c8, 0x128, 0xffffffff, 0x2c8, 0x2c8, 0x380, 0x380, 0xffffffff, 0x380, 0x380, 0x5, &(0x7f0000000180), {[{{@uncond, 0x0, 0xf0, 0x128, 0x0, {}, [@common=@osf={{0x50}, {'syz0\x00', 0x0, 0x8, 0x2, 0x1}}, @common=@ah={{0x30}, {[0x6, 0xff], 0x1}}]}, @NETMAP={0x38, 'NETMAP\x00', 0x0, {0x1, {0x12, @remote, @loopback, @icmp_id=0x66, @gre_key=0x1ff}}}}, {{@ip={@multicast2, @multicast1, 0xff, 0xffffff00, 'veth0_to_batadv\x00', 'netpci0\x00', {}, {}, 0x5e, 0x1, 0x1}, 0x0, 0xc0, 0xf8, 0x0, {}, [@common=@osf={{0x50}, {'syz0\x00', 0x0, 0xd, 0x2, 0x1}}]}, @MASQUERADE={0x38, 'MASQUERADE\x00', 0x0, {0x1, {0x6, @multicast1, @rand_addr=0x64010100, @gre_key=0x314, @gre_key=0x5}}}}, {{@ip={@rand_addr=0x64010100, @broadcast, 0x1000000fe, 0xffffff00, 'veth1_to_bond\x00', 'batadv_slave_0\x00', {}, {}, 0x32}, 0x0, 0x70, 0xa8}, @SNAT0={0x38, 'SNAT\x00', 0x0, {0x1, {0x0, @dev={0xac, 0x14, 0x14, 0x15}, @multicast2, @gre_key=0x3f, @gre_key=0x6}}}}, {{@ip={@rand_addr=0x64010101, @multicast2, 0xffffffff, 0x0, 'veth1_macvtap\x00', 'team_slave_1\x00', {0xff}, {}, 0xc, 0x1, 0x1}, 0x0, 0x70, 0xb8}, @unspec=@DNAT1={0x48, 'DNAT\x00', 0x1, {0x0, @ipv6=@rand_addr=' \x01\x00', @ipv4=@private=0xa010102, @port=0x4e24, @port=0x4e24}}}], {{'\x00', 0x0, 0x70, 0x98}, {0x28}}}}, 0x478) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000300)=ANY=[@ANYRES16, @ANYRES16=r1, @ANYBLOB="0000000000000000140012800c0001006d61637674617000040002800800050005e8811d9395b8e47acff096717165e5cc3ec3dff74367af44971f4f611da98d4f4ee1f61f2c81c98cca5a0929be944ee8", @ANYRES32=r3, @ANYBLOB='\x00\x00\x00\x00', @ANYRES32=r4, @ANYRESOCT=r2], 0x44}, 0x1, 0x18cc9}, 0x0) [ 333.471680] EXT4-fs error (device loop3): ext4_quota_enable:5718: comm syz-executor.3: Bad quota inode # 3 [ 333.555885] EXT4-fs warning (device loop3): ext4_enable_quotas:5758: Failed to enable quota tracking (type=-1, err=-117). Please run e2fsck to fix. 03:05:33 executing program 4: perf_event_open(&(0x7f0000000180)={0x2, 0x70, 0xa1, 0x80000001}, 0xffffffffffffffff, 0x0, 0xffffffffffffffff, 0x0) r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000000c0)='memory.events\x00', 0x26e1, 0x0) setsockopt$bt_BT_FLUSHABLE(r0, 0x112, 0x8, 0x0, 0x0) ioctl$PERF_EVENT_IOC_PERIOD(0xffffffffffffffff, 0x4030582a, 0x0) perf_event_open(&(0x7f0000000180)={0x1, 0x70, 0x0, 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, 0xa2, 0x0, 0x0, 0x1902a, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffff}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r1 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r1, 0x0) r2 = openat$autofs(0xffffffffffffff9c, &(0x7f0000001200), 0x400102, 0x0) getsockname$packet(r2, &(0x7f0000001240)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000001280)=0x14) r3 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) r4 = ioctl$KVM_CREATE_VM(r3, 0xae01, 0x0) syz_kvm_setup_cpu$x86(r4, 0xffffffffffffffff, &(0x7f00002c5000/0x18000)=nil, &(0x7f0000000280)=[@textreal={0x8, 0x0}], 0x1, 0x0, 0x0, 0x0) r5 = ioctl$KVM_CREATE_VCPU(r4, 0xae41, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(0xffffffffffffffff, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) syz_kvm_setup_cpu$x86(0xffffffffffffffff, r0, &(0x7f0000617000/0x18000)=nil, &(0x7f00000002c0)=[@textreal={0x8, &(0x7f0000000200)="0f01be05000f22250f20e06635000400000f22e066b9d90a00000f3266b80fbc6bbb0f23d00f21f86635300000080f23f8660f5c4c1366b9fb0800000f32ea3fd50000f30f211367670f08", 0x4b}], 0x1, 0xa, &(0x7f0000000300), 0x0) ioctl$KVM_SET_SREGS(r5, 0x4138ae84, &(0x7f00000000c0)={{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 0x80010001, 0x0, 0x0, 0x20022}) r6 = socket$netlink(0x10, 0x3, 0x15) fsetxattr$security_evm(r6, &(0x7f00000012c0), &(0x7f0000001300)=ANY=[@ANYBLOB], 0x54, 0x2) write$cgroup_type(r0, &(0x7f0000000140), 0x12000005f) faccessat(r0, &(0x7f0000000040)='./file0\x00', 0xa0) [ 333.604386] EXT4-fs (loop3): Cannot turn on quotas: error -117 [ 333.618443] EXT4-fs (loop3): mounted filesystem without journal. Opts: ,errors=continue [ 333.653096] audit: type=1804 audit(1621479933.096:58): pid=20428 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="ToMToU" comm="syz-executor.2" name="/root/syzkaller-testdir649536596/syzkaller.qXJVY4/429/file0/bus" dev="sda1" ino=14766 res=1 03:05:33 executing program 3: r0 = openat$zero(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) r1 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x380000f, 0x12, r1, 0x0) preadv(r0, &(0x7f0000000280)=[{0x0}], 0x1, 0x0, 0x0) mmap(&(0x7f0000000000/0xfbe000)=nil, 0xfbe000, 0x7, 0x31, 0xffffffffffffffff, 0x0) prctl$PR_SET_PTRACER(0x59616d61, 0xffffffffffffffff) clone(0x80100900, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) r2 = gettid() wait4(0x0, 0x0, 0x80000002, 0x0) vmsplice(0xffffffffffffffff, &(0x7f0000000100)=[{&(0x7f0000000000)="0f34", 0x2}], 0x1, 0x0) ptrace$setopts(0x4206, r2, 0x0, 0x0) bpf$BPF_BTF_LOAD(0x12, &(0x7f00000000c0)={0x0, 0x0, 0x153}, 0x20) process_vm_writev(0x0, &(0x7f0000000080)=[{0x0}, {0x0}, {&(0x7f00000193c0)=""/102389, 0x18ff5}], 0x0, 0x0, 0x0, 0x0) tkill(r2, 0x40) wait4(0x0, 0x0, 0x0, 0x0) ptrace$setregs(0xd, r2, 0x0, &(0x7f0000000080)) r3 = gettid() rt_sigqueueinfo(r3, 0x3e, &(0x7f0000000040)) 03:05:33 executing program 1: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0x1, 0x803, 0x0) r2 = socket$inet_icmp_raw(0x2, 0x3, 0x1) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000080)={'vlan0\x00', 0x0}) sendmsg$inet(0xffffffffffffffff, &(0x7f00000000c0)={&(0x7f0000000000)={0x2, 0x4e24, @remote}, 0x10, &(0x7f00000015c0)=[{&(0x7f0000000380)="45823a5ee124283802c411934077e863296c2341da91d8eba33a225082ccc813515b20ecb875c8464757a974c6d5bd99c7784f24beef288db82fb454ae3e7bbdaec0844175b57a5c6c70d4e0d2b2ed71d33da478182fedac5f8c5b17410a3290ada3b778d032c5f6795b8774cecd80b4b0408be9c675fc356a9206a07c9b6c408489e30db3881c932756f4346361025ed3de129f30eb26424b1cbd6207bed52a6520f1954c6f50e6a86ac27c67fc7826f81f63f0f928132d9d84001b640df994f6b4af173b00daacefccf21c4fc3ae396bed75da698e4d2ec5b73cdcd3df4c03204abb257876f101ba72e5278e1b621009e477f114ee6e3e1c6a334a3624820b4b053cabdb4ada14b9e90d59c15706643b8a2627276bfe5348ea21202b38d471c7cee1aa9b20bf759bd2ac7395ad864f074ddd1b3c151d093fc1d718046816dc087a3d76d5ef88cafeaf2ca292d0259e7a311732a567824758649f43f85e33b44e6ed6f82f5e8a75c6e1acca7b66a1dbae75a2f4d3615d39a9fcf6de89caaf53733b27ad1c13de76e07d0c83cf70632c33185b59c004554a36c58e361ba6e715ab0589fd1c4663c8c4787a792a3cb7e8abb24e2eb0bc0978e33de8d1240bf6027b8e04fe4d1396e783922aae9a20b47590950a5906b348f4813082d0ced42a6561b4568c20f8198db86efd364ed55ffca6ca65074daf83f7ea3c9079bd46ffdde0fa7be9627ad33b7de04a2a8e9ed4c6a36a559dc984d82a6307d1897b3cf65155796851ccc91e956edf9613cd3cb54353bdee0d2c64ad89cfa5fc6b072cbe887a0bb222a2dbfa06c03fb45ad7cbf7ad3d394a64a510b65d2313022b0904e56a20b490f956cea0840b69f7e0bae1c25d2172b0b18a084a2eb0e8312e964379f337cf615a699ba7a5915371bcb4476376ccc25fe69d45a196a594d1bac24b2d11edb85ad00f3b61c2bb0ba561e90917bb52507da12d09f2c3542090bb845ccc648c622a1e6175b383d46ab2b69ea5bfa7430678ca734a4800798a33a64a076139fe73a2bee223466f4b7564e531d033fe4473548778463a64aa76d104f42400c51d9860b2769d962c61adb8f875366df8fd44ea741276a871c07efcaf388733ca7b5382909ea331c7f65524214d2976623ecb53d1e01af8e34caabb6af3193fd68e0fe267841d6667fcb4cd8b866a3dc76df2fcc71011191671f38aeb7e59d743b279e526ae80247047306cc4830f6921f446dbb7645422e86f2c8a23198e53892b021c4bd2497ee5005c5bc7dc1c93814115ea9e7087a5e667686c7525ca236cf10a3935d5250fa046d236648be7e9a74304eaff389182b9275b4e9ebf1cbd662a2949ad00b87eb8a401eb0b2226387ada2f56fe80beaf5c7fca493b814ef932e26ab494de52c0287e850d0216ad34945259cd62c2386e7d35daac808c19e5de03cd7070cddc0fffdc25effc40ab0dab776cc7106e8016796a497edc036c38e88701423887a85d2b03eb2d97cfedfcc36085ac8943e698b2f87826f3f5778fd717955773c9f9a8b05249e10a3f5316e6a1f3163016081451a38c2e8ad286471ec2e8dc5f42e44c97f7bc1e188a53207aae0717aeaa86aa877819bae8017961be9a5c98a88183e990c80540575fced2a6471a0f48b07fd34d8afdc763f39aa50e8cf3378c796a8d65251cc343411d7760a63c6ede458c8332b349fe406870510a5cd3fd41ced9168d221f3c09808179ded8dbdbd4b64ae62fa1d630814f9b196f493c8ac09a276440b0f087fd82e5c4c5f5425051d97fe966bd5040d04e44bf214cac2adc9e23fb2a88db3b9589a3d5382f816f9e79c09f641f6de174590d109a0ea28b28852103ebe41c001d82c2147befffccb682d0a8d7b53691779e3026fb3702438fac8a56e3275d5e57c32875d44a6c1dcfba045e5326244ed52f4018347e01a68dceac3576fe5b84a3c13f7e4463ac5ceed5ea560d15f36b579fbd1d9bcd3098b651db4ea1dd9d3a071277dc9f89ee2d78c27966363b836f33719ea460b52a81946617e6cf0257894ecd3162120089bb489d9381ff59b007429d18602ada8b621c5e69fcca63200d8150d2924550388a6295f0c285b9ad425598d30ba5e0f527ad1e3430e78cfd9d0c9ee31d5a8434dbfa473f0ecba91c66adc7a651b6cf2e772577e9202f38f4b4cbb738ec022537ac636d20dd2285d77afab1460a0062792f7056f87944650b78039a9187eac964a00be6357e83b52d58826b7bf5f6e6a393aa0843f8275cc339a825d2c57954046506c71a078cbdd4ddeb71a90778a2bbdceaabc9033b7816208f813ceb8fa04511140de4269fc07d388710f9280546a6e4e496331659f8428a3a449c817d207abadc9ce98e46190390307ea14ff334e161f7726a2ab9801d8eaf8788844553cb5a989d7b688a5b30e25bd4144f24fbdde8fd2dea2a78bb77c89195bd930e32f2390da309f175e41e080ffbb1912ca2e9e00be57f808b8bf904a1236a7a52c0f03dd72cf182bae4546091a744f1aa4ebcc15464d5a534e86c5fa7ca3f06f8f23e0dbdb1fb1bd47937341d3c084249d523787a3d83ad0041c1e0fa7c2b25e3db3d4de5bb3c281a1a958dc79fb400d12753253b334b752e743d2bdb673041eb3936f56d2af2a9b6779c9387ece4f312257fe1042ac3449067f869678e46e237fa125956ab4b2d23a8598b799c91d6f9312b6e973611d00abcc09aba4a24751705125d67b43f0acc908aba296b6b97b980640a6666f3cdb6a4785b5459f3769a5f51b11cfbd0bd51ddcef3bdef9fbc0346fa582845d2f167e5dfd4a39b5259b3d157cbbee883f8406c26ce684fb359603fcba88be8f2aacf121e251a87d7501b1ad061a3854cb5bc0efb2d763fc8ca2f7d4184a3ee13c185126da22dc20956f2330a045fe8e5d4fee4efaefdc02a6ae183555b6c27aec67ff486b885efce4e928160860e6aff0967ad831778ce87d105d802eb6b1aeb23b417b8a22baabc0f8506024e6d7b41171e4adaeaf381b9e7111ab15c6d564a21e2aa2b684bbfd9e71949d1e34f2407e5ca67e2f31aae994744b02a83af4e2490922e205c260a247ca05ed23655ccb5948538154306353f1a5bbb98bc65aaad66678fc932dffb30e4ecbee66ad2816e7f8b8a8263ccfd606c19553c3c5de5ff0c3668fe5e74f9db2f5d48580e660d6b72b1e41d67e49dc3589f59b53c61f1fedcf183f7611304d1317adbf9a745757739c4d3a24ea4bcd6cb85fc7cc7d30eaf0635d99caab4fec30d1efbd7da221e579d1cb6f4c97641122e51cf1b07314a125e9076ad8143bb53399cd3bc62ff751923aa9efc96b43680fbf07b626c6b8deb8b9461b2243ae248da91f515da175d9ca608087849496f9c665e41c857b3432075ff8aaa82b53288b1da4f276e0d68721e9b19df48a4530122bd3dc24c20d2d208278c47dd7046d37c2282fd0f3eeb773faa28bbe8fbda0bf6a4f4840e69a042e308c363f0aa36772b5491b105e6575463de0423511fc4ef420a6b9fea9595c6fee783f3e9f213e098672baf93e8a91322b48ff377fa06d0d56188b7f04577dd752f727fd8b10812db5db1b61df0a1fcca6d7b3d20cc7e9b8ab2dee5600e39422ddd3c2ff6a89833712bd7ae99c3a4cc00e304cc5a9a54bbc6541854001ff410bf83fc8a9864c89ac5ffa99adaefb54253cab64415d1f614b479677c484bf11fe835c8c3171d8b879b15c1dd05f1b843a7998f8f286402ad7857d37ab9c92b1e21b875aaa50c53c68e996846273f98171f5aef39a842e09c69342faa9396bc2ef11222d2643873a294a31dc3d0b620dc39b5aaa3c0abf817d954256d692a2a0f2b5762cae793b8ea90fda642f189abb7602ee3ae5672641d884506ee1f5c3079360d096c6e11f8ac088cdc4eee0f9c7a9066c9770e988b5a254891af5fe20d39a551d5ec19821f83713433bf0cbdfa0c63ad44b5850df1236e97f66e1cc79d08635a36ae1d1cfd6387489849b7e27cb8cdb75fa0fcf409044cc768130b7ec2b00268e26241537683180fad27ba0e8a66c2a4a1636f3528213a1fb5e5fccbee9134d6c2185719a2288e8f730fc1bdc22ae3bcd81767d4f3570d989289b113a0be7881363a44272710cb732fad9cd821c83bd8ad3f21e61e82185eb570777152f7a89507707c639519393df191a909afdfd8900fb8869bb86e9310068a2f5ea2ab709a67cfdda3f4d2a9ce6aff85c7c6d11734cfac13572f1f48d1c5fdf534aa21b7ebd9666389fa15f7d76c75fb88ce4f1550ed5211c2131a69464e286fc1e1a4a11caea6e7546b087da746a1ed4a594ce4cd0dbde8f48d152765b94229acffde1527113560bc841c780049fc55741c01e6677e88cde10b406df3e783de4ca87b9f51ab49930fd4a16c7876fbfcb491e565925c595d47244ce4a1c69d6d32ec0096342379157748047eecd5d3d59ec7b9ffaf14e2e5d6b52dda6d75d31dfafff00820ebcebfff076482e4462b4c55dfa1a27d4e91d598e3ee64e3c730cd91e8e04c376245a4ea81e481c1f98f602db4a5c25ed91c4273774993a0b939dd9b289815a15327d51222548454ed0b7be8a14a4500299033e0506c2a7c4924c8b0e5e8898ddf75b8671ebeb8b117ec3c8e4cc97ba62481a84325644a2782000bb8b6c0623723518a8464a7be87091fdf8f9d1a5a4cbf6e52df6c445da215b0cb185a84a44798f451a0df1e13cea8aaccd464600df9d667a7c4da0d617eee685886ee520ff0d4ed99c58d14cc4941d6927bc739e169c9b9e11f6af9e9fd27d5dd09ed37363a7f76db7ccb95801860d25a683f50aedaeaa987069bb69b755bf29a73a62b14355e31ffe23a3d7572b72db699b3cda867c1e7c2c804532beaf851aa0f06e10984df8fe44c1bfcfe110b823e57f8ab84ed9bd27acc0bbc0437a7f55b4ebee87c84773136e49b06d906af7bf79fc50c54edb9bbfbc8692fec16dd9f1e1ba61acb7c3b6db75bf11be05a2ae6fce97920c137cc005bd6e9361c6e218f5e8e86f45e8217a1e53e5d5fa13bb82c09ba978f5071efaaed43f2f8b8c411397e813a0eb5c11c9d1146b21513c7a29b7792e971b874f3ab4c80bf27efd8cb9edf76f51b4ce75f3af0a2d9d1e4cdf3eaf026d503a3fc42e5aface0f75a1b72b097742069558f0fb00e4d27e7a1309f15203655d10543f8676b6992f2fb395a8a7f5a465477bf0f4a650b2313b6e471b066b6748d9393be2b130b23a8305df6957a5e15531f53b154f7976a71cba2e5f4063cf56b7466de3dd70998009dc5af78b52b588edfa766b04ac2d08aa8da0a7d942308be9891675c08ec1175744edacd76f690ce2d40bc78bb022dec1433422af4febc49971a0d11069b4a55ffa88af777e5cac558237c70eaddbb6bf815fe81bc12344853389f59155d87f0ff5b7596c73252ac31a399c4bc0f97764ca6d08c2120cc800fdf52507e61b3dd925deb6a4b5c7b73fe98e9ab126a3e78d807c4082c2c4071c27169077e160623f967cefea2a7e6373ac74ecd6914549f7f643b5140358f7ab615fe61907a91848ab6e06a2d7abafa189d3849084a87a5c1a3e4265fe3ba544e4e26b70e3f188492a44cc9365409837d678057f1a11feff1723389114297f6bce80d92736290536ff378c2fdf4732ca6f3dcb9b9a29f1918fe9809e0f57b0668c950edb7e5796cff03cca5f03a4e1df4f6c2663f422a87e82b7c90662ac43835ee287f41c05659d60c85ed3afbdfc6cd77a9f25d229749670a2ac94f70904eb3f4f6f73df599bfa2a0", 0x1000}, {&(0x7f0000000180)="7bfab1ccca6ad63eb16461f7afd76c358d3fa79aea5f948d263f848d2a45efa8c73a98fc4a4d09ab6f7d9437bc44e854c57d3caacb984582fca15be7fa972297b2219ef3d9124e45db75a85fb293d7b8393636a92a713b105c0c0c64919db9d37b43443cd2b30fa84390a54c2c5157fc17eb736e0c4984c9c871777d8d41c49d55ff073cad881759e811fd52858e3cf00c58ad80c04d2f04d2997a0b6423cbfd31abed86cb991bdf9a4a32840e0898f953c579709e5a47224c949a5373881764274af3c57814b6f9dbf92f5070b4325c", 0xd0}, {&(0x7f0000001380)="b0b222d67162ea5ae4dfc1f6ee7c7de38ce7432016ac3121fbbc008b292f67542cabb480fbf622350e1682e0f4a8fe70f61aa440ba0e7f4299ad1d9f7cd9399242342773c35026d8b0d17c4e63c65b6ce756631b97bb1253b7d0543aed6510d2b2095c53a5f6c57c3cc2b4bcce1e8bd660273c82223e679970e57c5434ccfb75d7933228accdcc7504d5485a090be668da42ef2e4ba8d359b2341ebed99ffb53238e2232715b20220337979db4788aea0c57b75cef08404a7f42956ef0ddc6c178a5b4062d600c0a65208431e4d6439374ce8db744587118de46b663008cac620384", 0xe2}, {&(0x7f0000001480)="711fd4e964793513b44dde16a9e76391aaf2563d3899e8fb1f7b9841ec2f22f6125f8bd49d39ea8766e94549300a14779152dccd1868d338867239cc9979b682a700a114737ffd7f9d5c0d4709656e229a0f3a34a62062d570ae673a47085c26337b7e4666530edacbf62d89059b66b5edd70f042c61e37827fe915b10d5a5dbed15e9603dbd8e35cd2bde4a5bfbb9753c3f2d86678b", 0x96}, {&(0x7f0000001540)="6c3eca561f7a78bcfe0a397c3f4dd02f7dc840416971d9102ec425dc417ee749b281523ad77c558a2c6083f723c6861438f79e7198cea1eeef57df4720eb6332b435b5a49d39589064284516652d21127cba9a8bf4fae2a3086bbcf8f83c", 0x5e}], 0x5, &(0x7f0000001640)=[@ip_retopts={{0xec, 0x0, 0x7, {[@timestamp_addr={0x44, 0x34, 0x27, 0x1, 0x3, [{@private=0xa010101, 0xff}, {@initdev={0xac, 0x1e, 0x0, 0x0}, 0x9}, {@rand_addr=0x64010100, 0x3ff}, {@multicast1, 0x2}, {@loopback, 0x1}, {@multicast2, 0x5}]}, @ssrr={0x89, 0x1b, 0x8d, [@local, @private=0xa010102, @initdev={0xac, 0x1e, 0x0, 0x0}, @local, @multicast2, @rand_addr=0x64010101]}, @noop, @timestamp={0x44, 0x8, 0xec, 0x0, 0x5, [0x1]}, @cipso={0x86, 0x36, 0x3, [{0x2, 0xe, "505ff60b8b789f31eb510d0f"}, {0x0, 0x4, '!X'}, {0x7, 0x5, 'MC\b'}, {0x6, 0xa, "6f96da88f8ff98b7"}, {0x0, 0xa, "fc67b42dc100e9de"}, {0x6, 0x3, "9a"}, {0x6, 0x2}]}, @timestamp_addr={0x44, 0x24, 0x27, 0x1, 0x2, [{@multicast2, 0xfffffffb}, {@loopback, 0x1}, {@multicast2, 0x4}, {@private=0xa010102, 0x15ea}]}, @rr={0x7, 0x27, 0x33, [@initdev={0xac, 0x1e, 0x7f, 0x0}, @broadcast, @private=0xa010100, @rand_addr=0x64010101, @local, @local, @multicast1, @private=0xa010101, @multicast1]}]}}}, @ip_retopts={{0x3c, 0x0, 0x7, {[@ssrr={0x89, 0x2b, 0x2d, [@remote, @remote, @empty, @rand_addr=0x64010102, @multicast2, @rand_addr=0x64010100, @remote, @initdev={0xac, 0x1e, 0x1, 0x0}, @multicast2, @private=0xa010101]}]}}}], 0x130}, 0x404c010) r4 = openat$hwrng(0xffffffffffffff9c, &(0x7f0000000280), 0x5a1000, 0x0) ioctl$ifreq_SIOCGIFINDEX_wireguard(r1, 0x8933, &(0x7f00000017c0)={'wg0\x00', 0x0}) fstat(r0, &(0x7f0000001800)={0x0, 0x0, 0x0, 0x0, 0x0}) sendmsg$nl_route(r4, &(0x7f0000001900)={&(0x7f0000001780)={0x10, 0x0, 0x0, 0x2000020}, 0xc, &(0x7f00000018c0)={&(0x7f0000001880)=@ipv6_getroute={0x34, 0x1a, 0x2, 0x70bd25, 0x25dfdbfd, {0xa, 0x20, 0x80, 0x2, 0xfe, 0x1, 0x934f354309069465, 0x3, 0x4300}, [@RTA_IIF={0x8, 0x3, r5}, @RTA_UID={0x8, 0x19, r6}, @RTA_IIF={0x8, 0x3, r3}]}, 0x34}}, 0x4000081) sendto$packet(0xffffffffffffffff, 0x0, 0x0, 0x0, &(0x7f0000000100)={0x11, 0x0, r3, 0x1, 0x0, 0x6, @remote}, 0x14) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000002c0)=0x14) ioctl$ifreq_SIOCGIFINDEX_team(r0, 0x8933, &(0x7f0000000040)={'team0\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000300)=@newlink={0x44, 0x10, 0x401, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @macvtap={{0xc}, {0x4}}}, @IFLA_LINK={0x8, 0x5, r7}, @IFLA_MASTER={0x8, 0xa, r8}]}, 0x44}, 0x1, 0x18cc9}, 0x0) 03:05:33 executing program 0: r0 = add_key$keyring(&(0x7f0000000180), &(0x7f0000000140)={'syz', 0x3}, 0x0, 0x0, 0xfffffffffffffffd) add_key$keyring(&(0x7f0000000080), &(0x7f00000000c0)={'syz', 0x3}, 0x0, 0x0, r0) request_key(&(0x7f0000000440)='id_legacy\x00', &(0x7f0000000480)={'syz', 0x3}, &(0x7f00000004c0)='-\x00', r0) add_key$keyring(&(0x7f0000000000), &(0x7f0000000040)={'syz', 0x1}, 0x0, 0x0, r0) 03:05:33 executing program 5: r0 = perf_event_open(&(0x7f0000000100)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c42}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$netlbl_mgmt(&(0x7f0000000080), 0xffffffffffffffff) perf_event_open(0x0, 0x0, 0xf, r0, 0x9) sendmsg$NLBL_MGMT_C_ADD(0xffffffffffffffff, 0x0, 0x0) syz_genetlink_get_family_id$nbd(&(0x7f0000000240), 0xffffffffffffffff) r1 = syz_mount_image$squashfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x100000001, 0x1, &(0x7f0000000200)=[{&(0x7f0000010000)="6873717307000000911d675f001000000000000001000c00d00002000400000026010000000000000602000000000000b501000000000000ee0100000000000099000000000000003e010000000000008501000000000000a30100000000000078da2baeacca4eccc9492d2aa61d030085492b1f78da2baeacca4eccc9492d2a1e658c324619a30c1803005565c4a273797a6b616c6c657273a30078da636278cbc8c0c0c83051363d1ec8604800e2ff4000a41852805804889990d43003f925486aa4581818a4813433c37fb81aa01003c82c3520d62fc92dd02faeacd2cdcc4d4c4f4d4fcd3331b434373733b634d24fcbcc493580908c48363031400088d604627620e644926705f2fba16ab81850012392cba0f28cc87ad9806233a1721acaa87a9990f4229b0131f700dc0c76a818282442807ee400d2008b6a3509450078da63648000662056016226061686b4cc9c54030f0646a0208463c80255c508a5991838c0127ac9f939296d40614698b6654006cc0cc3470cac708e1132c71800421f11fb1c0078da636080803628ad02a53da0f43228fd084aab3142680046df02a2850100000000000008805cf90100535f0100ab010000000000001d0078da63606063a8482c29293264636080b21860624670312300b5bc09ab108000000000000000000200000024000000bd010000000000000100000000000000dc01", 0x200}], 0xb00, &(0x7f00000000c0)=ANY=[]) syz_mount_image$ext4(0x0, 0x0, 0x0, 0x0, &(0x7f0000003500), 0x0, 0x0) openat(0xffffffffffffff9c, &(0x7f00000003c0)='./file0\x00', 0x101000, 0x0) timer_settime(0x0, 0x0, 0x0, 0x0) clock_gettime(0x0, &(0x7f00000001c0)) timer_settime(0x0, 0x0, &(0x7f0000000280)={{}, {0x0, 0x989680}}, &(0x7f00000002c0)) syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) syz_mount_image$squashfs(&(0x7f0000000180), 0x0, 0x0, 0x0, 0x0, 0x2, 0x0) openat(r1, &(0x7f0000000040)='./file1\x00', 0x0, 0x0) clock_gettime(0x0, 0x0) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000000c0)='memory.events\x00', 0x26e1, 0x0) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000100)='memory.events\x00', 0x100002, 0x0) write$cgroup_subtree(0xffffffffffffffff, &(0x7f0000000000)=ANY=[], 0x32600) ioctl$PERF_EVENT_IOC_PERIOD(r2, 0x40046629, 0x0) [ 333.737530] audit: type=1804 audit(1621479933.126:59): pid=20418 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="open_writers" comm="syz-executor.2" name="/root/syzkaller-testdir649536596/syzkaller.qXJVY4/429/file0/bus" dev="sda1" ino=14766 res=1 03:05:33 executing program 2: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) r1 = openat(0xffffffffffffffff, &(0x7f0000000180)='/proc/self/exe\x00', 0x0, 0x0) preadv(r0, &(0x7f0000001dc0), 0x0, 0xd9f, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f00000000c0)={'veth1_macvtap\x00', 0x0}) accept$unix(r1, &(0x7f00000001c0), &(0x7f0000000040)=0x6e) r4 = dup3(r0, r1, 0x0) r5 = epoll_create1(0x80000) r6 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r2, &(0x7f0000001a00)=[{&(0x7f0000001640)=""/132, 0x84}, {&(0x7f0000001700)=""/167, 0xa7}, {&(0x7f00000017c0)=""/8, 0x8}, {&(0x7f0000001800)=""/141, 0x8d}, {&(0x7f0000002180)=""/4096, 0x1000}, {&(0x7f00000018c0)=""/208, 0xd0}, {&(0x7f00000019c0)=""/12, 0xc}], 0x7, 0x4fdd, 0x80000000) preadv(r6, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r6, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) r7 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r7, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r7, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) recvmsg(r7, &(0x7f0000001600)={&(0x7f0000000240)=@l2, 0x80, &(0x7f0000000400)=[{&(0x7f00000002c0)=""/181, 0xb5}, {&(0x7f0000001440)=""/247, 0xf7}, {&(0x7f0000000380)=""/39, 0x27}, {&(0x7f00000003c0)=""/56, 0x38}], 0x4, &(0x7f0000001540)=""/179, 0xb3}, 0x10000) openat(r6, &(0x7f0000000100)='./file0\x00', 0x1611c0, 0x0) ioctl$LOOP_SET_FD(r4, 0x4c00, r5) sendmsg$nl_route(r2, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000001a80)=ANY=[@ANYBLOB="4800000095806ca884c5e0eb", @ANYRES32=0x0, @ANYBLOB="0000000000000000200012800b0001006d61637365630000100002800c000100000000000000000008000500", @ANYRES32=r3, @ANYBLOB="6f4f303421114c7caa891576e642d465107ac3535d80a5c6332d140dd91197a59ffb59ee32e7037d6acec39a5bc2294fff11bea0f5ec36b10b4c3fce7fbb8bc68a"], 0x48}}, 0x0) 03:05:33 executing program 0: 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, 0xffffffff, 0x0, @perf_bp={0x0, 0x9}, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0xea5}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) chown(0x0, 0x0, 0x0) r0 = syz_open_dev$sndpcmp(&(0x7f0000000140), 0x0, 0x163002) socketpair$nbd(0x1, 0x1, 0x0, &(0x7f00000017c0)={0xffffffffffffffff}) ioctl$int_in(r1, 0x5452, &(0x7f0000001800)=0xffffffff80000001) r2 = dup3(0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$SNDRV_PCM_IOCTL_INFO(0xffffffffffffffff, 0x81204101, 0x0) ioctl$SNDRV_PCM_IOCTL_HW_REFINE_OLD(r0, 0xc1004110, 0x0) openat(r2, &(0x7f0000000000)='./file0\x00', 0x100, 0x158) r3 = openat$ttyS3(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) ioctl$TCSETSF2(r3, 0x402c542d, &(0x7f0000000000)={0x0, 0x0, 0xffffffc0, 0x0, 0x0, "bf0053e48c02cdbc172743f7f1a262d1f42325", 0x0, 0x4}) r4 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r4, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r4, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) sendmsg$kcm(r4, &(0x7f00000015c0)={&(0x7f0000000180)=@in={0x2, 0x4e22, @multicast2}, 0x80, &(0x7f00000004c0)=[{&(0x7f0000000200)="91db3a0e4efb4fabf6762cd69d59fb7015e58120b3b538f16c820068dac7036120d77ea3ee5d9f5549596f7d0e8c280581eb6013635d9050bb597ab90964cb1ac5fdd7c98f00295fd215f659ef2e6724ac87c0238ad35be89d3db03040ee10c53357d6e46c6ef35440ba2d897484877a27732deafa8c30273bd8ba64943b57a6fb95ea676eda9cf1287182b5e48cb6f2d274a5a7f3c2bfbb5e0b95273d29a2423f337a615f515f7d2f6f9414cda249be3f4b1fa85a6503b26e9b79fb3995c37df0f160272e4c8bcdb1ce617a280f8ea9b9b833c94053a2e270ec60e6b2db4c9a9c58dc17bbeda8feabbf", 0xea}, {&(0x7f0000000300)="c9178428168f8407eae0ff66849a2e7cfc45e22730e016d026ab34c790aa3b3373b2b9c2e29998ebad64a1b9720dcc62293a4629210593edcc1fb4d3d1f863978bac6ad84b0e740b1a9155e7952ebb629d76c48399a03afd2186d43618b536248eb20dcbb50558b61dd336f21f1dc83d3377f3228ce0f9095ae0ac6c3a2373347647e0e9bdc9d69fcc1907987484f22d829053a4206cddf02e0324a313745e701a829191d2ca68816793577afd52be798a587ae42bcb98ab2a1a4b3089312e2dd6ba283e1f5504fbe2f58460d2b621ff790b10f3c9949cbc18b3b87adf5fb6c9f9cff7cc2d36728f6f", 0xe9}, {&(0x7f0000000040)="3cb607bae58ea5968690", 0xa}, {&(0x7f0000000100)}, {&(0x7f0000000400)="bedd88ae6ad696d6b2ec116095c54fb1fd0f74d59fc01820e7d3589efdde79530f0c33655b3c16092c343a87f74bd23ba4c653ec213903e171ba0743c72dcd000951362e2e0fb5b63f88c19d30d0ce4c617789799cfa446137ff31cacb815005e350d04a0b5a7037", 0x68}, {&(0x7f0000000480)="17241b2a694a4fa2fb", 0x9}], 0x6, &(0x7f0000000540)=ANY=[@ANYBLOB="10100000000000001701000004000000f5ba2239a48dd9a3ac94ae414c4c2e6da2fd3b38d867b76861b7333e22626007f1927f5588123e0433d03a817ebe7e1ecd7ec23b35478e689b5969abc7666d705641ece1af0401a44e566b0712b789e0b9711d3d9cee801504c172ef37353f8d5c2aa686f4328421b38f28ed40ef903443f4f1219fca8db795a54c2c61f4788cf29b9371d860193b2d84b33367ea83fee61ab250ac16ca51144c62bf12f4be4611dd171f5dff64408f2dbea2b04c14cd0b46c828d92d086a54628613c4fda19d1fee637bcaf2bb153afa5be5a99eb961f003127bc8ab0e935744ae452e7c8d110161529021235af0bb061cabcbe7d49f11cdcd8fee82a018004b2fc359e3ba14858315add33c27829eaf00b7a7823dbbeb58e45c80ceaedf379a60cef61f1e26d03a89e7a2b0b3c6dd6dd2c49409f88fc35330f61a0babde3e31f1c155b5d73354f10d754800fd94c151763de2ba858a38947464d4d191e19d58b04bb47ff2ac54eee8641e86ab49eca38e8bf6cfa9c38089ad36d99852f0fea4bd2b12e4020593b40f74b3319d571f170ce084dbf2ca4b6b26ebebbc8be4d3d9aece7f9773b42d13f06c79eb361f550f2f584473c775681057223051c8f8dc4c46715b2a2c7383d43f9720a55b3edce4d2521acf3a57a4dad4f12060794c06afa6e75d125d96e99e6ee9129f5efaa4b7da7395e0799d86d60012a9410a2e495a04fa241ff7e1d2772809a6f7afd45287427b969588816771a44fb0b5ade18ae1762e84a88b8ef11a86f412360d37a0d4ca319c428095b049d7832c04e7b2f8a838531599ec49600e5f8a6651f527e756550decbfff27d64f0b86ba3105c1e7145740078fd97b455ace18f2ae753d764c9afc98e2ec95aa9027c0ccd6ee0d001fe2b0ee56d79b5600df3548189c86c039253cea9002d08356ef44bc429a38b189c2d446f14c480b384cd5f0ec60da3a3ee1c18608782d264a518d5bfa003be1c8fe668d840123a00e974b55b4727c87053a8660eb5f706775f6df62ad5cf0e329103447925c2cf3374bac513a9ca6d0bae20dd2e01043b19cef1affddf072460777ed6853268b7b9df65d120d819a5b07fcb54739ec02279b9f0137ae610337d99b07783732a870caed6f416ccae8dce6c620cd3e097b9204964f9f20ca647c4f1af9ae295481f602daf8a787f5a2b91453033be939fe162d9d4d0d0669f672171aaff1a7d485aaecfcdfc3e1b3a370e8ccfec2454bc5d32ab74ee6a18eacd8d61a901bb609bccf3378ca707f9ccc7ad3e476b9e6e69bee86f6f940f4f6dbb7b2fb7bf1c1c456c190cb3744b9d65b8a28c6a48ecc7c85dd7f9c21a782cefd33eb8a954078b5cd1c0eaf6f130743ecde6f53f436374782ac4d4571e3a8a5712044304c6a63f0f22477eaa910ff047c07f00a9410395da79719233669dd1e6f807e8862a545953e57a209690536fc4682755fbb612fc98e9cd3c027aedb065ee7a17958df73ad70d76633bfa792ed3ee8092cb5d7b38fd68244bc0dd0bbb8d19783cd23332bd5f21a01eda8eefe1b6e1c56c3afd928c6db58f615833ab1b53efcbe0e782332cb0c753e364444bcdbbc7db592b04479283cf74e3bad9470c33e85e71751a64ed33ddf5a1eca84f3d82e80a208b6d39b4bb906a7b6a4cf57319474b226fa10a53046a94e115c4a361bde320dbfe83bf1e89aa5cd1785684a7abe70e268ce346847c1e0ab988fd01cc0444acde722782c0d5f5d43ce7b460214440cc11f424b0ed29e838b828e89802e66aa46801bdd6d33744813bba6ebab38b605c9c550865c8268dfe4ee1423c9b859ae613f0e6b1e73bb88a92f64630671de0e81dced3f6352699c331f15dc20588d632128d9433ee315e6cd46956d0482d067f83d734733df820ecef10e476c61898b7a919f04446e868f091bec85df71627693442b03ffb342784f542891bc4c1146f97355b10f35f2a715406df2a6c0129518bd0be776229807e4be7c195f58a0244b08e58fafca664175a9beeb4f58557e9b9bb6e0271c42bce19f5e2cc4faeba8c7b662e449a34673479b1e63b42c8ef64cbcb18f0f769386a2adda671ceeeba73ce12a137f2d1beb98f97e305ec9981b645d02d882e9dd92d60e3ffae2ce8e17f138d92931aac1257984c382805be618a6c272dda2c3f504144aff5fc106c3decc6d531d02e25fe87c069696f1c7eb4439f7808720ec8fca3719436ba7f3504e6275132587e5ffb7e1a402be819178d2946e933d3431078cd0765694728189c1728d4dada5db769b32045aec66dce20814dc37e59a82c628987221228225f3d8d64fa55bcc8d4f1538760203971a33b2bf5152c85e7f0c59dad5e700e0e4a81bc1ce95be774ca4ddc3f28e37d230f023f26f3b1065a2e4672e1d97bc06bd74ac414a75dea7037539d164d90fe102f6a9b740d994af561985aa8be0db3e70aa4489fc002ab74c6de2c14f424b2a5a73d3be8e8878e7bd0c750a627e72088d4a3b231b309e243cf084497bdd962c7742413eeb497f5977530f36d5cffa9a5e8df4d88efd64c63c69c31c9ab34ada8077a5469aa2bb65c4c30a810bd6b2573511b92c5b6fad95804ad398b35f457fec00116ea4c122f725688a396f2e83ece73cbf53b04c0071a87a1a47766101cd28875386c214aa300dbb5b8a472823a5c08b434823485558560a6f58fcd52894603474b4c38f08ad362a83344d52235b257e54db999591ac7465d99f7042ec82b14ca1593516c89ef95b72ced13afb995cbc6ab591737f7fec32ed831ba3762d693407f06d4e7491e97bc48dfaf5965cf349f01c0df1e9caa2fd2ec5187e879c5005c30294e4764c505352a03e68a2a4ca7fbedca31e38434dfe821ec84ecdca5e0be5d6d9fb58bb66f8d124a8a7a19018200af7a0d093229feb9bab553984262c55d9b0891d0dda59c30b71f602d038c627b38771ad21e980b05b04ff3b357bef5076162e34f296731320e1d7ad41130d03f14a47cdf2ccb94ae20ffdf2aeded300e281c68deec467ad8e6547d62308900653c1dae0168c90f6376120dd19eb9105c43bc8aa6941e72042899b677d1be4ae96eac8e816eeaced0c28370bd4b5d4f713c36ed6c9c2b300364ff605b46d0c72be2fa7e2bba415948d7728bea0d77c64d147ec770d014514ca5fa53e259c21410a5796c81b02e1feb33a8ffd8db08fa608426fd65068d6fcd804ad185f6c446cc69197535bc3f12e16442e763bd294ee712d17b483db27b52ca0b685558b3f0a4d304cb7a25b309fca36feb889a487c1d74ad1357fe93c2595278c3177f4d171ded6b1b4d559483b855ab3412c2aac9ae5420fea94def5f5babe827244c2c52a749147cd582e87f75d9bbf6edab9564e42dd93c6276a20c981b8dff7900d6cc7d8717f2a532a2d2ac9291891b1a37f364ded639645da509b774238d3354ffc4a3120ab7640e98bbbb9f5e8e0e7691bf61d3babeae03c5737277c56baf8bcf1934bc30f6f48723cce48acb1f8d2dcf460f981435113c95f701fd49f4c636163c0acf48f42cf630cb56cc635cdd286d096f6cee69f76512c6533018db259b22fe481a1d70082c5ceaf9b4846999a10b8e6c5fca760f2551f64fce87e2a10978fffa403a197336f0d143948432db3bebf47fbba7ec0498bd7f42cc42c94147ced77dee43cbaff22e66bebada613cdc7fa947373ba280125ad9adbc4c356e5f7aa6a768960472de2dd7814820c4f3da2ceab014d8ca088bf26591c054361fff2d96046e3ad26e9c755bc74d6f1631ebd624578628e8d05adee389cbf2be9ca77ca33bdbe9a857fc58aab9f777e6d4f24a0726060549d0db3fcac9c91a32af3f56d0d4064099eb79a873947256e0599ccbcd4151251fd33af1fcb338f83d40162e34721d4625adea3bf96d240b2b937f46628fb759ef984b7844e3e082eb2e9b6356681beb7fc8d233e388d6a0d61682daa42a7ef78a1c236c505ff924efb07a78277156cde630407e9acdb25a71f018cfb6046907aaf997984d774df8668c9d400c99e918399c32b8a8a2fbcc2b945a422f6ba4ebb8d23d61ebf6f98c5057f1233c1260ac616ecf353c4de0a3bfe297ae61c988d3ee32254970a18ca0862db7cad1bdb4d052efbb95ef18f1abdcc0586b4b0ab17192d1025eceae300086857ef2f401c291664e74de87493500158147611b075cca92f6375bb456a21eac22f144e1403a82dadcb94ab5a475cff7de34a44afead42a3008d86308f1261cff1205939545953ca52860dae8f44c21347881983035846aa7342e3e37d90a13e708343e9748a6ebdfe20f723d4427e8151c04ad52a22ca99839e45a66b5e425061d59c1f506b75ec013ff040db2b08b20d8fb077cf959bef12c647709817b710a80654da854d6d34a13a52ff19daaac58ef996bf6988430f9ebf091bd8cbc6f1b6b7488a497924e3d52f185ba08b532601538f8f9bdce6ab96b0b5750ac5d344b96b8798a1f3a2571532f69d1525bf7bb219ac3a8d55a0e4fb9d2ad8bb5bcaed149f3fe9295e7d2194ff790d7988a14d5305284a2b3d751188a94e7c43856a6e74fbee1883ad613d61140edcfc877712765fdbf50629048b56cf1edc75f8abdfe70bcaa8a9398fb14f75e94d8dfe28a3bbd754b0bf7d4224152179977a82035ecab42b456efcf09ea6dbfdaddaf0000620ca8a79ff79d43f892dfbc0fcee751dc0a8911eeb6abcb6132c01ea28b23eabed2da2ed60757b4927032ca379d35848c83bb4329505bb39c95ebfb49493334a9fee68d481ef3cf570197f46ef9cb5d950f2400ecb54f81bd1c29291f28991ed74815b730941033117318f6844c56b1390798af0e659b316fc055b73376547c36d89219bf1a99e9beebd806deb0d8c4c1902164613958f3d17b445ddd477775f3756ce9b8e05075f5ef6db6ff705d8f93e76313aaad7aed3d0bde58c6cf7455cf6135da7a1678b9362ba94b059ad0d94da412199b9d68be446ecbe37de11c57c385246d56a2acc50b39e44978d9e74be22becb567350e38098f3b8b2cc7aa784962bdf32a2298fe6d5f280445ff991aa7775abdab48254a0e8d3d39036bce6534264e39fcc3e1dcd43996c910c8a823fcc4666f746b44fddcf24b1bbf84be69fc0d1cec78adba02e8cbd323d4545d1b3cde3d7ed5ee09d2b26774d43995e1e17a9abc76a2195fe7baa27790de044da03c310a0bbee7f3d146117725a935d77689350f14a868238d5dd3375f38aee85efc9b253a6d96ede3fc641ac9a4895c30b35afb18fce66952dec10c01ea9ab792e168fe10814a2f8ec7e77527beb5a2bea5cbe05cd07818335949622e052304c0ec88dbc0f9b43bea0d65957a9d61928bfae768baeff5abb778171c5698398feea0b683b7023e75c61503cabbe102edbd7b34af8f693f8726c29e7600c4836d91c80843452d00366e10ae4df8ccbc71c180a537ab1f3b90dbb7007a05998e29cdd5f1d1d9cc94bef5d432cd6ea8f352e3e0710f7266488e854ff38cc2c4dfbaaa153fc272db47b7a46fa7a5b1d22cccbf27e585dd7673320265922384a221e6beec03acab2d4ee4c0197bc11a1b01ee0b73165fe113169b854179dbafc2deb964f944783865031bc02249ce81a86ce2915de3296e58616645e5935888c270e7f240d75ae8ce4c67276f08ea2c2984b88edbf71f2ea4927e4102dfdefa741466dcc63e7befc26ca987f3ae0095a4599f3b987ea19bdb939df9d5e56c742a7525531c1c4cc9f448e97c33bc74fa9e10af83640ca03c9853b36ab583b9c92b48000000000000000701000049000000a1f73ccf38d93df3fee2be5ba6ba6c9ab9f952939d96be6592bfd24887f9d44983e3f8e6b5e5ec52fa5e277b795aca2fb800000000000000"], 0x1058}, 0x40001) ioctl$TIOCSPGRP(r3, 0x5410, &(0x7f00000000c0)) 03:05:33 executing program 2: syz_mount_image$gfs2(&(0x7f0000000000), &(0x7f0000000040)='./file0\x00', 0x0, 0x0, &(0x7f00000004c0), 0x18018, &(0x7f0000000100)={[{@data_writeback}, {@statfs_percent}, {@statfs_percent={'statfs_percent', 0x3d, 0xc0c}}, {@nobarrier}, {@quota_quantum={'quota_quantum', 0x3d, 0x58d00400000000}}]}) [ 333.962755] team0: Device macvtap17 failed to register rx_handler 03:05:33 executing program 0: r0 = bpf$PROG_LOAD(0x5, &(0x7f0000000200)={0xc, 0xe, &(0x7f0000001840)=ANY=[@ANYBLOB="b702000006000000bfa300000000000007030000007effff7a0af0fff8ffffff79a4f0ff00000000b7060000ffffffff2d6405000000000065040400010000000404000001007d60b7030000000000006a0a00fe00000000850000000d000000b7000000000000009500000000000000026cf2827fb43a431ca7ebfcd0cd00006ed3d09a6175037958e271b60dedf8937f02008b5e5a076d83923dd29c034055d47dafe6c8dc3d5d78c07f34e4d5b3185b310efd4989147a00000000f110026e6d2ef831ab7ea0c34f17e3adeef3bb622003b538dfd8e012e795780f4580d760551b5b0a341a2d7cbdb90000bdb2ca8e050000003a14817ac61e4dd11183a13477bf7e060e3670ef0e789f65f1328d6704902cbe7bc04b82d2789cb132b8667c21476619f28d9961b626c57c2691208171656d60a17e3c1c4b751c51160fbcbb58e23f3ee6148b3677b4d309c346dfebd31a08b32808b80200000000000000334d83239d0c2e9ff10ff2d27080e71113610e10d858e803000000b6c86adac12233f9a1fb9c2aec61ce63a38d316ef49bfe090000d50117b89a9ab359b4eea0c6e95767d42b4e54861d0227dbfd2e6d7f715a5f3d74ca891c4594e8a4399e01eadd3964663e88535c133f7130856f756436303767d2e24f29e5dad9796edb697a6ea0182b5245ba0c6daeabc18cae2ed4b4390af9a9ceefd07e002cab5ebf8aad34732181feb215139f15ea7e8cb0c7cbe31fbae7c34d5ac5e7e64c21add9191eadd6e1795ad6a0f7f8cd3fccbdc3dec04b25dfc17975238345d4f71af35910b158e56657b7218baaa7cbf781c0a99bd50499ccc421ace5e85efb17308e4e65eebaace04f4087c4f0da0d9a88f9dbb593ddebf70132a4d0175b889b8eccf707882442e716df9b57b290c661d4e85031086e97bcc5ca0e221a0e34323c129102b7b7a643e82e88a1940b3c02ed9c92d6f64b1282dc519b00159830d7617001154c46bd3ca96318c570f0721fc7aa2a58090000000000000094f22cdf550ef091a78098534f0d973058594119d06d5ea9a8d0857382ec6e2a071474cfc12346e47ad97f4ead7cf754a52e4b2d0f22d428bd705414888700a30e2366c6a06b3367a389ca39059787790017b0689a173db9c24db6000000005c1d573dab18fd0600885f1ea8f2453dcb6a2bfd299fc3cdafda323e9c7080397bc43a949d70c060d57bc88fbe09baa058b040360ab9261503def363fb099408885afc2bf9a4f8c35070669e889f5e4be1b8e0d634ebc10d697e98186fc5141bd670dba6f43279f73db9dec75070cd9ab052aacf4c05edb826b6bf955012cf7fe50d133da86e0477e4a6cc999dc21c3ef408e633dfa35f14d6e734837d365e63845f3c1092f8dd4fc7eac9e8af39044b82649b83ed4fa0f873339c4cad4ead13484742690000522a0b7436000000000000000000000000000000000000000093fc7a82b98f99d9dedf7ba17f5f0b6d15e552fbd21f7eecff10241f43af03eea84c4304a5d3f93c3fc74c00000000000043e1ed82b9aa0ae92a499984a082776eb0937523f5292c12659906005cde64f902000000618a32c2318f0858f19c6def80e1481e8e1c0098fc3f38b7a57211adb15d824cfdcf229628c0de49860a442863d6e257cfa4ce50f3d163d442824414a7da26cc86d7e18631c2061b1c8a8e3c06837fe08de62f8710ca977960b74d0000ce73da6022a8671d1a3575b4e18c28c73203bf134686dd65808452cb6b76fcb134252c78de9b240de7b4cd015a77f76bb6470c05fc980b3d8f3f964f432a4bf6cddd6222c2da006b6fdb9c8468ae1d986a893b9519444d16a6dfa92c04331a6698507048fab5ae402acd05fe621f22712dfd09ea4770b4278fa14547d8ce3c21188e5e4e2baacd98e8e451d6aaaff80153636ed1d99346c2468dd952595d78e9583b5856b3ce911fb23d29bc8d15fc0fb2ddb9a42c0000abe1c6ea55887dfa18d0aea1b6eca5a883702b0bf3aeebb225895db90e237157a34e9f447237ea5b391bddd1290f7ce987a0e36b8e71b1779bbe95ffa9c3c0f6ba66e4d48e3f00000000000000b3220616aafbe7a3a1830000593eb58fd500426286472466823cb8e1800aaaa0d9463c0c4ea5541a55df6eeffec0b66482228816cdfccb98374c644eea45de7867a0efbad0ab2bc33b350440a90b791b2b33f74a112a3b91b40bed8db2df8633207f83874ca52ab0f3f7b058b13523b896800b992972d9609551c27a5916ea16069c5bf55b98d926d3c27e7945b29996e5cefbc9f857bc1332d200194f658b930780603134ae6b7f29eabda6e3219821e21b790c475b14b7fe4fe002dffd651faa79bb0cee0cdac2bc3218f2ddaa6f7ba04b696a30d313bed30ba88da09c01a4b827aa1784d927aca9b8540534c5c49a0300cfbc2213fc1572b0204dd456b11a454d1f32fb169974aae624ea59500f5e048b2780666d7f49af25be909984aea1bc1f33426f86b4b941c08dfe2bc8ec246ec1aae120d32405e428923f3a83d9ba5c8ff226ebf2120b451e2806370f1ed60c9fd5d9af4d16cb0f413c324da52d4bd2e01d3ac2d578d72e4663322dfc9245ce3e3a09a63c325bb184eb24b96f8274f72f1c55ee3d325c7496afc2f10cfea516ae436751227378f00ca0f1f6c1dc700dd90b96a330f92bff736c83ca53e7f02b734d1a9292896f5d7f244bfab4942c7042e88206f641eafcc5b4ba7a7880533cdeac995d7a0084e7adc2dc12417997b03087c7b3b44b06f6158aa0b222d42a18ce0e56ffd189d9021305e5e92583d413098aa80db98ef324a2bfb6961c07b47521973cf0bb6f5530f6216b047b35d6e06b72b22b29de42bb1bc8ce0a0e3500000000000000000000000000b92eb197e414962792dab2414689a540d2801792756f90b37f0858efc387f5592024314a4b0ed750fa72e5948ac355e9c52a4ef578d413e7b2a9e2f87f7b44949fe14c00000000000047030c09f62d444b4981db81799776eeb4448278de519705fa8b56779bc8cc927b308c8e50817996c09121caf47f76158362c74904f89cbc588aae84567583571ff72bb65c082b5a8dedc05a3167d84205d5af86553c21e1f023a51c0e179fccfbc20198233ddcaa45613899d19082453b180ca0c525b8d3cfaf7d0bcddeb5d5c7166038f676a92941393ba5e51f77172822bd903d9f8b436656771774ed88daab0d0cfdd1bf4d301a4cb3ad66d830e10f7c1de13218ef613204c2b7c1ad48b01c208f4032e9b3bba7d6ceca38d3e96db049b92fc32ee34fe7a3419c614d622b8de97f4ae45681ed3e73db3c78ca18c9706302a648cd3d8f829d82090a6e3af08d1c47edf1a4d7298109f31b6078711ee72e4f6936fc1111f21e857edbdce9e4465f1e2b7887931f530ea14cc36bf61cfd3a80cc73ca809e544b14029b51a6a21deccfa526291c0751dd2f7f99e712fe6b15f03f8968a3eba2646a21f191bc189c7b0fdd841e7b27a89f6fc1bc23ebaa8d263872824a2d8771c97245fe858d90418629b4d5cc8b75d3d5bf3dad92407ba3acb6e66183f1afb62a5e43ede08ed344f737fc6a83d3be3c6736770000000000000000000000000000000010b3ee8700713e93ea7e50c79d7956e88f5b04135000"/2635], &(0x7f0000000340)='syzkaller\x00'}, 0x48) bpf$BPF_PROG_TEST_RUN(0xa, &(0x7f0000000040)={r0, 0x18000000000002a0, 0x42, 0xf0, &(0x7f00000000c0)="b9ff0300600d698cff9e14f008004de7f9c764362ae28eff070003e00000e000000108080594e5d04e0d86077933b474b67b2b4b777b5c15d51e3e7b1263afc0bac3", 0x0, 0x200, 0x60000000, 0x0, 0x0, 0x0, 0x0}, 0x48) r1 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r1, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r1, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) sendmsg$kcm(r1, &(0x7f0000000940)={0x0, 0x0, &(0x7f0000000600)=[{&(0x7f0000000380)="a0edd42ac966de635864c19e70a4a7f149ce400ad5a2d432f8b64808be09bfd89fdaddb31efb8140ea9f3a9f2ddf772b14a48d8c63a3c13e101edc18758fd71edce3f572897d1cf70a80a346d86c1222da6e25a678648e1196a7a2ce76bc42259d073ece9d104980373d471b819d3ad2f607f2997bd1b117c12b865ce81074ba9b784069cd482b361dffe631fd3a7078f464f5a8deea403ac8ef4c1473e7a16a8be085a73ecdb2f76cba8b50cf7c4c1adf730bb1eb88edffbe4aa186c1f2656a19105aa9c971b943ae95fc534179cc45d1f0e4a5", 0xd4}, {&(0x7f0000000280)="02e1575de8e2b3eaf2fb945a87735eb8611b7a8d0d43ebe791415555ff3aa97dea1582e1117677195c1bb814dd08443806b06e8651ef6eba2e475993d0e940df7db2eb621a7d0826d8aea54ab414a4347fd628ae91bcfda0d67ebdc3f6a591ae975619526274e1aba1bfc8609e752e18febd7171976ecf4945941a2866ce088a0a569e59caaecb0b07dddcec4778d69b", 0x90}, {&(0x7f0000000480)="efc85af5aeaaa084ec352dfb074cde88a51a2e811b46912d07e31e7aee0862b741448f39de8fe53e48010e1def66cbd7719338f00c7fd86fbdb67b22bab8f01e6a92e89b0241daa4f22a4fe172b23fda15f3e2402684245967a9265fc22a8e96836f6eb5ea4374db3471892dfe30fba7adf4231ef2b2c2155d82d7e67a8a2d51aeca46972e03e90d17468dff0a423af9119b0071630ca4d438b38ee2a7a8e2f71ec80b37e95f336193356f13aeedde3d4a464ffd8770bd28f1947acdc99f", 0xbe}, {&(0x7f0000000140)="ac1fe6990b518a7aeddef83da7996747", 0x10}, {&(0x7f0000000540)="7431052adaa45e5e323238f0af40ebd5b3b19bcbd3f30d51f0086e19363b9b9fa4e9336944f1cdac6ce36f183cc96f56bc54d51ee7c2e94c0993d1e0c7add11acd4e847d370a30ae3cf1ec1927d2f9a5ad30eb1eb96b87e0b9ff273ed0b6d36758ba72dab1d17e2a14fae76e1d4a004b13e6edfd15361b0934506092ede14f2bc1a0491873903b9861aaf087f697911c121c8c16f3e37bd777835615f36c80e27085bcb44401b9b5631c2fe1", 0xac}, {&(0x7f00000001c0)="9397e717b8bd3b6c17204279796621b2e801b9e36fb4561340f776fdc549e0184d8b4280b085233b7be266f3837edf", 0x2f}], 0x6, &(0x7f0000000680)=[{0x98, 0x114, 0x3, "da918bc01b435960a2cd44640bd0aaf60352f25f09d8949fab12ee4b965a592226748b9f663db5875b29144ddc4947b41a0225b80431cf6ab0a9db384658a077f56a25a955ceeb43c6392e32ac2a1ecfd232bad2962e6bfa20d2fb671ecce0bc7f7284ab72f14c0b4874dc9cde46920a3f7b9bb4a4476df84bbd2e99a0df777198d63e"}, {0xa8, 0x10a, 0x236, "4039cc150b53f0c3da458e0cb624cc0f505b48d6fed56224354ea08c43e5403295a12419ad62a44994fa115e69e0d93a985983a65e7255c404b5521fa91b2ef3a175119b3b127057d56e385e27cf1160e40c4fbdb42adc5ed69a043786f3365113b92b203ed2b09ce75aac83fda670fd76f3ec95a5b515dea4ff9489a659520431cfb4aab2ce056ebd24a42bde95fdfca5ce998a8d0cc2a2"}, {0xd8, 0x102, 0x9, "75fc0272e189bf0eb8f7f5842b3fd2e30e5da1636530fde618efe73336dec13bb92231c58b13345ab4fcfb4bcf88e07e52a06ba180f5740db0f4a5c565470332f1301fa3f676e6ecd33ace117e83ba7f67706755e238cc3eca808aa84e90a7d371de2a06e056198c0e2c46eda483d40aa923d260280eaa9d2fda1649f5add7fd2c62a44c5ae05b407e4ec835d15959689acac7dd4dc2030081f2176907180a4e2deaff19e53076d5347d33a3039d10eb765cae21006d6d0b8942927830a34dc55b7a"}, {0x40, 0x111, 0x9, "e3bd47aa4a48335b5fc78fcbd583fa81fc86f0e373cf052b71ca22a5b94aedc28933dddcfe47429ae5be2cf991bc4c21"}, {0x68, 0x111, 0xfffffffa, "0d06e0e5ccd55a9d13dbc28845f2920fe34a34da5c78afbeb29e80fea5d3f33b5a8d414544b7116f4dfbd5668a262de179bfbfcca542d3dbd2de5c7900412b086259464efee78cbc8ed1576dd52a52a0fb3ab08316c599"}], 0x2c0}, 0x0) socketpair$tipc(0x1e, 0x2, 0x0, &(0x7f0000000180)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$TUNSETLINK(r2, 0x8912, 0x400308) [ 334.066342] gfs2: statfs_percent mount option requires a numeric argument between 0 and 100 [ 334.116282] gfs2: can't parse mount arguments 03:05:33 executing program 3: r0 = socket$kcm(0x29, 0x2, 0x0) r1 = perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1, 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_config_ext={0xeaf1, 0xff}}, 0x0, 0xe, 0xffffffffffffffff, 0x0) socket$kcm(0x29, 0x0, 0x0) mknod$loop(0x0, 0x2000, 0x1) r2 = syz_open_dev$sndmidi(&(0x7f0000000180), 0x2, 0x0) dup(0xffffffffffffffff) read(r2, 0x0, 0x0) openat$ashmem(0xffffffffffffff9c, 0x0, 0x0, 0x0) r3 = openat$sequencer2(0xffffffffffffff9c, &(0x7f0000000080), 0x80383, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, 0xffffffffffffffff, 0x0) r4 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r4, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r4, 0xd000943d, &(0x7f0000000440)={0x2, [], 0x0, "c62b612933d043"}) ioctl$sock_FIOSETOWN(r4, 0x8901, &(0x7f0000000000)=0xffffffffffffffff) socket$kcm(0x29, 0x2, 0x0) r5 = fcntl$dupfd(r0, 0x0, r1) dup2(r5, r3) r6 = openat$dlm_control(0xffffffffffffff9c, &(0x7f0000000040), 0x800, 0x0) sendmsg$DEVLINK_CMD_TRAP_POLICER_SET(r6, &(0x7f0000000280)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x20000000}, 0xc, &(0x7f0000000100)={0x0}, 0x1, 0x0, 0x0, 0x40}, 0x4091) dup2(0xffffffffffffffff, 0xffffffffffffffff) 03:05:33 executing program 5: r0 = socket$nl_xfrm(0x10, 0x3, 0x6) perf_event_open(&(0x7f0000001340)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x478, 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, 0xfffffffc, 0xfbff}, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) bind$netlink(r0, &(0x7f0000000080)={0x10, 0x0, 0x0, 0x1}, 0xc) r1 = socket$inet6(0xa, 0x3, 0x6) sendto$inet6(r1, &(0x7f0000000100)="0cce14da228dd6f1de383dc27a6df993bd845afed37b4e71584b6a72bfc9dadef648eafb2d9b765bc8969ba24333f78b007acab565a073dde6f33b244e7ec2db0dfcddd046be5568d3ac44da46eb6d2a9c9cb49424a504ac1d0e3a2df2aa85e90d87ad1a8f2f942226ff5299c7e5906569e03285008aad07406bf4bec27b700b6d795f0a424d430de7a8a30b31acd025fb5c00311cc67ff912513ca1452151d35bfdb6b18e21642a9df2", 0xaa, 0xc000, &(0x7f0000000040)={0xa, 0x4e23, 0x2, @mcast1, 0x1}, 0x1c) getpeername(r0, &(0x7f00000001c0)=@alg, &(0x7f0000000240)=0x80) connect$inet6(r1, &(0x7f00000000c0)={0xa, 0x0, 0xfffffffe, @remote, 0x8}, 0x1c) setsockopt$inet6_IPV6_XFRM_POLICY(r1, 0x29, 0x23, &(0x7f0000000340)={{{@in6=@loopback, @in6=@mcast2, 0x4e20, 0x0, 0x0, 0x0, 0xa}, {0x0, 0xfffffffffffffffc, 0x0, 0x0, 0x0, 0x0, 0x800}, {0x0, 0x45}, 0x0, 0x0, 0x1}, {{@in6=@mcast1, 0x0, 0x32}, 0x0, @in=@broadcast, 0x0, 0x3, 0x0, 0x4, 0xffffffff, 0xfffffffd}}, 0xe8) socket(0x1d, 0x6, 0x0) sendmmsg(r1, &(0x7f0000000480), 0x13, 0x1f4) r2 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r2, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_INFO(0xffffffffffffffff, 0x81f8943c, &(0x7f0000001440)={0x0, ""/256, 0x0, 0x0}) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r2, 0xd000943d, &(0x7f0000000440)={0x5, [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, r3}], 0x0, "c62b612933d043"}) r4 = accept$unix(r2, &(0x7f0000001640)=@abs, &(0x7f00000016c0)=0x6e) recvmmsg(r4, &(0x7f0000005600)=[{{&(0x7f0000001700)=@llc={0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, @remote}, 0x80, &(0x7f0000002cc0)=[{&(0x7f0000001780)=""/85, 0x55}, {&(0x7f0000001800)=""/90, 0x5a}, {&(0x7f0000001880)=""/172, 0xac}, {&(0x7f0000001940)=""/4096, 0x1000}, {&(0x7f0000002940)=""/121, 0x79}, {&(0x7f00000029c0)=""/155, 0x9b}, {&(0x7f0000002a80)=""/125, 0x7d}, {&(0x7f0000002b00)=""/168, 0xa8}, {&(0x7f0000002bc0)=""/143, 0x8f}, {&(0x7f0000002c80)}], 0xa, &(0x7f0000002d80)=""/185, 0xb9}, 0x80000001}, {{&(0x7f0000002e40)=@xdp, 0x80, &(0x7f0000002f80)=[{&(0x7f0000002ec0)=""/112, 0x70}, {&(0x7f0000002f40)=""/37, 0x25}], 0x2, &(0x7f0000002fc0)=""/109, 0x6d}, 0x4}, {{0x0, 0x0, &(0x7f0000003080)=[{&(0x7f0000003040)=""/31, 0x1f}], 0x1, &(0x7f00000030c0)=""/141, 0x8d}, 0x4}, {{&(0x7f0000003180)=@ieee802154={0x24, @short}, 0x80, &(0x7f0000004440)=[{&(0x7f0000003200)=""/27, 0x1b}, {&(0x7f0000003240)=""/72, 0x48}, {&(0x7f00000032c0)=""/4096, 0x1000}, {&(0x7f00000042c0)=""/172, 0xac}, {&(0x7f0000004380)=""/142, 0x8e}], 0x5, &(0x7f00000044c0)=""/169, 0xa9}, 0x6}, {{0x0, 0x0, &(0x7f0000004880)=[{&(0x7f0000004580)=""/46, 0x2e}, {&(0x7f00000045c0)}, {&(0x7f0000004600)=""/142, 0x8e}, {&(0x7f00000046c0)=""/134, 0x86}, {&(0x7f0000004780)=""/239, 0xef}], 0x5, &(0x7f0000004900)=""/122, 0x7a}, 0x4}, {{0x0, 0x0, &(0x7f0000004dc0)=[{&(0x7f0000004980)=""/79, 0x4f}, {&(0x7f0000004a00)=""/20, 0x14}, {&(0x7f0000004a40)=""/184, 0xb8}, {&(0x7f0000004b00)=""/59, 0x3b}, {&(0x7f0000004b40)=""/240, 0xf0}, {&(0x7f0000004c40)=""/144, 0x90}, {&(0x7f0000004d00)=""/139, 0x8b}], 0x7, &(0x7f0000004e40)=""/130, 0x82}, 0xffff956d}, {{0x0, 0x0, &(0x7f0000005480)=[{&(0x7f0000004f00)=""/183, 0xb7}, {&(0x7f0000004fc0)=""/23, 0x17}, {&(0x7f0000005000)=""/197, 0xc5}, {&(0x7f0000005100)=""/163, 0xa3}, {&(0x7f00000051c0)=""/18, 0x12}, {&(0x7f0000005200)=""/168, 0xa8}, {&(0x7f00000052c0)=""/246, 0xf6}, {&(0x7f00000053c0)=""/190, 0xbe}], 0x8, &(0x7f0000005500)=""/234, 0xea}, 0xfffffff7}], 0x7, 0x3, &(0x7f00000057c0)) getsockname$unix(r2, &(0x7f0000000280), &(0x7f0000000300)=0x6e) 03:05:33 executing program 3: prlimit64(0x0, 0xe, &(0x7f00000001c0)={0x8d, 0x4000000090}, 0x0) r0 = getpid() sched_setattr(r0, &(0x7f0000000040)={0x38, 0x1, 0x0, 0x0, 0x8}, 0x0) r1 = socket$inet6(0xa, 0x2, 0x0) recvmmsg(r1, &(0x7f00000032c0)=[{{0x0, 0x0, 0x0}}], 0x1, 0x0, 0x0) waitid(0x0, r0, &(0x7f0000000480), 0x1000000, 0x0) pipe(&(0x7f00000003c0)={0xffffffffffffffff, 0xffffffffffffffff}) fcntl$setpipe(r3, 0x407, 0x0) write(r3, &(0x7f0000000340), 0x41395527) vmsplice(r2, &(0x7f0000000000)=[{&(0x7f0000000500), 0x3528a9c0}], 0x1, 0x0) recvmmsg(r2, &(0x7f00000030c0)=[{{&(0x7f0000000200)=@pptp={0x18, 0x2, {0x0, @private}}, 0x80, &(0x7f0000000700)=[{&(0x7f00000009c0)=""/4096, 0x1000}, {&(0x7f0000000580)=""/228, 0xe4}, {&(0x7f0000000680)=""/91, 0x5b}, {&(0x7f00000019c0)=""/4096, 0x1000}], 0x4, &(0x7f0000000080)=""/19, 0x13}, 0xc5b}, {{&(0x7f0000000780)=@ll={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, 0x80, 0x0, 0x0, &(0x7f0000002bc0)=""/108, 0x6c}, 0x7f}, {{0x0, 0x0, &(0x7f0000000500)=[{&(0x7f0000002cc0)=""/239, 0xef}, {&(0x7f0000002dc0)=""/224, 0xe0}], 0x2}, 0x2}, {{&(0x7f0000002ec0)=@x25, 0x80, &(0x7f0000000940)=[{&(0x7f0000002f40)=""/84, 0x54}], 0x1}, 0xfffffffc}], 0x4, 0x10050, &(0x7f00000031c0)={0x0, 0x989680}) sched_setattr(0x0, &(0x7f00000000c0)={0x4f, 0x2, 0x1, 0x0, 0x3}, 0x0) mkdir(&(0x7f0000000540)='./file0\x00', 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(0xffffffffffffffff, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) getsockopt$inet_pktinfo(0xffffffffffffffff, 0x0, 0x8, &(0x7f0000000280)={0x0, @broadcast, @multicast1}, &(0x7f0000000300)=0xc) perf_event_open(&(0x7f0000000340)={0x2, 0x80, 0xb7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0xff}, 0x48010, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) clone(0x103, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) r4 = openat$fuse(0xffffffffffffff9c, &(0x7f0000000100), 0x2, 0x0) sendmsg$DCCPDIAG_GETSOCK(0xffffffffffffffff, &(0x7f0000000980)={0x0, 0x0, 0x0}, 0x801) mount$fuse(0x0, &(0x7f00000002c0)='./file0\x00', &(0x7f0000000440), 0x0, &(0x7f0000000140)={{'fd', 0x3d, r4}, 0x2c, {'rootmode', 0x3d, 0x6000}}) 03:05:33 executing program 4: perf_event_open(&(0x7f0000000180)={0x2, 0x70, 0xa1, 0x80000001}, 0xffffffffffffffff, 0x0, 0xffffffffffffffff, 0x0) r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f00000000c0)='memory.events\x00', 0x26e1, 0x0) setsockopt$bt_BT_FLUSHABLE(r0, 0x112, 0x8, 0x0, 0x0) ioctl$PERF_EVENT_IOC_PERIOD(0xffffffffffffffff, 0x4030582a, 0x0) perf_event_open(&(0x7f0000000180)={0x1, 0x70, 0x0, 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, 0xa2, 0x0, 0x0, 0x1902a, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffff}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r1 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r1, 0x0) r2 = openat$autofs(0xffffffffffffff9c, &(0x7f0000001200), 0x400102, 0x0) getsockname$packet(r2, &(0x7f0000001240)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000001280)=0x14) r3 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) r4 = ioctl$KVM_CREATE_VM(r3, 0xae01, 0x0) syz_kvm_setup_cpu$x86(r4, 0xffffffffffffffff, &(0x7f00002c5000/0x18000)=nil, &(0x7f0000000280)=[@textreal={0x8, 0x0}], 0x1, 0x0, 0x0, 0x0) r5 = ioctl$KVM_CREATE_VCPU(r4, 0xae41, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(0xffffffffffffffff, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) syz_kvm_setup_cpu$x86(0xffffffffffffffff, r0, &(0x7f0000617000/0x18000)=nil, &(0x7f00000002c0)=[@textreal={0x8, &(0x7f0000000200)="0f01be05000f22250f20e06635000400000f22e066b9d90a00000f3266b80fbc6bbb0f23d00f21f86635300000080f23f8660f5c4c1366b9fb0800000f32ea3fd50000f30f211367670f08", 0x4b}], 0x1, 0xa, &(0x7f0000000300), 0x0) ioctl$KVM_SET_SREGS(r5, 0x4138ae84, &(0x7f00000000c0)={{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, 0x80010001, 0x0, 0x0, 0x20022}) r6 = socket$netlink(0x10, 0x3, 0x15) fsetxattr$security_evm(r6, &(0x7f00000012c0), &(0x7f0000001300)=ANY=[@ANYBLOB], 0x54, 0x2) write$cgroup_type(r0, &(0x7f0000000140), 0x12000005f) faccessat(r0, &(0x7f0000000040)='./file0\x00', 0xa0) [ 334.184702] gfs2: statfs_percent mount option requires a numeric argument between 0 and 100 [ 334.209354] team0: Device macvtap17 failed to register rx_handler [ 334.228416] gfs2: can't parse mount arguments [ 334.265304] can: request_module (can-proto-0) failed. 03:05:33 executing program 2: r0 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r0, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r0, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) r1 = syz_genetlink_get_family_id$batadv(&(0x7f0000000040), 0xffffffffffffffff) sendmsg$BATADV_CMD_GET_VLAN(r0, &(0x7f0000000100)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x10}, 0xc, &(0x7f00000000c0)={&(0x7f0000000080)={0x2c, r1, 0x400, 0x70bd2b, 0x25dfdbfd, {}, [@BATADV_ATTR_GW_BANDWIDTH_UP={0x8, 0x32, 0x1}, @BATADV_ATTR_ISOLATION_MARK={0x8, 0x2b, 0x81}, @BATADV_ATTR_FRAGMENTATION_ENABLED={0x5, 0x30, 0x1}]}, 0x2c}, 0x1, 0x0, 0x0, 0x48884}, 0x4040001) r2 = socket(0x25, 0x5, 0x0) r3 = openat$autofs(0xffffffffffffff9c, &(0x7f0000000180), 0x181800, 0x0) syz_genetlink_get_family_id$SEG6(&(0x7f0000000140), r3) sendto$inet(r2, 0x0, 0x0, 0x4008045, 0x0, 0x0) [ 334.472377] can: request_module (can-proto-0) failed. 03:05:34 executing program 0: prlimit64(0x0, 0xe, &(0x7f0000000280)={0x9, 0x8d}, 0x0) r0 = getpid() sched_setattr(0x0, &(0x7f0000000140)={0x38, 0x2, 0x0, 0x0, 0x9}, 0x0) sched_setattr(r0, &(0x7f0000000240)={0x38, 0x2, 0x0, 0x0, 0x5}, 0x0) sched_setattr(r0, &(0x7f00000000c0)={0x38, 0x3, 0x20, 0x2, 0x800, 0x2, 0xdbfc, 0x0, 0x5, 0x4}, 0x0) socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) connect$unix(r1, &(0x7f000057eff8)=@abs, 0x6e) sendmmsg$unix(r2, &(0x7f00000bd000), 0x318, 0x0) ioctl$TIOCGSID(0xffffffffffffffff, 0x5429, &(0x7f0000000000)=0x0) syz_open_procfs(r3, &(0x7f0000000080)='net/xfrm_stat\x00') recvmmsg(r1, &(0x7f00000000c0), 0x10106, 0x2, 0x0) r4 = socket$inet6(0xa, 0x2, 0x0) connect$inet6(r4, &(0x7f0000000040)={0xa, 0x0, 0x0, @dev, 0x5}, 0x1c) sendmmsg(r4, &(0x7f00000002c0), 0x4cc, 0x20007ffc) 03:05:34 executing program 3: prlimit64(0x0, 0xe, &(0x7f00000001c0)={0x8d, 0x4000000090}, 0x0) r0 = getpid() sched_setattr(r0, &(0x7f0000000040)={0x38, 0x1, 0x0, 0x0, 0x8}, 0x0) r1 = socket$inet6(0xa, 0x2, 0x0) recvmmsg(r1, &(0x7f00000032c0)=[{{0x0, 0x0, 0x0}}], 0x1, 0x0, 0x0) waitid(0x0, r0, &(0x7f0000000480), 0x1000000, 0x0) pipe(&(0x7f00000003c0)={0xffffffffffffffff, 0xffffffffffffffff}) fcntl$setpipe(r3, 0x407, 0x0) write(r3, &(0x7f0000000340), 0x41395527) vmsplice(r2, &(0x7f0000000000)=[{&(0x7f0000000500), 0x3528a9c0}], 0x1, 0x0) recvmmsg(r2, &(0x7f00000030c0)=[{{&(0x7f0000000200)=@pptp={0x18, 0x2, {0x0, @private}}, 0x80, &(0x7f0000000700)=[{&(0x7f00000009c0)=""/4096, 0x1000}, {&(0x7f0000000580)=""/228, 0xe4}, {&(0x7f0000000680)=""/91, 0x5b}, {&(0x7f00000019c0)=""/4096, 0x1000}], 0x4, &(0x7f0000000080)=""/19, 0x13}, 0xc5b}, {{&(0x7f0000000780)=@ll={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @dev}, 0x80, 0x0, 0x0, &(0x7f0000002bc0)=""/108, 0x6c}, 0x7f}, {{0x0, 0x0, &(0x7f0000000500)=[{&(0x7f0000002cc0)=""/239, 0xef}, {&(0x7f0000002dc0)=""/224, 0xe0}], 0x2}, 0x2}, {{&(0x7f0000002ec0)=@x25, 0x80, &(0x7f0000000940)=[{&(0x7f0000002f40)=""/84, 0x54}], 0x1}, 0xfffffffc}], 0x4, 0x10050, &(0x7f00000031c0)={0x0, 0x989680}) sched_setattr(0x0, &(0x7f00000000c0)={0x4f, 0x2, 0x1, 0x0, 0x3}, 0x0) mkdir(&(0x7f0000000540)='./file0\x00', 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(0xffffffffffffffff, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) getsockopt$inet_pktinfo(0xffffffffffffffff, 0x0, 0x8, &(0x7f0000000280)={0x0, @broadcast, @multicast1}, &(0x7f0000000300)=0xc) perf_event_open(&(0x7f0000000340)={0x2, 0x80, 0xb7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0xff}, 0x48010, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) clone(0x103, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) r4 = openat$fuse(0xffffffffffffff9c, &(0x7f0000000100), 0x2, 0x0) sendmsg$DCCPDIAG_GETSOCK(0xffffffffffffffff, &(0x7f0000000980)={0x0, 0x0, 0x0}, 0x801) mount$fuse(0x0, &(0x7f00000002c0)='./file0\x00', &(0x7f0000000440), 0x0, &(0x7f0000000140)={{'fd', 0x3d, r4}, 0x2c, {'rootmode', 0x3d, 0x6000}}) 03:05:34 executing program 5: syz_mount_image$btrfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x8000000, 0x8e, &(0x7f0000000200)=[{&(0x7f0000010000)="2ca78f4cb3b691cf270d8db2d0ec0a42c103a769e22b6551e68f46766cc5a302f281fc6dc8a34ae89fd1d70a18804539000001000000000001000000000000005f42485266535f4d07000000000000000040d301000000000040500100000000000000000000000000000000000000000000000800000000003002000000000006000000000000000100000000000000001000000040000000400000001000008100000005000000000000000000000000000000000000000000000061010000000000000200000000010000000000000000000008000000000000800500000000001000000010000000100000000000000000000000000000000000000000000000000000000000000000ba2146d455a947c6821b9a6908ea865af281fc6dc8a34ae89fd1d70a1880453900"/320, 0x140, 0x10000}, {&(0x7f0000010200)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00\x00\x00\x00\x00\x00\x00\a\x00'/32, 0x20, 0x10220}, {&(0x7f0000010300)="00000000000000000000000001000000000000e4000050010000000000008000000000000200000000000000000001000000000022000000000000000000010000000100001000000200010001000000000000000000500100000000ba2146d455a947c6821b9a6908ea865a01000000000000000000d00100000000ba2146d455a947c6821b9a6908ea865a00000001000000000022000000000000000000010000000100001000000200010001000000000000000000500100000000ba2146d455a947c6821b9a6908ea865a01000000000000000000d00100000000ba2146d455a947c6821b9a6908ea865a00"/256, 0x100, 0x10320}, {&(0x7f0000010400)="00000000000000000000000040d2010000000005000000000000000040500100000000050000000000000000c0d1010000000005000000000000000000d0010000000004000000000000000000d2010000000005000000000000000000d10100000000040000000000000000000008000000000000020000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0d201000000000600000000000000004050010000000005000000000000000080d2010000000006000000000000000080d0010000000006000000000000000000d30100000000060000000000000000c0d0010000000006000000000000000000000800000000003002000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d301000000000700000000000000004050010000000005000000000000000080d3010000000007000000000000000080d0010000000006000000000000000000d30100000000060000000000000000c0d0010000000006000000000000000000000800000000003002000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d001000000000400000000000000000050010000000004000000000000000080d0010000000004000000000000000000d00100000000040000000000000000c0d0010000000004000000000000000000d101000000000400000000000000000000080000000000000200000000000100"/640, 0x280, 0x10b20}, {&(0x7f0000010700)="8a9fb89957cd8daf7e03a19cfe1417c281c00c6a127c2d66485739126f8870b7f281fc6dc8a34ae89fd1d70a18804539000010000000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0300000000000000030000000000000004000000000100000000000000d80100000000000000393f0000620000000001000000000000e40000100000000000e93e0000500000000001000000000000e40000500000000000993e0000500000000001000000000000e40000d00000000000493e00005000"/224, 0xe0, 0x100000}, {&(0x7f0000010800)="000000000000000000000000000000008000000000000200000000000000000001000000000001000000000000000000010000000100001000000100010001000000000000000000d00000000000ba2146d455a947c6821b9a6908ea865a00008000000000000200000000000000000001000000000004000000000000000000010000000100001000000100010001000000000000000000500000000000ba2146d455a947c6821b9a6908ea865a00004000000000000200000000000000000001000000000002000000000000000010000000100000001000000100000001000000000000000000100000000000ba2146d455a947c6821b9a6908ea865a010000000000000000000008000000000000400100000000001000000010000000100000000000000000000000000000000000000000000000000000000000000000ba2146d455a947c6821b9a6908ea865af281fc6dc8a34ae89fd1d70a188045395a0e42dd3467a364c69c460bcc9ec07dfadea18f0d8575cd587487e41d8a50e5f281fc6dc8a34ae89fd1d70a18804539004010000000000000000000000000010c7e9a93ab124758aba61b0fe72b1bdc010000000000000002000000000000000c000000000000100000000000a90000000000000000833f0000180000000000100000000000b00100000000000000833f0000000000000040100000000000a900000000000000006b3f0000180000000040100000000000b002000000000000006b3f0000000000000080100000000000a90000000000000000533f0000180000000080100000000000b00300000000000000533f00000000000000c0100000000000a900000000000000003b3f00001800000000c0100000000000b004000000000000003b3f0000000000000000110000000000a90000000000000000233f0000180000000000110000000000b00500000000000000233f0000000000000040110000000000a900000000000000000b3f0000180000000040110000000000b007000000000000000b3f00"/768, 0x300, 0x103ea0}, {&(0x7f0000010b00)="0000000000000000000000000000000001000000000000000100000000000000020000000000000001000000000000000100000000000000020000000000000001000000000000000100000000000000020000000000000001000000000000000100000000000000020000000000000001000000000000000100000000000000020000000000000001000000000000000100000000000000020000000000000049d829d97d4d7347e44c19d98f3a52e227f18a840d7f30a050c08bd1b5239050f281fc6dc8a34ae89fd1d70a18804539008010000000000000000000000000010c7e9a93ab124758aba61b0fe72b1bdc0100000000000000030000000000000002000000000100000000000000d80100000000000000393f0000620000000001000000000000e40000100000000000e93e00005000"/320, 0x140, 0x107f60}, {&(0x7f0000010d00)="000000000000000000000000000000004000000000000200000000000000000001000000000002000000000000000010000000100000001000000100000001000000000000000000100000000000ba2146d455a947c6821b9a6908ea865a010000000000000000000008000000000000400000000000001000000010000000100000000000000000000000000000000000000000000000000000000000000000ba2146d455a947c6821b9a6908ea865af281fc6dc8a34ae89fd1d70a18804539806eafbdead6e06bee662124dbfbe1247cafe98d5b8b2eceb32f84de5be90467f281fc6dc8a34ae89fd1d70a1880453900c010000000000000000000000000010c7e9a93ab124758aba61b0fe72b1bdc0100000000000000040000000000000001000000000100000000000000cc00001000000000006b3f0000300000000000", 0x140, 0x10bf40}, {&(0x7f0000010f00)="0000000000000000000000000000000003000000000000000001000000000000000010000000000000004000000000000c7e9a93ab124758aba61b0fe72b1bdcd8274a6189cc653f2d3f4e01cf7fc47539d51e2742b675110eac64b69c504ec0f281fc6dc8a34ae89fd1d70a18804539000011000000000000000000000000010c7e9a93ab124758aba61b0fe72b1bdc01000000000000000500000000000000", 0xa0, 0x10ffc0}, {&(0x7f0000011000)="6f055143b19925caa011719b832b141587bd67135d0f5c890cf1653ca408397ff281fc6dc8a34ae89fd1d70a18804539004011000000000000000000000000010c7e9a93ab124758aba61b0fe72b1bdc01000000000000000700000000000000", 0x60, 0x114000}, {&(0x7f0000011100)="9ec0c0320c452041d3b2f083e14a52b84c1a0949f2f0b3a40e0ec7ecbabf7925f281fc6dc8a34ae89fd1d70a18804539008011000000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc020000000000000002000000000000000a000000000000100000000000c00000400000000000833f0000180000000000110000000000a900000000000000006b3f0000180000000000110000000000b005000000000000006b3f0000000000000040110000000000a90000000000000000533f0000180000000040110000000000b00700000000000000533f0000000000000080110000000000a90000000000000000323f00002100000000c0110000000000a90000000000000000113f0000210000000000120000000000a90000000000000000f03e0000210000000000500000000000a90000000000000000cf3e0000210000000000500000000000c00000800000000000b73e0000180000000000500000000000c00000800000000000d83e0000180000000000500000000000c000008000000000000b3f0000180000000040110000000000b007000000000000000b3f0000000000000000500000000000c00000800000000000f33e000018", 0x1c0, 0x118000}, {&(0x7f0000011300)="00000000000000000000000000000000000000000000000000000000004000000000000000010000000000000400000000000000010000000000000002000000000000000200000000000000b00100000000000000010000000000000002000000000000000200000000000000b00300000000000000010000000000000002000000000000000200000000000000b00400000000000000010000000000000002000000000000000200000000000000b002000000000000000100000000000000010000000000000002000000000000000100000000000000010000000000000002000000000000000040010000000000000100000000000002000000000000004f3819caba213d0a2a36cbd2e3f48cc8435d05fc5400df5d67940726579c8684f281fc6dc8a34ae89fd1d70a1880453900c011000000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0200000000000000040000000000000002000000000100000000000000cc00001000000000006b3f0000300000000100000000000000cc00005000000000003b3f00003000"/416, 0x1a0, 0x11bf00}, {&(0x7f0000011500)="03000000000000000001000000000000000050000000000000008000000000000c7e9a93ab124758aba61b0fe72b1bdc03000000000000000001000000000000000010000000000000004000000000000c7e9a93ab124758aba61b0fe72b1bdc0871a1987804f331c068c7e43e0e7f8178be48174bb253b2ec7c18cc0e698b9cf281fc6dc8a34ae89fd1d70a18804539000012000000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0200000000000000030000000000000003000000000100000000000000d80100000000000000393f0000620000000001000000000000e40000100000000000e93e0000500000000001000000000000e40000500000000000993e00005000"/288, 0x120, 0x11ffa0}, {&(0x7f0000011700)="8000000000000200000000000000000001000000000004000000000000000000010000000100001000000100010001000000000000000000500000000000ba2146d455a947c6821b9a6908ea865a00004000000000000200000000000000000001000000000002000000000000000010000000100000001000000100000001000000000000000000100000000000ba2146d455a947c6821b9a6908ea865a010000000000000000000008000000000000c00000000000001000000010000000100000000000000000000000000000000000000000000000000000000000000000ba2146d455a947c6821b9a6908ea865af281fc6dc8a34ae89fd1d70a18804539", 0x100, 0x123f00}, {&(0x7f0000011800)="d5fa343983d41405f9325d9885296ac1d9b56b158f4ca56442b1527f23d4b551f281fc6dc8a34ae89fd1d70a18804539000050000000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0200000000000000010000000000000004000000000200000000000000840000000000000000e43d0000b701000004000000000000008400000000000000002d3c0000b70100000500000000000000840000000000000000763a0000b70100000700000000000000840000000000000000bf380000b70100"/224, 0xe0, 0x500000}, {&(0x7f0000011900)="0000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed41000000000000", 0x40, 0x503920}, {&(0x7f0000011a00)="00000000010000000000000000000000000000000040110000000000000000000000000000400000000000000000000000000000000000000000000001000000", 0x40, 0x5039c0}, {&(0x7f0000011b00)="00000000000000000000000000000000000000000000000000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x503ac0}, {&(0x7f0000011c00)="0000000000000000000000000000000000000000000000000000000100000000000000000000000000000000001100000000000000000000000000004000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000002951053f7adf4ff4ba8d76b0f7b2930100"/160, 0xa0, 0x503b60}, {&(0x7f0000011d00)="000055bc645f000000000000000055bc645f00"/32, 0x20, 0x503c20}, {&(0x7f0000011e00)="00000000000000000000000000000000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x503c80}, {&(0x7f0000011f00)="0000000000000000000000000000000000000200000000000000000000000000000000c0110000000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000200"/128, 0x80, 0x503d20}, {&(0x7f0000012000)="00000000000000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed4100", 0x40, 0x503e40}, {&(0x7f0000012100)="000000000000000000020000000000000000000000000000000080110000000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000200000000000000", 0x60, 0x503ee0}, {&(0x7f0000012200)="8878fc650f395db5af9304ed6fd6d83193148eb432f8769469538149b185384bf281fc6dc8a34ae89fd1d70a18804539004050000000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0300000000000000040000000000000003000000000100000000000000cc00001000000000006b3f0000300000000100000000000000cc00005000000000003b3f0000300000000100000000000000cc0000d000000000000b3f00003000"/192, 0xc0, 0x504000}, {&(0x7f0000012300)="00000000000000000000000000000000030000000000000000010000000000000000d0000000000000008000000000000c7e9a93ab124758aba61b0fe72b1bdc03000000000000000001000000000000000050000000000000008000000000000c7e9a93ab124758aba61b0fe72b1bdc03000000000000000001000000000000000010000000000000004000000000000c7e9a93ab124758aba61b0fe72b1bdcbc3d37b1d01440a321cf144c182078136546601d90b6909fa139ba35ceb8ef5ef281fc6dc8a34ae89fd1d70a18804539008050000000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc030000000000000002000000000000000a000000000000100000000000a900000000000000007a3f0000210000000000100000000000c00000400000000000623f0000180000000040110000000000a900000000000000004a3f0000180000000040110000000000b007000000000000004a3f0000000000000000500000000000c00000800000000000323f0000180000000040500000000000a90000000000000000113f0000210000000080500000000000a90000000000000000f03e00002100000000c0500000000000a90000000000000000cf3e0000210000000000510000000000a90000000000000000ae3e0000210000000000d00000000000c00000800000000000963e0000180000000000500000000000c00000800000000000ae3e0000180000000000d00000000000c00000800000000000963e0000180000000040110000000000b007000000000000000b3f0000000000000000500000000000c00000800000000000f33e000018", 0x260, 0x507f60}, {&(0x7f0000012600)="000000000000000000000000010000000000000100000000000000000000000000000000010000000000000100000000000000010000000000000003000000000000000200000000000000b00500000000000000010000000000000003000000000000000200000000000000b00100000000000000010000000000000003000000000000000200000000000000b00200000000000000010000000000000003000000000000000200000000000000b00400000000000000000001000000000000010000000000000400000000000000010000000000000001000000000000000200000000000000008000000000000000010000000000000200000000000000010000000000000003000000000000000200000000000000b003000000000000000837b6a9fca0f98fce678899b5ee5f20fc406b21e76e47973448b31b74bb9ca6f281fc6dc8a34ae89fd1d70a1880453900c050000000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0300000000000000010000000000000008000000000200000000000000840000000000000000e43d0000b701000004000000000000008400000000000000002d3c0000b701000005000000000000000c06000000000000001c3c0000110000000500000000000000840000000000000000653a0000b70100000600000000000000010000000000000000c5390000a000000006000000000000000c0600000000000000b93900000c000000060000000000000054d2c2bf8d0000000094390000250000000700000000000000840000000000000000dd370000b70100"/608, 0x260, 0x50bee0}, {&(0x7f00000000c0)="000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000", 0x40, 0x50f840}, {&(0x7f0000012a00)="00000100000000000000000000000000000000401100000000000000000000000000004000000000000000000000000000000000000000000000010000000000", 0x40, 0x50f8e0}, {&(0x7f0000012b00)="00000000000000000000000000000000000000000000000000050000000000000084ffffffffffffffff0000000000000000000007000264656661756c74000000000000000002002e2e03000000000000000000000000000000000000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed41", 0x120, 0x50f9e0}, {&(0x7f0000012d00)="000000000000000000000300000000000000000100000000000000005100000000000000000000000000004000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000003000000000000002951053f7adf4ff4ba8d76b0f7b2930100"/128, 0x80, 0x50fb60}, {&(0x7f0000012e00)="000000000000000000000000000000000055bc645f000000000000000055bc645f00"/64, 0x40, 0x50fc00}, {&(0x7f0000012f00)="000000000000000000070064656661756c7401000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x50fc80}, {&(0x7f0000013000)="000000000000000000000000000000000000030000000000000000000000000000000040500000000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000300"/128, 0x80, 0x50fd20}, {&(0x7f0000013100)="00000000000000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed4100", 0x40, 0x50fe40}, {&(0x7f0000013200)="000000000000000000030000000000000000000000000000000080500000000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000300000000000000", 0x60, 0x50fee0}, {&(0x7f0000013300)="78a34408585ee1f9432da01453fb258e417cedb605807509f712811f4f0ea63ef281fc6dc8a34ae89fd1d70a18804539000051000000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0300000000000000050000000000000002000000000001000000000000010000000000000000fb3e0000a000000000010000000000000c0001000000000000ef3e00000c00"/160, 0xa0, 0x510000}, {&(0x7f0000013400)="0000000000000000000000000000000000000000000000000000000002002e2e03000000000000000000000000000000000000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f0000000000000000", 0xc0, 0x513f40}, {&(0x7f0000013500)="5a81730dd5bbf071ebb21867e7e5503752d0378114adb200e500ea0c51d618f5f281fc6dc8a34ae89fd1d70a18804539000050010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0400000000000000030000000000000006000000000100000000000000d80100000000000000393f0000620000000001000000000000e40000100000000000e93e0000500000000001000000000000e40000500000000000993e0000500000000001000000000000e40000d00000000000493e0000500000000001000000000000e40000500100000000d93d0000700000000001000000000000e40000d00100000000693d0000700000000000000000", 0x100, 0x1500000}, {&(0x7f0000013600)="000000000000000000000000000000000002000000000200000000000000000001000000000024000000000000000000010000000100001000000200010001000000000000000000500200000000ba2146d455a947c6821b9a6908ea865a01000000000000000000500400000000ba2146d455a947c6821b9a6908ea865a00008000000000000200000000000000000001000000000022000000000000000000010000000100001000000200010001000000000000000000500100000000ba2146d455a947c6821b9a6908ea865a01000000000000000000d00100000000ba2146d455a947c6821b9a6908ea865a00008000000000000200000000000000000001000000000001000000000000000000010000000100001000000100010001000000000000000000d00000000000ba2146d455a947c6821b9a6908ea865a00008000000000000200000000000000000001000000000004000000000000000000010000000100001000000100010001000000000000000000500000000000ba2146d455a947c6821b9a6908ea865a00004000000000000200000000000000000001000000000002000000000000000010000000100000001000000100000001000000000000000000100000000000ba2146d455a947c6821b9a6908ea865a010000000000000000000008000000000000400600000000001000000010000000100000000000000000000000000000000000000000000000000000000000000000ba2146d455a947c6821b9a6908ea865af281fc6dc8a34ae89fd1d70a188045391fe8b8a1bb383e6233846e73513420ffa1c76d1d4e736fdabeaa9fe51e9a75c5f281fc6dc8a34ae89fd1d70a18804539004050010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0500000000000000030000000000000004000000000100000000000000d80100000000000000393f0000620000000001000000000000e40000d00000000000e93e0000500000000001000000000000e40000500100000000793e0000700000000001000000000000e40000d00100000000093e0000700000000001000000000000e40000d00100000000093e0000700000000001000000000000e40000d00100000000b93d0000700000000000000000", 0x340, 0x1503dc0}, {&(0x7f0000013a00)="000000000000000000000000000000000002000000000200000000000000000001000000000024000000000000000000010000000100001000000200010001000000000000000000500200000000ba2146d455a947c6821b9a6908ea865a00000002000000000200000000000000000001000000000024000000000000000000010000000100001000000200010001000000000000000000500200000000ba2146d455a947c6821b9a6908ea865a00000002000000000200000000000000000001000000000024000000000000000000010000000100001000000200010001000000000000000000500200000000ba2146d455a947c6821b9a6908ea865a01000000000000000000500400000000ba2146d455a947c6821b9a6908ea865a00008000000000000200000000000000000001000000000022000000000000000000010000000100001000000200010001000000000000000000500100000000ba2146d455a947c6821b9a6908ea865a01000000000000000000d00100000000ba2146d455a947c6821b9a6908ea865a00008000000000000200000000000000000001000000000001000000000000000000010000000100001000000100010001000000000000000000d00000000000ba2146d455a947c6821b9a6908ea865a010000000000000000000008000000000000800500000000001000000010000000100000000000000000000000000000000000000000000000000000000000000000ba2146d455a947c6821b9a6908ea865af281fc6dc8a34ae89fd1d70a18804539", 0x240, 0x1507dc0}, {&(0x7f0000013d00)="5a81730dd5bbf071ebb21867e7e5503752d0378114adb200e500ea0c51d618f5f281fc6dc8a34ae89fd1d70a18804539000050010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0400000000000000030000000000000006000000000100000000000000d80100000000000000393f0000620000000001000000000000e40000100000000000e93e0000500000000001000000000000e40000500000000000993e0000500000000001000000000000e40000d00000000000493e0000500000000001000000000000e40000500100000000d93d0000700000000001000000000000e40000d00100000000693d0000700000000000000000", 0x100, 0x1d00000}, {&(0x7f0000013e00)="000000000000000000000000000000000002000000000200000000000000000001000000000024000000000000000000010000000100001000000200010001000000000000000000500200000000ba2146d455a947c6821b9a6908ea865a01000000000000000000500400000000ba2146d455a947c6821b9a6908ea865a00008000000000000200000000000000000001000000000022000000000000000000010000000100001000000200010001000000000000000000500100000000ba2146d455a947c6821b9a6908ea865a01000000000000000000d00100000000ba2146d455a947c6821b9a6908ea865a00008000000000000200000000000000000001000000000001000000000000000000010000000100001000000100010001000000000000000000d00000000000ba2146d455a947c6821b9a6908ea865a00008000000000000200000000000000000001000000000004000000000000000000010000000100001000000100010001000000000000000000500000000000ba2146d455a947c6821b9a6908ea865a00004000000000000200000000000000000001000000000002000000000000000010000000100000001000000100000001000000000000000000100000000000ba2146d455a947c6821b9a6908ea865a010000000000000000000008000000000000400600000000001000000010000000100000000000000000000000000000000000000000000000000000000000000000ba2146d455a947c6821b9a6908ea865af281fc6dc8a34ae89fd1d70a188045391fe8b8a1bb383e6233846e73513420ffa1c76d1d4e736fdabeaa9fe51e9a75c5f281fc6dc8a34ae89fd1d70a18804539004050010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0500000000000000030000000000000004000000000100000000000000d80100000000000000393f0000620000000001000000000000e40000d00000000000e93e0000500000000001000000000000e40000500100000000793e0000700000000001000000000000e40000d00100000000093e0000700000000001000000000000e40000d00100000000093e0000700000000001000000000000e40000d00100000000b93d0000700000000000000000", 0x340, 0x1d03dc0}, {&(0x7f0000014200)="000000000000000000000000000000000002000000000200000000000000000001000000000024000000000000000000010000000100001000000200010001000000000000000000500200000000ba2146d455a947c6821b9a6908ea865a00000002000000000200000000000000000001000000000024000000000000000000010000000100001000000200010001000000000000000000500200000000ba2146d455a947c6821b9a6908ea865a00000002000000000200000000000000000001000000000024000000000000000000010000000100001000000200010001000000000000000000500200000000ba2146d455a947c6821b9a6908ea865a01000000000000000000500400000000ba2146d455a947c6821b9a6908ea865a00008000000000000200000000000000000001000000000022000000000000000000010000000100001000000200010001000000000000000000500100000000ba2146d455a947c6821b9a6908ea865a01000000000000000000d00100000000ba2146d455a947c6821b9a6908ea865a00008000000000000200000000000000000001000000000001000000000000000000010000000100001000000100010001000000000000000000d00000000000ba2146d455a947c6821b9a6908ea865a010000000000000000000008000000000000800500000000001000000010000000100000000000000000000000000000000000000000000000000000000000000000ba2146d455a947c6821b9a6908ea865af281fc6dc8a34ae89fd1d70a18804539", 0x240, 0x1d07dc0}, {&(0x7f0000014500)="ea9c10bb271f49391101a188cca50527c1851d1d8d2cc464046f9a6dd8cc2d47f281fc6dc8a34ae89fd1d70a188045390000d0010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0400000000000000050000000000000002000000000001000000000000010000000000000000fb3e0000a000000000010000000000000c0001000000000000ef3e00000c00"/160, 0xa0, 0x2500000}, {&(0x7f0000014600)="0000000000000000000000000000000000000000000000000000000002002e2e03000000000000000000000000000000000000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000000000000055000100000000000000000055bc645f000000000000000055bc645f000000000000000033ebe7dff941f55538c9917dad908d9f3796e5c5ad455570e4de6400610f1869f281fc6dc8a34ae89fd1d70a188045390040d0010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc060000000000000005000000000000001b000000000001000000000000010000000000000000fb3e0000a000000000010000000000000c0001000000000000ef3e00000c0000000001000000000000544bae790400000000cc3e0000230000000001000000000000546b826b1100000000a53e000027000000000100000000000054bf5d291700000000823e000023000000000100000000000054bcde42e5000000005f3e000023000000000100000000000054482d12f6000000003c3e00002300000001010000000000000100000000000000009c3d0000a000000001010000000000000c00010000000000008d3d00000f0000000101000000000000544bae7904000000006a3d000023000000010100000000000054482d12f600000000473d0000230000000201000000000000010000000000000000a73c0000a0000000020100000000003f0f0000000000000000983c00000f00000002010000000000006c0000000000000000693800002f0400000301000000000000010000000000000000c9370000a000000003010000000000000c0101000000000000ba3700000f00000003010000000000006c00000000000000007f3700003b0000000401000000000000010000000000000000df360000a000000004010000000000000c0001000000000000d03600000f00000004010000000000001822a8f12600000000a13600002f000000040100000000000018d65ba13500000000723600002f00000004010000000000006c0000000000000000533600001f0000000501000000000000010000000000000000b3350000a00000000501000000000000000000090000000000953500001e0000000601000000000000010000000000000000f5340000a000000006010000000000000c0001000000000000e23400001300000006010000000000006c0000000000000000693400007900"/992, 0x3e0, 0x2503f40}, {&(0x7f0000014a00)="000000000000000000000000000006000000000000006400000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c6572730600000000000000090066696c652e636f6c6406000000000000000600000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b240400000000000000050066696c65320500000000000000050066696c653306000000000000000600000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2406000000000000000a00000000000000000000000073797a6b616c6c6572730000000000000000000000000000000000060000000000000006000b0008757365722e7861747472317861747472310000000000000000000000000000000000060000000000000006000b0008757365722e7861747472327861747472320300000000000000050066696c653106000000000000000600000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b240600000000000000260000000000000000000000002f746d702f73797a2d696d61676567656e3735353534303837312f66696c65302f66696c65300300000000000000050066696c653106000000000000000600000000000000000000000000000000000000000000000000000000000000010000000000000000000000ffa10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2406000000000000001a04000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c0200000000000000050066696c653006000000000000000600000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000003238ce2355bc645f000000003238ce2355bc645f000000003238ce2355bc645f000000003238ce2303010000000000000100000000000000000600000000000000000005000766696c653102010000000000000100000000000000000600000000000000000005000166696c65300200000000000000050066696c653006000000000000000600000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000003238ce2355bc645f000000003238ce2355bc645f000000003238ce2355bc645f000000003238ce2304010000000000000100000000000000000600000000000000000005000166696c653105010000000000000100000000000000000600000000000000000005000166696c653205010000000000000100000000000000000600000000000000000005000166696c653306010000000000000100000000000000000600000000000000000009000166696c652e636f6c6401010000000000000100000000000000000600000000000000000005000266696c6530000000000000000002002e2e03000000000000000000000000000000000000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f00000000000000001cd856bc60c4900c12210cde5a9fe02a528c239f783bf2c789cc68f72f92ba74f281fc6dc8a34ae89fd1d70a188045390080d0010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0600000000000000050000000000000023000000000001000000000000010000000000000000fb3e0000a000000000010000000000000c0001000000000000ef3e00000c0000000001000000000000544bae790400000000cc3e0000230000000001000000000000546b826b1100000000a53e000027000000000100000000000054bf5d291700000000823e000023000000000100000000000054bcde42e5000000005f3e000023000000000100000000000054482d12f6000000003c3e0000230000000001000000000000600200000000000000193e0000230000000001000000000000600300000000000000f63d0000230000000001000000000000600400000000000000d33d0000230000000001000000000000600500000000000000b03d0000230000000001000000000000600600000000000000893d0000270000000101000000000000010000000000000000e93c0000a000000001010000000000000c0001000000000000da3c00000f0000000101000000000000544bae790400000000b73c000023000000010100000000000054482d12f600000000943c0000230000000101000000000000600200000000000000713c00002300000001010000000000006003000000000000004e3c0000230000000201000000000000010000000000000000ae3b0000a000000002010000000000000c01010000000000009f3b00000f00000002010000000000006c0000000000000000703700002f0400000301000000000000010000000000000000d0360000a000000003010000000000000c0101000000000000c13600000f00000003010000000000006c0000000000000000863600003b0000000401000000000000010000000000000000e6350000a000000004010000000000000c0001000000000000d73500000f00000004010000000000001822a8f12600000000a83500002f000000040100000000000018d65ba13500000000793500002f00000004010000000000006c00000000000000005a3500001f0000000501000000000000010000000000000000ba340000a000000005010000000000000c00010000000000009c3400001e00000005010000000000006c000000000000000067340000350000000601000000000000010000000000000000c7330000a000000006010000000000000c0001000000000000b43300001300000006010000000000006c00000000000000003b3300007900"/3872, 0xf20, 0x25074c0}, {&(0x7f0000015a00)="06000000000000006400000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c6572730600000000000000090066696c652e636f6c6406000000000000000600000000000000640000000000000064000000000000000000000000000000010000000000000000000000ed810000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b240600000000000000003000000000000000000000010000d000000000000030000000000000000000000000000000300000000000000400000000000000050066696c65320500000000000000050066696c653306000000000000000600000000000000282300000000000000300000000000000000000000000000020000000000000000000000ed810000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2406000000000000000a00000000000000000000000073797a6b616c6c6572730000000000000000000000000000000000060000000000000006000b0008757365722e7861747472317861747472310000000000000000000000000000000000060000000000000006000b0008757365722e7861747472327861747472320300000000000000050066696c6531060000000000000006000000000000000a000000000000000a000000000000000000000000000000010000000000000000000000ed810000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b240600000000000000260000000000000000000000002f746d702f73797a2d696d61676567656e3735353534303837312f66696c65302f66696c65300300000000000000050066696c653106000000000000000600000000000000260000000000000026000000000000000000000000000000010000000000000000000000ffa10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2406000000000000001a04000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c0200000000000000050066696c6530060000000000000006000000000000001a040000000000001a040000000000000000000000000000010000000000000000000000ed810000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000003238ce2355bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000003238ce2303010000000000000100000000000000000600000000000000000005000766696c653102010000000000000100000000000000000600000000000000000005000166696c653003010000000000000100000000000000000600000000000000000005000766696c653102010000000000000100000000000000000600000000000000000005000166696c65300200000000000000050066696c653006000000000000000600000000000000140000000000000000000000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000003238ce2355bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000003238ce2306010000000000000100000000000000000600000000000000000009000166696c652e636f6c6405010000000000000100000000000000000600000000000000000005000166696c653305010000000000000100000000000000000600000000000000000005000166696c653204010000000000000100000000000000000600000000000000000005000166696c653101010000000000000100000000000000000600000000000000000005000266696c653004010000000000000100000000000000000600000000000000000005000166696c653105010000000000000100000000000000000600000000000000000005000166696c653205010000000000000100000000000000000600000000000000000005000166696c653306010000000000000100000000000000000600000000000000000009000166696c652e636f6c6401010000000000000100000000000000000600000000000000000005000266696c6530000000000000000002002e2e030000000000000006000000000000003a0000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000000000000054d9ae8a50640c46a0df89796adb0bba82694616785d34fcdfee323c14aacd2bf281fc6dc8a34ae89fd1d70a1880453900c0d0010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc060000000000000007000000000000000100000000f6ffffffffffffff800000d000000000003b3f0000600000000000", 0xce0, 0x250b3a0}, {&(0x7f0000016700)="ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca781cb1f6c092c7f446fd450543f4c9621c16e610964c8027d751e58c4d0d76cdff281fc6dc8a34ae89fd1d70a188045390000d1010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc04000000000000000700000000000000", 0xc0, 0x250ffa0}, {&(0x7f0000016800)="9df70c37de1f2484e108df5eec40a3cb632319d10e83f7f9d37764c73294b3e7f281fc6dc8a34ae89fd1d70a188045390040d1010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0400000000000000f7ffffffffffffff02000000000001000000000000010000000000000000fb3e0000a000000000010000000000000c0001000000000000ef3e00000c00"/160, 0xa0, 0x2514000}, {&(0x7f0000016900)="0000000000000000000000000000000000000000000000000000000002002e2e04000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f00000000000000000000000000000000000000009a7fef79219408467335b4657296085e774b10f400dfdb208ca138c1bfd8f298f281fc6dc8a34ae89fd1d70a188045390080d1010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0400000000000000090000000000000001000000002951053f7adf4ff4fbba8d76b0f7b29301933f0000080000000000", 0x140, 0x2517f40}, {&(0x7f0000016b00)="0000000000000000000000000000000000000000000000000500000000000000c15236b363f46c6408e847dadabb9ceb0ef720c34bef813f21edec1dbd6a5eb4f281fc6dc8a34ae89fd1d70a1880453900c0d1010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc050000000000000002000000000000000b000000000000d00000000000c00000800000000000833f0000180000000000500100000000c000008000000000006b3f0000180000000040500100000000a900000000000000004a3f0000210000000000d00100000000a90000000000000000293f0000210000000000d00100000000c00000000200000000113f0000180000000000d10100000000a90000000000000000f03e0000210000000040d10100000000a90000000000000000cf3e0000210000000080d10100000000a90000000000000000ae3e00002100000000c0d10100000000a900000000000000008d3e0000210000000000d20100000000a900000000000000006c3e0000210000000040d20100000000a900000000000000004b3e0000210000000080d10100000000a900000000000000004b3e0000210000000080d10100000000a90000000000000000333e0000210000000000500000000000c00000800000000000f33e000018", 0x1e0, 0x251bfe0}, {&(0x7f0000016d00)="010000000000000004000000000000000200000000000000010000000000000004000000000000000200000000000000010000000000000005000000000000000200000000000000b00100000000000000010000000000000005000000000000000200000000000000b00400000000000000010000000000000005000000000000000200000000000000b00200000000000000010000000000000004000000000000000200000000000000b00900000000000000010000000000000004000000000000000200000000000000b0f7ffffffffffffff010000000000000004000000000000000200000000000000b0070000000000000000c001000000000000010000000000002400000000000000010000000000000004000000000000000200000000000000b00500000000000000010000000000000005000000000000000200000000000000b0030000000000000000400000000000000001000000000000220000000000000000000000000000000001000000000000010000000000000095e6aab9ae60230267080668e81ac8b1c126d6d9874e8ef9d4aac9975753ab07f281fc6dc8a34ae89fd1d70a188045390000d2010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0500000000000000040000000000000005000000000100000000000000cc0000d000000000006b3f0000300000000100000000000000cc00005001000000003b3f0000300000000100000000000000cc0000d001000000000b3f0000300000000100000000000000cc0000500200000000db3e0000300000000100000000000000cc0000500400000000ab3e0000300000000100000000000000cc0000500400000000ab3e0000300000000100000000000000cc00005004000000007b3e00003000"/672, 0x2a0, 0x251fe80}, {&(0x7f0000017000)="00000000000000000000000000000000030000000000000000010000000000000000d0010000000000000002000000000c7e9a93ab124758aba61b0fe72b1bdc030000000000000000010000000000000000d0010000000000000002000000000c7e9a93ab124758aba61b0fe72b1bdc030000000000000000010000000000000000d0010000000000000002000000000c7e9a93ab124758aba61b0fe72b1bdc030000000000000000010000000000000000d0010000000000000002000000000c7e9a93ab124758aba61b0fe72b1bdc03000000000000000001000000000000000050010000000000008000000000000c7e9a93ab124758aba61b0fe72b1bdc03000000000000000001000000000000000050010000000000008000000000000c7e9a93ab124758aba61b0fe72b1bdc030000000000000000010000000000000000d0000000000000008000000000000c7e9a93ab124758aba61b0fe72b1bdc12f360e00ae13ee8af00dd40acf58a0ed002593416c84460566fbf832cf2b11af281fc6dc8a34ae89fd1d70a188045390040d2010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc050000000000000001000000000000000a000000000200000000000000840000000000000000e43d0000b701000004000000000000008400000000000000002d3c0000b701000005000000000000000c06000000000000001c3c0000110000000500000000000000840000000000000000653a0000b70100000600000000000000010000000000000000c5390000a000000006000000000000000c0600000000000000b93900000c000000060000000000000054d2c2bf8d0000000094390000250000000700000000000000840000000000000000dd370000b7010000090000000000000084000000000000000026360000b7010000f7ffffffffffffff8400000000000000006f340000b701000000", 0x2c0, 0x2523ea0}, {&(0x7f0000000140)="0000000000000000000000000000000000000000040000000000000000010000000000000040d1010000000000000000000000faff00000000000000000000000000000000000000000100000000000000000000000000000000000000000000040000000000000000000000000000008652eb8a3000"/130, 0x82, 0x2527560}, {&(0x7f0000017400)="0000000000000000000000040000000000000000000000000000000080d1010000000000000000000000000040000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000040000000000", 0x60, 0x2527720}, {&(0x7f0000017500)="000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000", 0x40, 0x2527840}, {&(0x7f0000000040)="0000040000000000000000000000000000000000d10100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000400006558ef65939c00"/102, 0x66, 0x25278e0}, {&(0x7f0000017700)="00000000000000000000000000000000000000000000000000050000000000000084ffffffffffffffff0000000000000000000007000264656661756c74000000000000000002002e2e03000000000000000000000000000000000000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed41", 0x120, 0x25279e0}, {&(0x7f0000017900)="00000000000000000000040000000000000000010000000000000000d001000000000000000000000000004000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000004000000000000002951053f7adf4ff4ba8d76b0f7b2930100"/128, 0x80, 0x102527b60}, {&(0x7f0000017a00)="000000000000000000000000000000000055bc645f000000000000000055bc645f00"/64, 0x40, 0x2527c00}, {&(0x7f0000017b00)="000000000000000000070064656661756c7401000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x2527c80}, {&(0x7f0000017c00)="000000000000000000000000000000000000050000000000000000000000000000000000d20100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500"/128, 0x80, 0x2527d20}, {&(0x7f0000017d00)="00000000000000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed4100", 0x40, 0x2527e40}, {&(0x7f0000017e00)="0000000000000000000500000000000000000000000000000000c0d10100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500000000000000", 0x60, 0x2527ee0}, {&(0x7f0000017f00)="5224886c9a1caf00da1059cf32c89048b831a442efb61add9817e788267feb59f281fc6dc8a34ae89fd1d70a188045390080d2010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc060000000000000002000000000000000c000000000000d00000000000a80030000000000000663f0000350000000000d00000000000c000008000000000004e3f0000180000000000500100000000c00000800000000000363f0000180000000040500100000000a90000000000000000153f0000210000000000d00100000000c00000000200000000fd3e0000180000000080d00100000000a90000000000000000dc3e00002100000000c0d00100000000a90000000000000000bb3e0000210000000040d10100000000a900000000000000009a3e0000210000000080d10100000000a90000000000000000793e0000210000000080d20100000000a90000000000000000583e00002100000000c0d20100000000a90000000000000000373e0000210000000000d30100000000a90000000000000000163e00002100"/416, 0x1a0, 0x2528000}, {&(0x7f0000018100)="000000000000000000000000000000000000000000000000000000010000000000000006000000000000000200000000000000b00400000000000000010000000000000006000000000000000200000000000000b00100000000000000010000000000000006000000000000000200000000000000b00200000000000000010000000000000004000000000000000200000000000000b00900000000000000010000000000000004000000000000000200000000000000b0f7ffffffffffffff010000000000000006000000000000000200000000000000b00700000000000000010000000000000006000000000000000200000000000000b0050000000000000000c001000000000000010000000000002400000000000000010000000000000005000000000000000200000000000000b00300000000000000004000000000000000010000000000002200000000000000003000000000000000010000000000000100000000000000010000000000000006000000000000000100000000000000b2050000000000000005010000000000000000000000000000010000008db71290c190dabb074dca8ed406d0d7f8bab7243b414be61201a1d610985457f281fc6dc8a34ae89fd1d70a1880453900c0d2010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc060000000000000001000000000000000a000000000200000000000000840000000000000000e43d0000b701000004000000000000008400000000000000002d3c0000b701000005000000000000000c06000000000000001c3c0000110000000500000000000000840000000000000000653a0000b70100000600000000000000010000000000000000c5390000a000000006000000000000000c0600000000000000b93900000c000000060000000000000054d2c2bf8d0000000094390000250000000700000000000000840000000000000000dd370000b7010000090000000000000084000000000000000026360000b7010000f7ffffffffffffff8400000000000000006f340000b701000000", 0x300, 0x252be60}, {&(0x7f0000018400)="0000000000000000000000000000000000000000040000000000000000010000000000000040d10100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000400"/128, 0x80, 0x252f560}, {&(0x7f0000018500)="0000000000000000000000040000000000000000000000000000000080d1010000000000000000000000000040000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000040000000000", 0x60, 0x252f720}, {&(0x7f0000018600)="000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000", 0x40, 0x252f840}, {&(0x7f0000018700)="00000600000000000000000000000000000000c0d00100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600"/96, 0x60, 0x252f8e0}, {&(0x7f0000018800)="00000000000000000000000000000000000000000000000000050000000000000084ffffffffffffffff0000000000000000000007000264656661756c74000000000000000002002e2e03000000000000000000000000000000000000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000080ffffffff00"/320, 0x140, 0x252f9e0}, {&(0x7f0000018a00)="00000000000000000000060000000000000000010000000000000080d001000000000000000000000000004000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000006000000000000002951053f7adf4ff4ba8d76b0f7b293010000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000055bc645f000000000962be2555bc645f00"/224, 0xe0, 0x252fb60}, {&(0x7f0000018b00)="000000000000000000070064656661756c7401000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x252fc80}, {&(0x7f0000018c00)="000000000000000000000000000000000000060000000000000000000000000000000000d30100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600"/128, 0x80, 0x252fd20}, {&(0x7f0000018d00)="00000000000000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed4100", 0x40, 0x252fe40}, {&(0x7f0000018e00)="000000000000000000060000000000000000000000000000000080d20100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600000000000000", 0x60, 0x252fee0}, {&(0x7f0000018f00)="b235af42f5471cebdc7c6a45adcb4bd07560e445639a21cec8f346cb848081e6f281fc6dc8a34ae89fd1d70a188045390000d3010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0600000000000000040000000000000006000000000000000000000000f90100000000000000733f0000280000000100000000000000cc0000d00000000000433f0000300000000100000000000000cc0000500100000000133f0000300000000100000000000000cc0000d00100000000e33e0000300000000100000000000000cc0000500200000000b33e0000300000000100000000000000cc0000500400000000833e0000300000000000000000", 0x100, 0x2530000}, {&(0x7f0000019000)="0000000000000000030000000000000000010000000000000000d0010000000000000002000000000c7e9a93ab124758aba61b0fe72b1bdc030000000000000000010000000000000000d0010000000000000002000000000c7e9a93ab124758aba61b0fe72b1bdc03000000000000000001000000000000000050010000000000008000000000000c7e9a93ab124758aba61b0fe72b1bdc03000000000000000001000000000000000050010000000000008000000000000c7e9a93ab124758aba61b0fe72b1bdc030000000000000000010000000000000000d0000000000000008000000000000c7e9a93ab124758aba61b0fe72b1bdc00000000000000000000000000000000000000000000000000000000000000000000000000000000f121cb8ed2878dcf8a87cffd80b85a74303338e6dd03a9685bb0a5f0de80da5ff281fc6dc8a34ae89fd1d70a188045390040d3010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc070000000000000001000000000000000a000000000200000000000000840000000000000000e43d0000b701000004000000000000008400000000000000002d3c0000b701000005000000000000000c06000000000000001c3c0000110000000500000000000000840000000000000000653a0000b70100000600000000000000010000000000000000c5390000a000000006000000000000000c0600000000000000b93900000c000000060000000000000054d2c2bf8d0000000094390000250000000700000000000000840000000000000000dd370000b7010000090000000000000084000000000000000026360000b7010000f7ffffffffffffff8400000000000000006f340000b701000000", 0x280, 0x2533ee0}, {&(0x7f0000019300)="0000000000000000000000000000000000000000040000000000000000010000000000000040d10100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000400"/128, 0x80, 0x2537560}, {&(0x7f0000019400)="0000000000000000000000040000000000000000000000000000000080d1010000000000000000000000000040000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000040000000000", 0x60, 0x2537720}, {&(0x7f0000019500)="000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000", 0x40, 0x2537840}, {&(0x7f0000019600)="00000600000000000000000000000000000000c0d00100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600"/96, 0x60, 0x25378e0}, {&(0x7f0000019700)="00000000000000000000000000000000000000000000000000050000000000000084ffffffffffffffff0000000000000000000007000264656661756c74000000000000000002002e2e03000000000000000000000000000000000000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000080ffffffff00"/320, 0x140, 0x29e}, {&(0x7f0000019900)="00000000000000000000060000000000000000010000000000000080d001000000000000000000000000004000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000006000000000000002951053f7adf4ff4ba8d76b0f7b293010000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000055bc645f000000000962be2555bc645f00"/224, 0xe0, 0x2537b60}, {&(0x7f0000019a00)="000000000000000000070064656661756c7401000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x2537c80}, {&(0x7f0000019b00)="000000000000000000000000000000000000060000000000000000000000000000000000d30100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600"/128, 0x80, 0x2537d20}, {&(0x7f0000019c00)="00000000000000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed4100", 0x40, 0x2537e40}, {&(0x7f0000019d00)="000000000000000000070000000000000000000000000000000080d30100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700000000000000", 0x60, 0x2537ee0}, {&(0x7f0000019e00)="a23ca11ded74d7aaf727384f4023e59afeed45768382d84fa1f3c579ad69588bf281fc6dc8a34ae89fd1d70a188045390080d3010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc070000000000000002000000000000000c000000000000d00000000000a80030000000000000663f0000350000000000d00000000000c000008000000000004e3f0000180000000000500100000000c00000800000000000363f0000180000000040500100000000a90000000000000000153f0000210000000000d00100000000c00000000200000000fd3e0000180000000080d00100000000a90000000000000000dc3e00002100000000c0d00100000000a90000000000000000bb3e0000210000000040d10100000000a900000000000000009a3e0000210000000080d10100000000a90000000000000000793e0000210000000000d30100000000a90000000000000000583e0000210000000040d30100000000a90000000000000000373e0000210000000080d30100000000a90000000000000000163e00002100"/416, 0x1a0, 0x2538000}, {&(0x7f000001a000)="000000000000000000000000000000000000000000000000000000010000000000000007000000000000000200000000000000b00200000000000000010000000000000007000000000000000200000000000000b00100000000000000010000000000000006000000000000000200000000000000b00400000000000000010000000000000004000000000000000200000000000000b00900000000000000010000000000000004000000000000000200000000000000b0f7ffffffffffffff010000000000000006000000000000000200000000000000b00700000000000000010000000000000006000000000000000200000000000000b0050000000000000000c001000000000000010000000000002400000000000000010000000000000005000000000000000200000000000000b00300000000000000004000000000000000010000000000002200000000000000003000000000000000010000000000000100000000000000010000000000000006000000000000000100000000000000b205000000000000000501000000000000000000000000000001000000", 0x1a0, 0x253be60}, {&(0x7f000001a200)="e099b6994a258f175a49f101a7eff51d1c6eefd60cafc056cf3a3ba78b2d80aef281fc6dc8a34ae89fd1d70a18804539000000040000000001000000000000005f42485266535f4d07000000000000000040d301000000000040500100000000000000000000000000000000000000000000000800000000003002000000000006000000000000000100000000000000001000000040000000400000001000008100000005000000000000000000000000000000000000000000000061010000000000000200000000010000000000000000000008000000000000800500000000001000000010000000100000000000000000000000000000000000000000000000000000000000000000ba2146d455a947c6821b9a6908ea865af281fc6dc8a34ae89fd1d70a1880453900"/320, 0x140, 0x4000000}, {&(0x7f000001a400)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\a\x00\x00\x00\x00\x00\x00\x00\a\x00'/32, 0x20, 0x4000220}, {&(0x7f000001a500)="00000000000000000000000001000000000000e4000050010000000000008000000000000200000000000000000001000000000022000000000000000000010000000100001000000200010001000000000000000000500100000000ba2146d455a947c6821b9a6908ea865a01000000000000000000d00100000000ba2146d455a947c6821b9a6908ea865a00000001000000000022000000000000000000010000000100001000000200010001000000000000000000500100000000ba2146d455a947c6821b9a6908ea865a01000000000000000000d00100000000ba2146d455a947c6821b9a6908ea865a00"/256, 0x100, 0x4000320}, {&(0x7f000001a600)="00000000000000000000000040d2010000000005000000000000000040500100000000050000000000000000c0d1010000000005000000000000000000d0010000000004000000000000000000d2010000000005000000000000000000d10100000000040000000000000000000008000000000000020000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0d201000000000600000000000000004050010000000005000000000000000080d2010000000006000000000000000080d0010000000006000000000000000000d30100000000060000000000000000c0d0010000000006000000000000000000000800000000003002000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d301000000000700000000000000004050010000000005000000000000000080d3010000000007000000000000000080d0010000000006000000000000000000d30100000000060000000000000000c0d0010000000006000000000000000000000800000000003002000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d001000000000400000000000000000050010000000004000000000000000080d0010000000004000000000000000000d00100000000040000000000000000c0d0010000000004000000000000000000d101000000000400000000000000000000080000000000000200000000000100"/640, 0x280, 0x4000b20}, {&(0x7f000001a900)="ea9c10bb271f49391101a188cca50527c1851d1d8d2cc464046f9a6dd8cc2d47f281fc6dc8a34ae89fd1d70a188045390000d0010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0400000000000000050000000000000002000000000001000000000000010000000000000000fb3e0000a000000000010000000000000c0001000000000000ef3e00000c00"/160, 0xa0, 0x4500000}, {&(0x7f000001aa00)="0000000000000000000000000000000000000000000000000000000002002e2e03000000000000000000000000000000000000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000033ebe7dff941f55538c9917dad908d9f3796e5c5ad455570e4de6400610f1869f281fc6dc8a34ae89fd1d70a188045390040d0010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc060000000000000005000000000000001b000000000001000000000000010000000000000000fb3e0000a000000000010000000000000c0001000000000000ef3e00000c0000000001000000000000544bae790400000000cc3e0000230000000001000000000000546b826b1100000000a53e000027000000000100000000000054bf5d291700000000823e000023000000000100000000000054bcde42e5000000005f3e000023000000000100000000000054482d12f6000000003c3e00002300000001010000000000000100000000000000009c3d0000a000000001010000000000000c00010000000000008d3d00000f0000000101000000000000544bae7904000000006a3d000023000000010100000000000054482d12f600000000473d0000230000000201000000000000010000000000000000a73c0000a000000002010000000000000c0101000000000000983c00000f00000002010000000000006c0000000000000000693800002f0400000301000000000000010000000000000000c9370000a000000003010000000000000c0101000000000000ba3700000f00000003010000000000006c00000000000000007f3700003b0000000401000000000000010000000000000000df360000a000000004010000000000000c0001000000000000d03600000f00000004010000000000001822a8f12600000000a13600002f000000040100000000000018d65ba13500000000723600002f00000004010000000000006c0000000000000000533600001f0000000501000000000000010000000000000000b3350000a000000005010000000000000c0001000000000000953500001e0000000601000000000000010000000000000000f5340000a000000006010000000000000c0001000000000000e23400001300000006010000000000006c0000000000000000693400007900"/992, 0x3e0, 0x4503f40}, {&(0x7f000001ae00)="000000000000000000000000000006000000000000006400000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c6572730600000000000000090066696c652e636f6c6406000000000000000600000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b240400000000000000050066696c65320500000000000000050066696c653306000000000000000600000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2406000000000000000a00000000000000000000000073797a6b616c6c6572730000000000000000000000000000000000060000000000000006000b0008757365722e7861747472317861747472310000000000000000000000000000000000060000000000000006000b0008757365722e7861747472327861747472320300000000000000050066696c653106000000000000000600000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b240600000000000000260000000000000000000000002f746d702f73797a2d696d61676567656e3735353534303837312f66696c65302f66696c65300300000000000000050066696c653106000000000000000600000000000000000000000000000000000000000000000000000000000000010000000000000000000000ffa10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2406000000000000001a04000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c0200000000000000050066696c653006000000000000000600000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000003238ce2355bc645f000000003238ce2355bc645f000000003238ce2355bc645f000000003238ce2303010000000000000100000000000000000600000000000000000005000766696c653102010000000000000100000000000000000600000000000000000005000166696c65300200000000000000050066696c653006000000000000000600000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000003238ce2355bc645f000000003238ce2355bc645f000000003238ce2355bc645f000000003238ce2304010000000000000100000000000000000600000000000000000005000166696c653105010000000000000100000000000000000600000000000000000005000166696c653205010000000000000100000000000000000600000000000000000005000166696c653306010000000000000100000000000000000600000000000000000009000166696c652e636f6c6401010000000000000100000000000000000600000000000000000005000266696c6530000000000000000002002e2e03000000000000000000000000000000000000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f00000000000000001cd856bc60c4900c12210cde5a9fe02a528c239f783bf2c789cc68f72f92ba74f281fc6dc8a34ae89fd1d70a188045390080d0010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0600000000000000050000000000000023000000000001000000000000010000000000000000fb3e0000a000000000010000000000000c0001000000000000ef3e00000c0000000001000000000000544bae790400000000cc3e0000230000000001000000000000546b826b1100000000a53e000027000000000100000000000054bf5d291700000000823e000023000000000100000000000054bcde42e5000000005f3e000023000000000100000000000054482d12f6000000003c3e0000230000000001000000000000600200000000000000193e0000230000000001000000000000600300000000000000f63d0000230000000001000000000000600400000000000000d33d0000230000000001000000000000600500000000000000b03d0000230000000001000000000000600600000000000000893d0000270000000101000000000000010000000000000000e93c0000a000000001010000000000000c0001000000000000da3c00000f0000000101000000000000544bae790400000000b73c000023000000010100000000000054482d12f600000000943c0000230000000101000000000000600200000000000000713c00002300000001010000000000006003000000000000004e3c0000230000000201000000000000010000000000000000ae3b0000a000000002010000000000000c01010000000000009f3b00000f00000002010000000000006c0000000000000000703700002f0400000301000000000000010000000000000000d0360000a000000003010000000000000c0101000000000000c13600000f00000003010000000000006c0000000000000000863600003b0000000401000000000000010000000000000000e6350000a000000004010000000000000c0001000000000000d73500000f00000004010000000000001822a8f12600000000a83500002f000000040100000000000018d65ba13500000000793500002f00000004010000000000006c00000000000000005a3500001f0000000501000000000000010000000000000000ba340000a000000005010000000000000c00010000000000009c3400001e00000005010000000000006c000000000000000067340000350000000601000000000000010000000000000000c7330000a000000006010000000000000c0001000000000000b43300001300000006010000000000006c00000000000000003b3300007900"/3872, 0xf20, 0x45074c0}, {&(0x7f000001be00)="06000000000000006400000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c6572730600000000000000090066696c652e636f6c6406000000000000000600000000000000640000000000000064000000000000000000000000000000010000000000000000000000ed810000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b240600000000000000003000000000000000000000010000d000000000000030000000000000000000000000000000300000000000000400000000000000050066696c65320500000000000000050066696c653306000000000000000600000000000000282300000000000000300000000000000000000000000000020000000000000000000000ed810000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2406000000000000000a00000000000000000000000073797a6b616c6c6572730000000000000000000000000000000000060000000000000006000b0008757365722e7861747472317861747472310000000000000000000000000000000000060000000000000006000b0008757365722e7861747472327861747472320300000000000000050066696c6531060000000000000006000000000000000a000000000000000a000000000000000000000000000000010000000000000000000000ed810000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b240600000000000000260000000000000000000000002f746d702f73797a2d696d61676567656e3735353534303837312f66696c65302f66696c65300300000000000000050066696c653106000000000000000600000000000000260000000000000026000000000000000000000000000000010000000000000000000000ffa10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000004f410b2406000000000000001a04000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c0200000000000000050066696c6530060000000000000006000000000000001a040000000000001a040000000000000000000000000000010000000000000000000000ed810000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000003238ce2355bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000003238ce2303010000000000000100000000000000000600000000000000000005000766696c653102010000000000000100000000000000000600000000000000000005000166696c653003010000000000000100000000000000000600000000000000000005000766696c653102010000000000000100000000000000000600000000000000000005000166696c65300200000000000000050066696c653006000000000000000600000000000000140000000000000000000000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000003238ce2355bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000003238ce2306010000000000000100000000000000000600000000000000000009000166696c652e636f6c6405010000000000000100000000000000000600000000000000000005000166696c653305010000000000000100000000000000000600000000000000000005000166696c653204010000000000000100000000000000000600000000000000000005000166696c653101010000000000000100000000000000000600000000000000000005000266696c653004010000000000000100000000000000000600000000000000000005000166696c653105010000000000000100000000000000000600000000000000000005000166696c653205010000000000000100000000000000000600000000000000000005000166696c653306010000000000000100000000000000000600000000000000000009000166696c652e636f6c6401010000000000000100000000000000000600000000000000000005000266696c6530000000000000000002002e2e030000000000000006000000000000003a0000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000000000000055bc645f000000004f410b2455bc645f000000004f410b2455bc645f000000000000000054d9ae8a50640c46a0df89796adb0bba82694616785d34fcdfee323c14aacd2bf281fc6dc8a34ae89fd1d70a1880453900c0d0010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc060000000000000007000000000000000100000000f6ffffffffffffff800000d000000000003b3f0000600000000000", 0xce0, 0x450b3a0}, {&(0x7f000001cb00)="ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca781cb1f6c092c7f446fd450543f4c9621c16e610964c8027d751e58c4d0d76cdff281fc6dc8a34ae89fd1d70a188045390000d1010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc04000000000000000700000000000000", 0xc0, 0x450ffa0}, {&(0x7f000001cc00)="9df70c37de1f2484e108df5eec40a3cb632319d10e83f7f9d37764c73294b3e7f281fc6dc8a34ae89fd1d70a188045390040d1010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0400000000000000f7ffffffffffffff02000000000001000000000000010000000000000000fb3e0000a000000000010000000000000c0001000000000000ef3e00000c00"/160, 0xa0, 0x4514000}, {&(0x7f000001cd00)="0000000000000000000000000000000000000000000000000000000002002e2e04000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f00000000000000000000000000000000000000009a7fef79219408467335b4657296085e774b10f400dfdb208ca138c1bfd8f298f281fc6dc8a34ae89fd1d70a188045390080d1010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0400000000000000090000000000000001000000002951053f7adf4ff4fbba8d76b0f7b29301933f0000080000000000", 0x140, 0x4517f40}, {&(0x7f000001cf00)="0000000000000000000000000000000000000000000000000500000000000000c15236b363f46c6408e847dadabb9ceb0ef720c34bef813f21edec1dbd6a5eb4f281fc6dc8a34ae89fd1d70a1880453900c0d1010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc050000000000000002000000000000000b000000000000d00000000000c00000800000000000833f0000180000000000500100000000c000008000000000006b3f0000180000000040500100000000a900000000000000004a3f0000210000000000d00100000000a90000000000000000293f0000210000000000d00100000000c00000000200000000113f0000180000000000d10100000000a90000000000000000f03e0000210000000040d10100000000a90000000000000000cf3e0000210000000080d10100000000a90000000000000000ae3e00002100000000c0d10100000000a900000000000000008d3e0000210000000000d20100000000a900000000000000006c3e0000210000000040d20100000000a900000000000000004b3e0000210000000080d10100000000a900000000000000004b3e0000210000000080d10100000000a90000000000000000333e0000210000000000500000000000c00000800000000000f33e000018", 0x1e0, 0x451bfe0}, {&(0x7f000001d100)="010000000000000004000000000000000200000000000000010000000000000004000000000000000200000000000000010000000000000005000000000000000200000000000000b00100000000000000010000000000000005000000000000000200000000000000b00400000000000000010000000000000005000000000000000200000000000000b00200000000000000010000000000000004000000000000000200000000000000b00900000000000000010000000000000004000000000000000200000000000000b0f7ffffffffffffff010000000000000004000000000000000200000000000000b0070000000000000000c001000000000000010000000000002400000000000000010000000000000004000000000000000200000000000000b00500000000000000010000000000000005000000000000000200000000000000b0030000000000000000400000000000000001000000000000220000000000000000000000000000000001000000000000010000000000000095e6aab9ae60230267080668e81ac8b1c126d6d9874e8ef9d4aac9975753ab07f281fc6dc8a34ae89fd1d70a188045390000d2010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0500000000000000040000000000000005000000000100000000000000cc0000d000000000006b3f0000300000000100000000000000cc00005001000000003b3f0000300000000100000000000000cc0000d001000000000b3f0000300000000100000000000000cc0000500200000000db3e0000300000000100000000000000cc0000500400000000ab3e0000300000000100000000000000cc0000500400000000ab3e0000300000000100000000000000cc00005004000000007b3e00003000"/672, 0x2a0, 0x451fe80}, {&(0x7f000001d400)="00000000000000000000000000000000030000000000000000010000000000000000d0010000000000000002000000000c7e9a93ab124758aba61b0fe72b1bdc030000000000000000010000000000000000d0010000000000000002000000000c7e9a93ab124758aba61b0fe72b1bdc030000000000000000010000000000000000d0010000000000000002000000000c7e9a93ab124758aba61b0fe72b1bdc030000000000000000010000000000000000d0010000000000000002000000000c7e9a93ab124758aba61b0fe72b1bdc03000000000000000001000000000000000050010000000000008000000000000c7e9a93ab124758aba61b0fe72b1bdc03000000000000000001000000000000000050010000000000008000000000000c7e9a93ab124758aba61b0fe72b1bdc030000000000000000010000000000000000d0000000000000008000000000000c7e9a93ab124758aba61b0fe72b1bdc12f360e00ae13ee8af00dd40acf58a0ed002593416c84460566fbf832cf2b11af281fc6dc8a34ae89fd1d70a188045390040d2010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc050000000000000001000000000000000a000000000200000000000000840000000000000000e43d0000b701000004000000000000008400000000000000002d3c0000b701000005000000000000000c06000000000000001c3c0000110000000500000000000000840000000000000000653a0000b70100000600000000000000010000000000000000c5390000a000000006000000000000000c0600000000000000b93900000c000000060000000000000054d2c2bf8d0000000094390000250000000700000000000000840000000000000000dd370000b7010000090000000000000084000000000000000026360000b7010000f7ffffffffffffff8400000000000000006f340000b701000000", 0x2c0, 0x4523ea0}, {&(0x7f000001d700)="0000000000000000000000000000000000000000040000000000000000010000000000000040d10100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000400"/128, 0x80, 0x4527560}, {&(0x7f000001d800)="0000000000000000000000040000000000000000000000000000000080d1010000000000000000000000000040000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000040000000000", 0x60, 0x4527720}, {&(0x7f000001d900)="000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000", 0x40, 0x4527840}, {&(0x7f000001da00)="0000040000000000000000000000000000000000d10100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000400"/96, 0x60, 0x45278e0}, {&(0x7f000001db00)="00000000000000000000000000000000000000000000000000050000000000000084ffffffffffffffff0000000000000000000007000264656661756c74000000000000000002002e2e03000000000000000000000000000000000000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed41", 0x120, 0x45279e0}, {&(0x7f000001dd00)="00000000000000000000040000000000000000010000000000000000d001000000000000000000000000004000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000004000000000000002951053f7adf4ff4ba8d76b0f7b2930100"/128, 0x80, 0x4527b60}, {&(0x7f000001de00)="000000000000000000000000000000000055bc645f000000000000000055bc645f00"/64, 0x40, 0x4527c00}, {&(0x7f000001df00)="000000000000000000070064656661756c7401000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x4527c80}, {&(0x7f000001e000)="000000000000000000000000000000000000050000000000000000000000000000000000d20100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500"/128, 0x80, 0x4527d20}, {&(0x7f000001e100)="00000000000000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed4100", 0x40, 0x4527e40}, {&(0x7f000001e200)="0000000000000000000500000000000000000000000000000000c0d10100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500000000000000", 0x60, 0x4527ee0}, {&(0x7f000001e300)="5224886c9a1caf00da1059cf32c89048b831a442efb61add9817e788267feb59f281fc6dc8a34ae89fd1d70a188045390080d2010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc060000000000000002000000000000000c000000000000d00000000000a80030000000000000663f0000350000000000d00000000000c000008000000000004e3f0000180000000000500100000000c00000800000000000363f0000180000000040500100000000a90000000000000000153f0000210000000000d00100000000c00000000200000000fd3e0000180000000080d00100000000a90000000000000000dc3e00002100000000c0d00100000000a90000000000000000bb3e0000210000000040d10100000000a900000000000000009a3e0000210000000080d10100000000a90000000000000000793e0000210000000080d20100000000a90000000000000000583e00002100000000c0d20100000000a90000000000000000373e0000210000000000d30100000000a90000000000000000163e00002100"/416, 0x1a0, 0x4528000}, {&(0x7f000001e500)="000000000000000000000000000000000000000000000000000000010000000000000006000000000000000200000000000000b00400000000000000010000000000000006000000000000000200000000000000b00100000000000000010000000000000006000000000000000200000000000000b00200000000000000010000000000000004000000000000000200000000000000b00900000000000000010000000000000004000000000000000200000000000000b0f7ffffffffffffff010000000000000006000000000000000200000000000000b00700000000000000010000000000000006000000000000000200000000000000b0050000000000000000c001000000000000010000000000002400000000000000010000000000000005000000000000000200000000000000b00300000000000000004000000000000000010000000000002200000000000000003000000000000000010000000000000100000000000000010000000000000006000000000000000100000000000000b2050000000000000005010000000000000000000000000000010000008db71290c190dabb074dca8ed406d0d7f8bab7243b414be61201a1d610985457f281fc6dc8a34ae89fd1d70a1880453900c0d2010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc060000000000000001000000000000000a000000000200000000000000840000000000000000e43d0000b701000004000000000000008400000000000000002d3c0000b701000005000000000000000c06000000000000001c3c0000110000000500000000000000840000000000000000653a0000b70100000600000000000000010000000000000000c5390000a000000006000000000000000c0600000000000000b93900000c000000060000000000000054d2c2bf8d0000000094390000250000000700000000000000840000000000000000dd370000b7010000090000000000000084000000000000000026360000b7010000f7ffffffffffffff8400000000000000006f340000b701000000", 0x300, 0x452be60}, {&(0x7f000001e800)="0000000000000000000000000000000000000000040000000000000000010000000000000040d10100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000400"/128, 0x80, 0x452f560}, {&(0x7f000001e900)="0000000000000000000000040000000000000000000000000000000080d1010000000000000000000000000040000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000040000000000", 0x60, 0x452f720}, {&(0x7f000001ea00)="000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000", 0x40, 0x452f840}, {&(0x7f000001eb00)="00000600000000000000000000000000000000c0d00100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600"/96, 0x60, 0x452f8e0}, {&(0x7f000001ec00)="00000000000000000000000000000000000000000000000000050000000000000084ffffffffffffffff0000000000000000000007000264656661756c74000000000000000002002e2e03000000000000000000000000000000000000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000080ffffffff00"/320, 0x140, 0x452f9e0}, {&(0x7f000001ee00)="00000000000000000000060000000000000000010000000000000080d001000000000000000000000000004000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000006000000000000002951053f7adf4ff4ba8d76b0f7b293010000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000055bc645f000000000962be2555bc645f00"/224, 0xe0, 0x452fb60}, {&(0x7f000001ef00)="000000000000000000070064656661756c7401000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x452fc80}, {&(0x7f000001f000)="000000000000000000000000000000000000060000000000000000000000000000000000d30100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600"/128, 0x80, 0x452fd20}, {&(0x7f000001f100)="00000000000000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed4100", 0x40, 0x452fe40}, {&(0x7f000001f200)="000000000000000000060000000000000000000000000000000080d20100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600000000000000", 0x60, 0x452fee0}, {&(0x7f000001f300)="b235af42f5471cebdc7c6a45adcb4bd07560e445639a21cec8f346cb848081e6f281fc6dc8a34ae89fd1d70a188045390000d3010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc0600000000000000040000000000000006000000000000000000000000f90100000000000000733f0000280000000100000000000000cc0000d00000000000433f0000300000000100000000000000cc0000500100000000133f0000300000000100000000000000cc0000d00100000000e33e0000300000000100000000000000cc0000500200000000b33e0000300000000100000000000000cc0000500400000000833e0000300000000000000000", 0x100, 0x4530000}, {&(0x7f000001f400)="0000000000000000030000000000000000010000000000000000d0010000000000000002000000000c7e9a93ab124758aba61b0fe72b1bdc030000000000000000010000000000000000d0010000000000000002000000000c7e9a93ab124758aba61b0fe72b1bdc03000000000000000001000000000000000050010000000000008000000000000c7e9a93ab124758aba61b0fe72b1bdc03000000000000000001000000000000000050010000000000008000000000000c7e9a93ab124758aba61b0fe72b1bdc030000000000000000010000000000000000d0000000000000008000000000000c7e9a93ab124758aba61b0fe72b1bdc00000000000000000000000000000000000000000000000000000000000000000000000000000000f121cb8ed2878dcf8a87cffd80b85a74303338e6dd03a9685bb0a5f0de80da5ff281fc6dc8a34ae89fd1d70a188045390040d3010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc070000000000000001000000000000000a000000000200000000000000840000000000000000e43d0000b701000004000000000000008400000000000000002d3c0000b701000005000000000000000c06000000000000001c3c0000110000000500000000000000840000000000000000653a0000b70100000600000000000000010000000000000000c5390000a000000006000000000000000c0600000000000000b93900000c000000060000000000000054d2c2bf8d0000000094390000250000000700000000000000840000000000000000dd370000b7010000090000000000000084000000000000000026360000b7010000f7ffffffffffffff8400000000000000006f340000b701000000", 0x280, 0x4533ee0}, {&(0x7f000001f700)="0000000000000000000000000000000000000000040000000000000000010000000000000040d10100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000400"/128, 0x80, 0x4537560}, {&(0x7f000001f800)="0000000000000000000000040000000000000000000000000000000080d1010000000000000000000000000040000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000040000000000", 0x60, 0x4537720}, {&(0x7f000001f900)="000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000", 0x40, 0x4537840}, {&(0x7f000001fa00)="00000600000000000000000000000000000000c0d00100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600"/96, 0x60, 0x45378e0}, {&(0x7f000001fb00)="00000000000000000000000000000000000000000000000000050000000000000084ffffffffffffffff0000000000000000000007000264656661756c74000000000000000002002e2e03000000000000000000000000000000000000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000055bc645f000000000000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed410000000000000000000000000080ffffffff00"/320, 0x140, 0x45379e0}, {&(0x7f000001fd00)="00000000000000000000060000000000000000010000000000000080d001000000000000000000000000004000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000006000000000000002951053f7adf4ff4ba8d76b0f7b293010000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000055bc645f000000000962be2555bc645f00"/224, 0xe0, 0x4537b60}, {&(0x7f000001fe00)="000000000000000000070064656661756c7401000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x4537c80}, {&(0x7f000001ff00)="000000000000000000000000000000000000060000000000000000000000000000000000d30100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600"/128, 0x80, 0x4537d20}, {&(0x7f0000020000)="00000000000000000001000000000000000000000000000000030000000000000000400000000000000000000000000000010000000000000000000000ed4100", 0x40, 0x4537e40}, {&(0x7f0000020100)="000000000000000000070000000000000000000000000000000080d30100000000000000000000000000400000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700000000000000", 0x60, 0x4537ee0}, {&(0x7f0000020200)="a23ca11ded74d7aaf727384f4023e59afeed45768382d84fa1f3c579ad69588bf281fc6dc8a34ae89fd1d70a188045390080d3010000000001000000000000010c7e9a93ab124758aba61b0fe72b1bdc070000000000000002000000000000000c000000000000d00000000000a80030000000000000663f0000350000000000d00000000000c000008000000000004e3f0000180000000000500100000000c00000800000000000363f0000180000000040500100000000a90000000000000000153f0000210000000000d00100000000c00000000200000000fd3e0000180000000080d00100000000a90000000000000000dc3e00002100000000c0d00100000000a90000000000000000bb3e0000210000000040d10100000000a900000000000000009a3e0000210000000080d10100000000a90000000000000000793e0000210000000000d30100000000a90000000000000000583e0000210000000040d30100000000a90000000000000000373e0000210000000080d30100000000a90000000000000000163e00002100"/416, 0x1a0, 0x4538000}, {&(0x7f0000020400)="000000000000000000000000000000000000000000000000000000010000000000000007000000000000000200000000000000b00200000000000000010000000000000007000000000000000200000000000000b00100000000000000010000000000000006000000000000000200000000000000b00400000000000000010000000000000004000000000000000200000000000000b00900000000000000010000000000000004000000000000000200000000000000b0f7ffffffffffffff010000000000000006000000000000000200000000000000b00700000000000000010000000000000006000000000000000200000000000000b0050000000000000000c001000000000000010000000000002400000000000000010000000000000005000000000000000200000000000000b00300000000000000004000000000000000010000000000002200000000000000003000000000000000010000000000000100000000000000010000000000000006000000000000000100000000000000b205000000000000000501000000000000000000000000000001000000", 0x1a0, 0x453be60}], 0x0, &(0x7f0000000f80)=ANY=[@ANYBLOB="3e417568ccbc60b184071d1b8a3b6e1018be970309a76e07356f6bb265d5173f1265292c59cc95f293421a4b43f0ddf2461ef2e0e2424c2a6e16ddc08d3e4f852a30f99c56e6acaebaf4033044f62a0d890000080162cb4a7a4c034d695e90bb5ec08100000000000000d08a720cbcf548e0b1a65e191dacf7c0ec78bf2b571b8725f8f1d6a8b9b1b05318a7b879423bfbb7190ad37985ff4796d3965a1ba35b0383deb96db5e7ec3aab0b64d154931b2e900000b30657190d8f0a463d174c9c5cfb69d9299f9c1e5b69b7d528639ea70023aa42125877ae3a541d39664750b4a269859d00"/239]) r0 = syz_mount_image$ext4(&(0x7f0000001080)='ext2\x00', &(0x7f00000010c0)='./file0\x00', 0x4, 0x1, &(0x7f00000011c0)=[{&(0x7f0000001100)="2dc9338518a8972ab975e9c9a63018697fc462a09583a321a7c0716be7f1484087745ac785ec3cd62dafcb3bb9335fd9f84ada74e712368e7b1e6bf2318c85692d3b2dcbc9efa94680612c92e3c3148e8184c99e098a7e3ba7574060ae406dae2d8643aaac13e4a39b44336f707edc1396baf33c4370c970fd0d88ae5cafafead55cc4581877899d2d824bac566bb0", 0x8f, 0x9}], 0x1000080, &(0x7f0000001200)={[{@nobarrier}, {@journal_path={'journal_path', 0x3d, './file0'}}, {@usrquota}], [{@smackfsdef={'smackfsdef', 0x3d, 'btrfs\x00'}}, {@permit_directio}, {@smackfsroot={'smackfsroot', 0x3d, 'btrfs\x00'}}, {@fsmagic={'fsmagic', 0x3d, 0x3}}, {@smackfshat={'smackfshat', 0x3d, '--+$'}}, {@euid_eq}]}) openat(r0, &(0x7f00000012c0)='./file0\x00', 0x101000, 0x2) r1 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r1, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r1, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) openat(r1, &(0x7f0000001480)='./file0\x00', 0x22100, 0x14) setxattr$trusted_overlay_upper(&(0x7f0000001300)='./file0\x00', &(0x7f0000001340), &(0x7f0000001380)={0x0, 0xfb, 0xd5, 0x2, 0x9, "80dfd5b890c7a1dc96d67ceadc20704a", "fab1e1a26d64f2d2ca36d3d217c520a8c039ca6d51ef2d45ac9917db40bbbce3e725decfa207c7129cbfe3f95037698066510fe352c59b64935d7e575ab9df35c22dc00ee43bed375d5472b1d6a3f6d1cdae38b5e74b0c7af6dd6b91a7ddc494d934fe9eb0432899c551bd70bb66de7661046d8946bd32ce8dc8e66eef19ef8912167a7ce901fca9ea78938c07110ee03a539517a36e7761eb7937efa31ec9680242990c8612b7162fa30a891270a0069fdf67237497dd721c418df525ba9e98"}, 0xd5, 0x7) 03:05:34 executing program 2: r0 = bpf$ITER_CREATE(0x21, 0x0, 0x0) ioctl$PERF_EVENT_IOC_REFRESH(0xffffffffffffffff, 0x2402, 0x1f) perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffffffffffffffd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x1) r1 = socket$kcm(0x10, 0x2, 0x0) r2 = openat$cgroup_ro(0xffffffffffffffff, &(0x7f0000000000)='cpu.stat\x00', 0x0, 0x0) sendmsg$kcm(r1, &(0x7f00000001c0)={0x0, 0x0, &(0x7f0000000140)=[{&(0x7f00000000c0)="2e00000010008188040f80ecdb4cb9cca7480ef426000000e3bd6efb440009000e000a0010000000008000001207", 0x2e}], 0x1}, 0x0) r3 = socket$kcm(0x10, 0x2, 0x0) socket$kcm(0x29, 0x5, 0x0) sendmsg$kcm(r3, &(0x7f00000001c0)={0x0, 0x0, &(0x7f0000000140)=[{&(0x7f0000000180)="2e00000010008188040f80ec800000000000000026000000e3bdeefb44004f000e000a0010000b2fd6130f97d80a0313", 0x30}], 0x1}, 0x0) socket$kcm(0x29, 0x0, 0x0) bpf$PROG_LOAD(0x5, &(0x7f00000006c0)={0xf, 0x3, &(0x7f00000003c0)=@raw=[@alu={0x4, 0x0, 0x1, 0x0, 0x9, 0xfffffffffffffff8, 0xfffffffffffffff0}, @initr0={0x18, 0x0, 0x0, 0x0, 0x8}], 0x0, 0x7, 0x53, &(0x7f00000004c0)=""/83, 0x0, 0x6, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, &(0x7f0000000440)={0x4, 0x1}, 0x8, 0x10, &(0x7f0000000540)={0x1}, 0x10}, 0x78) r4 = bpf$OBJ_GET_PROG(0x7, &(0x7f0000003bc0)={&(0x7f0000003b80)='./file0\x00'}, 0x10) bpf$PROG_LOAD(0x5, &(0x7f0000003c00)={0x0, 0x0, 0x0, &(0x7f00000001c0)='GPL\x00', 0xffff, 0x0, &(0x7f0000000300), 0x41100, 0xb, '\x00', 0x0, 0x16, r0, 0x8, &(0x7f0000003b00)={0x9}, 0x8, 0x10, &(0x7f0000003b40)={0x0, 0xf, 0x5c, 0x9}, 0x10, 0x0, r4}, 0x78) r5 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r5, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r5, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) ioctl$PERF_EVENT_IOC_SET_BPF(r2, 0x40042408, r5) 03:05:34 executing program 1: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0x1, 0x803, 0x0) r2 = socket$inet_icmp_raw(0x2, 0x3, 0x1) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000080)={'vlan0\x00', 0x0}) sendto$packet(0xffffffffffffffff, 0x0, 0x0, 0x0, &(0x7f0000000100)={0x11, 0x0, r3, 0x1, 0x0, 0x6, @remote}, 0x14) ioctl$sock_SIOCGIFINDEX(0xffffffffffffffff, 0x8933, &(0x7f0000000600)={'bridge_slave_1\x00', 0x0}) bpf$PROG_LOAD(0x5, &(0x7f0000000500)={0x15, 0x9, &(0x7f0000000180)=@framed={{0x18, 0x0, 0x0, 0x0, 0x2f98}, [@generic={0x0, 0xd, 0x0, 0x0, 0x7ff}, @map={0x18, 0x2}, @alu={0x7, 0x1, 0xa, 0x0, 0x1}, @map={0x18, 0x7}]}, 0x0, 0x5, 0x99, &(0x7f0000000440)=""/153, 0x0, 0x4, '\x00', r4, 0x14, 0xffffffffffffffff, 0x8, &(0x7f00000002c0)={0x0, 0x1}, 0x8, 0x10, &(0x7f0000000380)={0x0, 0x9, 0x0, 0x7ff}, 0x10, 0xffffffffffffffff}, 0x78) ioctl$sock_ipv6_tunnel_SIOCADDPRL(0xffffffffffffffff, 0x89f5, &(0x7f00000000c0)={'syztnl0\x00', &(0x7f0000000180)={'ip6tnl0\x00', r3, 0x29, 0x5, 0x9, 0x80000001, 0x2, @initdev={0xfe, 0x88, '\x00', 0x1, 0x0}, @private1, 0x700, 0x8000, 0x6, 0x5}}) getsockopt$PNPIPE_IFINDEX(r1, 0x113, 0x2, &(0x7f0000000700)=0x0, &(0x7f0000000740)=0x4) sendmsg$nl_route(r0, &(0x7f0000000840)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x1000}, 0xc, &(0x7f0000000800)={&(0x7f0000000780)=@RTM_NEWMDB={0x78, 0x54, 0x200, 0x70bd26, 0x25dfdbfc, {0x7, r4}, [@MDBA_SET_ENTRY={0x20, 0x1, {r5, 0x0, 0x2, 0x1, {@in6_addr=@private0, 0x8edd}}}, @MDBA_SET_ENTRY={0x20, 0x1, {r6, 0x1, 0x3, 0x3, {@in6_addr=@ipv4={'\x00', '\xff\xff', @multicast2}, 0x800}}}, @MDBA_SET_ENTRY={0x20, 0x1, {r3, 0x0, 0x2, 0x0, {@ip4=@dev={0xac, 0x14, 0x14, 0x14}, 0x800}}}]}, 0x78}, 0x1, 0x0, 0x0, 0x80}, 0x0) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000002c0)=0x14) ioctl$ifreq_SIOCGIFINDEX_team(r0, 0x8933, &(0x7f0000000040)={'team0\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000300)=@newlink={0x44, 0x10, 0x401, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @macvtap={{0xc}, {0x4}}}, @IFLA_LINK={0x8, 0x5, r7}, @IFLA_MASTER={0x8, 0xa, r8}]}, 0x44}, 0x1, 0x18cc9}, 0x0) [ 334.729468] team0: Device macvtap17 failed to register rx_handler 03:05:34 executing program 5: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) 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}, &(0x7f0000000400)=0x0) timer_settime(r0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x3938700}}, 0x0) mount(&(0x7f0000000480)=ANY=[@ANYBLOB='[d::]:'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) uselib(&(0x7f0000000200)='./bus\x00') r1 = open(&(0x7f0000000140)='./bus\x00', 0x141042, 0x0) creat(&(0x7f0000000080)='./file0\x00', 0x198) write$UHID_INPUT(r1, &(0x7f0000000580)={0x7f5}, 0x10000005c) open(&(0x7f0000000100)='./bus\x00', 0x4000, 0x190) 03:05:34 executing program 4: r0 = creat(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x100, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) clock_gettime(0x0, &(0x7f00000003c0)={0x0, 0x0}) ioctl$VIDIOC_PREPARE_BUF(r0, 0xc058565d, &(0x7f0000000400)={0x2, 0x8, 0x4, 0x10000, 0x9, {r1, r2/1000+60000}, {0x2, 0x0, 0x8, 0x34, 0x14, 0xf9, "49faadac"}, 0xfffff1a5, 0x1, @userptr=0x352, 0xc70, 0x0, r0}) vmsplice(r3, &(0x7f0000000cc0)=[{&(0x7f0000000480)="06d26e93e0539ec6de2036", 0xb}, {&(0x7f00000004c0)="b2ed6973ad4df3754b65dc73b4fc5eafcd300a81d793db0319afe0cf4a278fc3f1aa2d0e3342d0968a2292832449c4d4dd099590605749eac740da58776ce441d7039e673f56c3696decdf222efedb5b78d26db5ca04bf7c103d797733f556b414ef34ae043240050148956a86959d1c63e7db55c6310643894148b60766f2b416573011fa6651e8ef27214cce66412c1987007707f2134058c83be3783ad7e0ca70c812245bce8582827d313c1deb9c37e501caed3104885eac20e2b4d7e1ea369323e163d55cac62df7f8dcf27385a6dd2d02d1253", 0xd6}, {&(0x7f00000005c0)="c89e2a8ce8f9d44d9924e1a775db8b4505919209b797b38bbc4a3917d4ee4d9ba085fd573a7e83b559f24c653e9fc5642260a5a7791e0460b242eb8ed813dfe3bb5588c022a6679cd04489397d53fe3043d2363e1e494230cac82b9ec0af03ee0fd1e834b446f1259bdec8c2dcbebccd6652b0760695323c4b63177dcb57a9dd58e55003f8d7b039e4714dbf449b9037e293e42e4a816428d90604b133a3b375919819a56ae396ceeb9f754cf62d12d0b15d1f1028efae3983b5bf834ba9c0cf9bff9163", 0xc4}, {&(0x7f00000006c0)="78f519a707036728ec6d361de281bed4e9d387d415f6701710d65cfd4ac516e71a9fe947fe11ce761858b8bafb3faf9e43205219464c692681902557de99e882ca2afec901f05e21ec25542c37165b9dc0ec1694a8b05f946fc57efcb41b0fbc4f5aba345576248c176db16075b2092cf89e67565f271d576343617bb802cdbcba7ccf448f17c77f5a2db60335a80092f14b9db32acbecc852a66e8de96eaf5c1b6072ef4153098f38ec356aeeb6b128fc2b6d4c5ba32f5d83ac8788b084dc471fa5be10647040a30fb9cc994c61a7a4e0446549e19a47b43f18b2de0cbd0d72", 0xe0}, {&(0x7f0000000980)="3a4681c92dd50714bd63693ec09f647cffcd95e0f453ab09d58cf56ac6b2d8eaf41646b416acafbd2e903fd446b3e5aae3acc77f776666e469123836d3c31e818c0755fb7260a641e393e7e17acff6f4b079045557b7600ec021eef4c5f573324c809835584ea2dcf4bd1fc6020acaa106bc1530b6e92808cd660ff7250e89ff3bef7635e117edf6ba1a9fb847a15025a76659fe8238384f6637579c3fc01b80ca2cbbd37f36e3d130a2f15d3a8f8aa9e298f23e8c48f85842eb2f7c4d2b162d4429055732cde439774581213a1965998ac430a1a430bde98ca56d396682ef77d38bfb689480e351", 0xe8}, {&(0x7f0000000a80)="883dfa61904de9784f245e64428cbbf2c9447425cd9ec7359978f8124ff0fd56ff3d3dd68186faf685b83da7f04971a95a645b7e2c3edb8c52ad5ba55b80db2127a61116ef68bf6df0926f92ffc12667ef0e2b253369284857b75afa4b12b3949d5eadca2232bfaa097003f8c0e64d767eb0656e6c40a6a617250915801fe8109d2e49aa32b5982a5905f44e33406e8b003ef72472a909233d1d242045eb4e24e3e1f9965d1431608e46b873ea417f3086d2e68a9823b934cf16dbf1f34ba6e7f5df601335c71795e255105c3aafca", 0xcf}, {&(0x7f0000000b80)="658e54abd2f6142bb19c258f5946cc3d3a42aad5f4889ac7f74be1ed92553d7094d39aee00e9bc", 0x27}, {&(0x7f0000000bc0)="1e5f3eae993205e946d7faa852ccd7e15e0931cf8b42b9caa62064b0f7aa5115687834bb84ba9011d8f76ab3fdec1f669f395eacb21b9eb0c6c2da0385bea47211deff23d2578fc8ca88e10bead55ae22d0c04b869464bd02753d80010ff4b3c2c4b23cd0bd053906e14046ffc96d00cd957d0c006abb4950469b489d8de7818b623508c361e14e16e3ad6869b6ad112ea0c1452d64f06349f49fc4c4105b5b27cc47f43d2b424a1071e70899ba3830889582484f8a7007a22646a2cd2efecf9567e2861aa56c9da3a11280e8c8777e9b114399aadeb53935fb65f4dee31f7ed51", 0xe1}], 0x8, 0x0) getsockopt$EBT_SO_GET_INIT_INFO(r0, 0x0, 0x82, &(0x7f0000000300)={'nat\x00', 0x0, 0x0, 0x0, [0x9, 0xfabb, 0xfffffffffffffffe, 0x5, 0xa628, 0x7f]}, &(0x7f0000000380)=0x78) perf_event_open(&(0x7f0000000100)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) mount$9p_tcp(&(0x7f0000000180), &(0x7f00000001c0)='./file0\x00', &(0x7f0000000200), 0x0, &(0x7f00000007c0)={'trans=tcp,', {'port', 0x3d, 0xfffffdf9}, 0x2c, {[], [{@fowner_eq}, {@smackfsfloor={'smackfsfloor', 0x3d, '\xf9\x1a\x96\xaf\x0e]\xce\xc1\x03\xb8\x9d\xfd\xe8I\x82\xc7m3\x18\x12\xe6\xc4fAp\xe1\x1b!\x81#\x89n\xe9\x06(\re\xb4\x9d\x89\xc7s\xa3\xf6\xd3D\x05\x17\x0e\xfaJ\xb7\xd0\x9ba\x1c\xd1uU\xbc\\\"\xcf\xa5\x96\xa8\x83\xce\xbc\xef>\xdb\a\xef\xa8\xbc\xf1xxD%\xf2&T\xd6\f\x88\x8a8\xcf\xbd\xbc\xab\xa4z7\xbc\x98\xf8\xd4\x96\xd9\x95\x19\x1a:V\xf1\xd4\xa2H} @\x8a\xd0\xfb\xb8\x98\xb5t\x15\xdd\xe9(:\xbc\b\xe1[\xd9\x1fD9\x81v|\xb0\x87\xe9\xc1\xfa\x02\xc4\x895\x11\xc5\xf1\xbd\x11\xa4\xddq\x85\xd3\xee\xce\xb3\x95x\xcc\x91\xed:\xd3HF\xa9jy\x87\xd3O\xcd(U\x173\xb9\xbd\xa4\x17\xee\x1eA\xfc\xf3s\xd6t\f/\xb8a/\xf0C\\\xd7 \x80f\xa1\x1al\xa7\xf2\xcdP\'M~\x81\x929\xe88\xb7{\xa2\x92F.\x87\xd4\x15\xbf\xa4\x8e-\x117\xa2\xcbn>\xff\x04\xe2T7a6\xa8\x83\x8e\x91\x88\xe1v\xa7\x9eN\xd0W\xf5\xad\x9d\xd9\xd4\xf7\x90\xdbP\xa4\xc0\x89\x01f2\x8bow<\xf4\x10eu\xabD\x84\x11s\x8f\x90U\xe5avSm9\xdfGO\xd6\x85\x81\x15\x7f\x85}e\xc7%\x82F\xc7#^WXZw\x14.tV\x83H\xda\xb8\x97\xf0\x10\xac4\xad\xd9%\xd5\x89n\xa3\xb3\x90'}}, {@subj_user={'subj_user', 0x3d, ',@/@#^}*(.$$*+(,%)_()%'}}]}}) clone(0x60906200, &(0x7f0000000040)="2550ada3cb877aa54211c7d6bfafd3364f8c944ef5c888de3513b64bf841383d399de0e383d166a66973f2c5f7a7b178e548ffb62dbb532f9683726c598348d23ac55b023c6e58a03daa40581d730d3678b80486021a59ec17ffd1f287916c307b7f7f7f8aec0525bb0f7e2cb02dbeeeaed37aab5a2cf6f3f75dcabad8e9cc54f861c2a646c8ed7b7ef099d6a5e10dbb84d604a721d2c4cebf41083c3b8a1a57bd4cbabe", &(0x7f0000000240), &(0x7f0000000280), &(0x7f00000002c0)="e4c2aee5b0578b3774c53ca1db1d862729b22def29cd6f72d0041433d258fe07a6e1d1c9") ioctl$sock_ipv4_tunnel_SIOCDELTUNNEL(0xffffffffffffffff, 0x89f2, 0x0) 03:05:34 executing program 3: r0 = syz_open_dev$usbfs(&(0x7f0000000040), 0x4000000000000073, 0x68001) ioctl$USBDEVFS_DROP_PRIVILEGES(r0, 0x4004551e, &(0x7f0000000180)) r1 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r1, 0x0) preadv(r1, &(0x7f0000000280), 0x18, 0xd9f, 0x0) clone(0x80100900, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) ioctl$USBDEVFS_CONTROL(r0, 0xc0185500, &(0x7f0000001140)={0x2, 0x0, 0x0, 0x81, 0x0, 0x0, 0x0}) setxattr(&(0x7f0000000080)='./file0\x00', &(0x7f00000000c0)=@random={'os2.', '/dev/bus/usb/00#/00#\x00'}, &(0x7f0000000100)='/dev/bus/usb/00#/00#\x00', 0x15, 0x2) ioctl$USBDEVFS_GET_CAPABILITIES(r0, 0x8004551a, &(0x7f0000000200)) [ 334.929409] batman_adv: batadv0: Interface deactivated: batadv_slave_0 [ 334.939694] batman_adv: batadv0: Removing interface: batadv_slave_0 [ 334.985705] usb usb9: usbfs: process 20632 (syz-executor.3) did not claim interface 0 before use [ 335.026961] team0: Device batadv_slave_0 is up. Set it down before adding it as a team port [ 335.074260] usb usb9: usbfs: process 20641 (syz-executor.3) did not claim interface 0 before use [ 335.075229] 9pnet: p9_fd_create_tcp (20637): problem connecting socket to 127.0.0.1 [ 335.097681] team0: Device batadv_slave_0 is up. Set it down before adding it as a team port 03:05:34 executing program 2: r0 = perf_event_open(&(0x7f0000000040)={0x2, 0x80, 0xb6, 0x0, 0x0, 0x0, 0x0, 0x800000000000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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_REFRESH(r0, 0x2402, 0x0) r1 = syz_open_procfs(0x0, &(0x7f0000000080)='net/nfsfs\x00') r2 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000002780)='attr/exec\x00') r3 = openat$vsock(0xffffffffffffff9c, &(0x7f0000000000), 0x250302, 0x0) preadv(r3, &(0x7f0000001400)=[{&(0x7f0000000240)=""/4096, 0x1000}, {&(0x7f0000001240)=""/91, 0x5b}, {&(0x7f00000012c0)=""/155, 0x9b}, {&(0x7f0000001380)=""/65, 0x41}], 0x4, 0x5, 0x7870) ioctl$FICLONE(r2, 0x40049409, r1) perf_event_open(0x0, 0x0, 0x0, 0xffffffffffffffff, 0x0) openat$tun(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) socketpair(0x9, 0x0, 0x0, 0x0) sendmsg$inet(0xffffffffffffffff, 0x0, 0x0) perf_event_open(&(0x7f0000000300)={0x0, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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}, 0x0, 0xbfffffffffffffff, 0xffffffffffffffff, 0x0) r4 = socket$kcm(0x10, 0x2, 0x0) sendmsg$kcm(r4, &(0x7f0000000600)={0x0, 0x0, &(0x7f0000000000)=[{&(0x7f00000005c0)="2e00000010008188040f80ec59acbc0413a1f84810000000e3bd6efb440e04000e000a000f00000002800000121f", 0x2e}], 0x1}, 0x0) perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfff, 0x10000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, @perf_config_ext={0x6, 0x2}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x1) sendmsg(r4, &(0x7f00000003c0)={&(0x7f0000000200)=@caif=@dgm={0x25, 0x17, 0x40}, 0x80, &(0x7f0000000040)}, 0x0) r5 = syz_open_procfs(0xffffffffffffffff, &(0x7f00000000c0)='net/ipv6_route\x00') ioctl$PERF_EVENT_IOC_SET_FILTER(r5, 0x40082406, &(0x7f0000000180)='net/nfsfs\x00') sendmsg$kcm(0xffffffffffffffff, 0x0, 0x40) [ 335.189690] libceph: connect [d::]:6789 error -101 [ 335.195099] libceph: mon0 [d::]:6789 connect error [ 335.248813] bond0: team0 is up - this may be due to an out of date ifenslave [ 335.261351] 9pnet: p9_fd_create_tcp (20644): problem connecting socket to 127.0.0.1 [ 335.281336] ceph: No mds server is up or the cluster is laggy 03:05:34 executing program 3: perf_event_open(&(0x7f0000000280)={0x1, 0x80, 0x6a, 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, 0x40}, 0x0, 0x0, 0xffffffffffffffff, 0x0) r0 = socket$inet_udp(0x2, 0x2, 0x0) setsockopt$SO_BINDTODEVICE(r0, 0x1, 0x19, &(0x7f00000000c0)='vcan0\x00', 0x10) connect$inet(r0, &(0x7f00000002c0)={0x2, 0x0, @multicast1}, 0x10) sendmmsg(r0, &(0x7f00000038c0), 0x4000000000000a8, 0x0) recvmsg(r0, &(0x7f0000001300)={0x0, 0x0, 0x0}, 0x0) r1 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r1, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r1, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) perf_event_open(&(0x7f0000000040)={0x5, 0x80, 0x0, 0x1, 0x1, 0x7, 0x0, 0x7f, 0x100, 0xa, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0xffff, 0x0, @perf_config_ext={0xfffffffffffffff9, 0xc8fb}, 0x40, 0x80000000, 0xffffffff, 0x5, 0x2, 0x1, 0xffff, 0x0, 0x9, 0x0, 0xde7}, 0xffffffffffffffff, 0x6, r1, 0x9) r2 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r2, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r2, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) connect$inet(r2, &(0x7f0000000000)={0x2, 0x4e22, @rand_addr=0x64010100}, 0x10) syz_mount_image$f2fs(&(0x7f0000000140), &(0x7f0000000180)='./file0\x00', 0x9, 0x1, &(0x7f00000001c0)=[{&(0x7f0000001440)="39915fd94d9ce7d394688fa38180e9247f1f09fd5401a2f64656bad26fcc74dd8a27f9a231a066c7a749dce2f5258dbf528f3de0352bcff15267c48a19fa098c13b3d119df1d329d62f23e670d150087ad8d6a778e95f662b55f960777c6a7e837c3282aee6525e125d16e17d07a9f69729be76c651fdf37344f2919661aa7ad208f1a527c78eea455c3233417f5c8edec2010e4d6521f89422456ea70cd3504c9b734d0652a040664773764a7865f25ff639abda5ef656c02f312c52b2798b6296f790d4f38c5afef39188dfb72a864e44ab600c43f641063f0b48cbe7dfd373fcfad6a083189abb881089210547213443d3f183fffeaf4c423500af4e001c55be34ca5a2876194335577fb50f610d6a60af27150e62014deb779fd09a0a8ce5182344126eff96201758ed2b2c24b9051729ab3e4c90cdfbcd663a5a442f5ac5c0725664995945793ed0ae79c9c3c820e6882ea7f755725077f110ed68cf350812f8912ab576a80d7adb90f61fb3308ef906b1cfca02c7a38a986427ddf726c317e3b84f4fd2e1dcd9da1db47b76fdcd5af88f8963172e8abb82c5a1f9bbce8d833d918fea9e02041a337f6cfd07227fa3f53c0024c368b8b73b403c9f2f48e6d956021db3316f8854ccdba4557cf9409fd9c68445724d9bdf7cd9a967226beda616fcddba7f848fc4c916347cf6e85fb8ae378e5b263a0d0e7af29510072f2e8adbdfa6e550c8053fdc83f163679e628ce53563999ce7514c4662e9ded6f4034f8cc586036fe0108cbe6af710572d84182cbea83060803f9cfb208d9631d7d5696ddb623115ac73763d77ce60f229a425d780f567e4b381638809bb5199a76136e41d0876748ec8e9623938fbfb1726f8a2ddd134e4db1d6918028dcd6d8be2fe9339dbd6368d3c4148c7c680a9fc4fc6f5e70afc3ee80849128bbd651438390a7c96815c8ced5dae91f3a702022697542aa68adf40c9580d7abafbd77b9aaeb236a4225282d5c5df98a857d685c662a5502c540ba6b4a48af6533d5ec05f024234f18e132fb7a9de02ce4905f6012deeb46451ffa303a6d533602317cd3373d305b49a3e9b9c818074c57afb0257255826a62ead4c20f7365c2f367aeeda356a1dba28ffe49bdae2c5262a14551538bebf99098c54761f1bc57a42d6e3cb1a7eeecd41b0db2c0840261c25c4b7661bb96ae1db60d051feb886ecb5de8d47d7e8e021b96b8137f8e8e34d192c5f0418006df92b6a77b27a308942c33388e03f5a3cc53cd0db04e26646432eb27662a30c99c1766c94325a927ba31be5db6fbcb21d5a806441a826d8f79c45812d452eb129148dd6deed655ecf7f5c76371a498ff5456bf1875e34339e70caaf17fa83a573f67e251a26505e43c0765efd58de565daf6c36fd739e7ea8badeb44c9daa0ac1ce54a531ba632c93b4c804c473845b80444ee001b71dda54a06d3a3a4ce7790f05e95d975443bcd0b1549a33f9308b5a4469600cc475b4020084b3643f6a0f20920f9b3d806b57bc7e9d5c7032cb5fab9d438900e44ae83209e749bf4373c8b67d2877fad83a8342bb2c3cf3d5f0f79901d72c28e591cb3c88402d6cefc4bd1e53cb4652d2843f5bcd1be020624394c5f40c9b4a983f28ab80531a511cf85c08e505ad510aa1dd96c3d9508a5bcc10e7fbf28c1907b8881a4a040e1f8f95843312c26527d31bbee2b2fddf288e7c12de319b026597d6d797f87b478d6e12fc5dd68a40cca4b74c362c3e283b0af926ef4fcca4a25677a9160a41104b4d1fd43d589bab1f05cca0fa562ff2fc85981691432ae1929f68f5204ab6da3b5bd7bf020b139fb959b498854077e8c4e90f1e1d21686c236d23ec652887ea60a69e80a7be500014b14f7c173f6f45027671af00bea53f52e75e7e160584836d9e218fc3fd9cf69ca7c97e586511b48d3316898d40abc4048c68af48bda63e94293e27adc7bf234d201bfdfa72f33ef79259d2774743afe23dc5596585d171056911033ddf70610169b404a2ee5746e57b8bd7295aa5d0d9695ac7e9cc9890c6a60526f2b36cd2ee17b03f74d0188145f76875b5ec8e43ad10bbfefc0bef5cd3309eda0bf9ac02b4efd8502a5b2c0437bcb85fb18aa75555af1b0d9f54eeb48ade0782e855bc60e6fcf8e34c21f01c8007ff3d2ebdcced4335dec44d4fd75d382b36c13b2f29f9cef7fe28747cb0fde474ebdd046dfcaaeded9d53195fef9fd3588e73049b56829283bb67bceb7785333efcec2013e54d83a33ff836e5f3bbe2bc81437d6553e6f9b613f232de0a4906e1f9a1c402ed9eadba821e2eb59f5c0164ac259f66ae431858393950ad57ea37c4a4886c0727cbf7c2e41e0e7f26676e51a18a7486d281305d8581c7f2d251b3d0b8bc90715871455c51e60e9a28068a6944425441c290b903ecad7315f98c76b79dae38d9ef85c88fe2fcc7c4fd75710ab486c97132d126214017cc17ec0fbf26d554ce1884f6aae40873d07d758d112008c134c737f86ff78ca1d178b5790046feff8eeae1c5689f85033d50300fac158c225ff122e4b05ef4c1873b2f0fdba43e0502c6219f91a5df8620ffc43e6bf76139a38ebec94fa539c38f57782a9acc7f7dc2d14008d91a3cd171fe0bc2c253132a44cbbf044350543a4e56d8e0317ad312869846e68652ab344cf9a845a4eea0fbbce7a296e85253175e969e64350072c956f7d2c1a03c449e51e887b880c6555c46cc174c7d474efb5d6dc438ede000a24919b635689ecb9b974c864fffe5507cba2d67f5291edaaa5b204ea549a0e2c1930005d71d11b3255b29548da5a4df3b65e7fd3cb5d47ddd6fbaf3e517daed2bce1d21250efb7ab59dad98f168c02a13344e7996605ef8bb6237c45af8acf7221beaa80161cacf767e6a098c1f057de1b2ebcddfdd28df09d345d17607049b421ede44cff57c5de0cd668802406a8e49feaed8e67f69f5f9e14cf40beb144722c44ae404786aa2c9286e0bf308a25f67d37f3226f5d1fd7903621a8bcac19041e801b9024a2224917a25a4010b684c0e41b09215ee747b2fb0fde78cba80bba569a992808475b56c674e3671bcc3737764ad8a75556ba3f189d97dbaf77db275603c09aaefad3f75d15119a6f56f237e079d00afeb8c90fe7991958d31f987148f97bc15afab2cf95fea8c5019f5c6723831431e2f565b13d2a3038c525a3d4b328db3f50f99f27c5c96126246c95551b2a09e6172848d32a87fff4cc2218cca849cbfcef2b234f7459a4e5eb43cef5b73de7b61054e78328c77f67043aca3a6cba271865fb02596ced0cb5280bb8b64c351af6ae145941a08b966372925cf5c52839573da87edd67756da052bf3e58bf9fc43540bf51c7431ddd70c49f791ee52b534aac68ae53ac93371b6a156f3e0330ae669613ef3abdc99358fb5397d4ed4734023bbbe0a9c1f852c53842bba5f241872d235ce4934c3ef68c14e3c413658a4a6538f824d15ff85ac401e0aa7f7412f305cfb43d77ddcba315b21c871ba165e83970296c0dde811e73a6bd2e543fc323ea477f2c28b9ffe4ec1508ccf2d7a0b02f35a73f4ad0c5a6b8452a7a6840759da213c5e855fea10def052477b9e7b68d606f03e10148f3ebfff2212ae36e7fc81d8ddcd5c9027944f87ffa70e725b79a59882b873c35be105ac2522e8198ec8ef276add9d8541b2b5d32d6de74971e476ae666bfb21b791aadf075338f39adc29f5c2c333400e3ba1c2a22325f166a1fdb52ecb6b8aee4b59f611b7e954ca109511c39584c870aab978cb4ca902be77daebe5bf2fc102649b75fa43837bedbd59bf9db1b7ebe903811767db5e8eaa182ceb4cd88761a2cfd261639d9414a58adbac358d0b50780a116711ae4c8008fa218a8f1fe551a370bb3cb37dd6c36aa864720b8db681dbdfae91cb27784eed8eb2c31a2d6f39c9c6600b84d40423caf480686efe757e867a1552f2151d06b010f4c9de6bc466a0f3c7c45f75c5833b8c18b183913c89b614cbe1e8b9373dde940221840ab6bc7ab3e4597dc61936b3ae97d4feddcc46765f7d57f6526e2aa732bdeec15d59ea2b6424fcac82cf99fa0045e932e39ea391b6ee7cf0841dcd904a9b1cb807ca88da4c9a660f917e99dfe20302f3970df7f2e4cbada2c55ea4f74ba6f4d1e92c43993bfd3a3456a16c646de2cc2179d9287a78abc49bc99fd5ff832124377b982f32b318bd1b5d67487afd6c28d0595cc93f89dc2c59057bf6d9ea2592371ab7c483f9c0c2ce058e7f9aef6382b972bbb1fad900707630bcab46bacc20301619d616f82332cd8576ac575060f881635233193287ae47d60a5cc871580feabc14650422ca235daa1c6e25f07df00db5e99110d24ee99cd13fdbd1cf132b58547f24ab9d5f37b4cdfd33600d387a24568656aac97544d63ce39341b6a1e258e38ac8a0d1e3dfff9cd675747163ea3d56ad340afa64774418214b02c007462752f82dd251a6008f9ecb05ba122368da0497e21d29d49a0d1e03da13858a85cb775a59d8f880e0c08adeed7dd67301c26f7e7e064f1f2aa81ba02340db0c49282cab80ca2547a327d4cd2aa21988f3f77acba66ae485bad0314eddea78a29af44bd44b14997ffdd4425a46076f0be927bbd3286f3d628c0f67184cf775cb5941e943ce16964f0ab3f9acaa58a06a69e1e7f202e9a81f9b0e1c0420c4744bbdc118c50502eba3fb4bebeabfd7941d8d8cf60c8c6f1599dbd1aa2a1558577afd1ff3178d11dc1f026763a49a7446412ea91ed64b045a2f1a5f3d1ceac222d052a79380501d0ad50a18da50be87c21f10e0ce620142b624d5e51ca39686793b425601bd5e37c2ceb3fd099b6cc72b819ae763ecae32ae338ec9c6dc9999cc43b77390c11296017342502644c778ab5a795397cdd0b9564087433eb586202bb5346f2c5999d23b4bbbbd67a59a2396b44f3cc6c04d37a892483735925d754d36310bb1f3a5f3055a954c4ecb1ecfed7ba621f233d72fd04712b332e74181be53ddd2440f6c546c7796d2b0c37caaea31fcd31b11be46b26aeac453dfac3d89c4a1e57a1734c5f2552ae875547f1e30ad1c072dd2048edf180d00b7d2b4a9fd26549834ba80763fd857d15029c504cbea347fdba50256225c8543140eeb5540667134c2e4ed43378cec9fc5e9644b331b51b5f9d69982a4b91cd02327292fdfc209ccf52366341ce9828ff17ad987046948f83fa2de2086bc5b952ce56d2bda46d9ef5688883b91d5f84cc6fa3ca6d246781df9e76bec1b46498f43b9867e2a9da36cde606ea29d26402429a439f79415f29b0c60648436a29fc3dea2b85a3aeceb9224e4a29eddb921e6f23b5c6fa8b60045a39400cfc79f57a35018ee944a73472d8c5c1cdfb0b107ad9210652804c0264d40c215bb73971fb272d41447b7235a197eabdbe39e6582cf818e81c5b68dbc1ca12082194bbd256c37434ee7c0cb9157eb68e6adfedcec4f5b0dea23a5e65e107b6d29cde8bbe7cef9ad113ad0152c1db399cba8a52d008eefce678bbfaa586926c5de9562c29b0893f6ade886e0dc6a8b0ed98526aff508bad30ecd4d6d5effc981928bddf8bb2caa16d32101f1793c1fbcc4aa4f9913bf49c759b36cf8efe8b5919ce26aac253569a1bc5f7734ee1b9e5a0476b1155f23e00231589d3b8e71deefb324d7731b5cc7b03aa332d66c04586a982742faaf996f3b79d3ebc5d44f7ec32750d26c72f8b39bd518a360299116c63a123319ff8de8179189fec3c6deeb5d156320380436531", 0x1000, 0x8}], 0x11000, &(0x7f0000000200)={[{@inline_xattr}], [{@func={'func', 0x3d, 'KEXEC_INITRAMFS_CHECK'}}]}) [ 335.301687] libceph: connect [d::]:6789 error -101 03:05:34 executing program 4: perf_event_open(&(0x7f0000000040)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x24, 0x0, 0x8}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = inotify_init1(0x0) r1 = inotify_add_watch(r0, &(0x7f00000000c0)='.\x00', 0x20000051) readv(r0, &(0x7f0000000140)=[{&(0x7f00000038c0)=""/180, 0xb4}], 0x1) inotify_rm_watch(r0, r1) ioctl$VIDIOC_TRY_EXT_CTRLS(0xffffffffffffffff, 0xc0205649, &(0x7f0000000300)={0x980000, 0xfffffffa, 0x269, 0xffffffffffffffff, 0x0, &(0x7f00000002c0)={0x990a6a, 0x2, '\x00', @string=&(0x7f0000000280)=0x6}}) r2 = socket$inet(0x2, 0x1, 0x0) bind$inet(r2, &(0x7f0000000040)={0x2, 0x4e23, @multicast2}, 0x10) sendto$inet(r2, 0x0, 0x0, 0x20044011, &(0x7f0000000100)={0x2, 0x4e23, @dev={0xac, 0x14, 0x14, 0xa}}, 0x10) r3 = getpid() sched_setattr(r3, &(0x7f0000000040)={0x38, 0x2, 0x0, 0x0, 0x7}, 0x0) ioctl$DRM_IOCTL_MODE_CREATE_LEASE(0xffffffffffffffff, 0xc01864c6, &(0x7f0000000240)={&(0x7f0000000340)=[0xffff, 0x1447, 0x3, 0x6, 0x8, 0x4, 0x0, 0xffff1e2e], 0x8, 0x80000, 0x0, 0xffffffffffffffff}) perf_event_open(&(0x7f0000000180)={0x3, 0x80, 0x8, 0x8, 0x83, 0x2, 0x0, 0x22, 0x40001, 0xe, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x2, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x9b, 0x4, @perf_config_ext={0x7, 0x2}, 0x0, 0xb6de, 0x1f, 0x2, 0x6, 0x5, 0x400, 0x0, 0x10000, 0x0, 0x2}, r3, 0x3, r4, 0x1) sendto$inet(r2, &(0x7f00000004c0)="9ad45e5164f97bd6730551a36494e85e1f605a520dc8933d6dafdf21ad1ff22933f782a915a84d6f5935b9e81dd999da6fabaa6263201ae07405ebfcf3f965a77343cd6d1c1dc5da0d10b35de227232631bae9c9876be712306bb703ce51ea141ad2c40dc2752cf705b400d64df1b3961f62d41f51bf7c7eb200bf01d3c525bcd53f9ce3085621eb7ea069a4d19824133d5329d7bf0867ca519f479ad4cd25a17b84f540196ea5c6ec9c32f8c93b9eb25769", 0xfffffffffffffedb, 0xc8c0, 0x0, 0x0) [ 335.359518] libceph: mon0 [d::]:6789 connect error [ 335.378578] team0: Device macvtap17 failed to register rx_handler 03:05:34 executing program 0: r0 = openat(0xffffffffffffffff, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x80000a, 0x12, r0, 0x0) preadv(r0, &(0x7f0000000280), 0x18, 0xd9f, 0x0) syz_mount_image$squashfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x0, 0x3, &(0x7f0000000180)=[{&(0x7f0000010000)="6873717307000000911d675f001000000000000001000c00d00002000400000026010000000000000602000000000000b501000000000000ee0100000000000099000000000000003e010000000000008501000000000000a30100000000000078da2baeacca4eccc9492d2aa61d030085492b1f78da2baeacca4eccc9492d2a1e658c324619a30c1803005565c4a273797a6b616c6c657273a30078da636278cbc8c0c0c83051363d1ec8604800e2ff4000a41852805804889990d43003f925486aa4581818a4813433c37fb81aa01003c82c3520d62fc92dd02faeacd2cdcc4d4c4f4d4fcd3331b434373733b634d24fcbcc493580908c48363031400088d604627620e644926705f2fba16ab81850012392cba0f28cc87ad9806233a1721acaa87a9990f4229b0131f700dc0c76a818282442807ee400d2008b6a3509450078da63648000662056016226061686b4cc9c54030f0646a0208463c80255c508a5991838c0127ac9f939296d40614698b6654006cc0cc3470cac708e1132c71800421f11fb1c0078da636080803628ad02a53da0f43228fd084aab3142680046df02a2850100000000000008805cf90100535f0100ab010000000000001d0078da63606063a8482c29293264636080b21860624670312300b5bc09ab108000000000000000000200000024000000bd010000000000000100000000000000dc01", 0x200}, {0x0, 0x0, 0xa88f}, {&(0x7f0000000200)="924bfa504a94789e11a25f285714c97108c69fe04a229bf833772d972d06365c63d5b8ec228dee60fd1f68e7d446eed5a6f45bbe1ce9f4e8405309696c78f067161fc3f8bb8a28d4842dcb6c1aabaa7f451e56f1c5fda142d7622b2a19b202b430df8db27e73cccdda7da20d2bc5dbf50d234d3531a7b751517598717b4902f267029af75ca4ed4c6e0ff862dc55e44b983cb055bed11e94b0f514462885a838ceccfb77074a61e21179272208a159669d6302bfd9b17c9a3accdc970000000000000000f1e1af36eab316c86db2db7d0f6b791b4ccd9587f7840548cdeccdb6f1d3c55638ffbc2a9c575367a8ed4bd817dfb8674ad263a8f11010da597c34be1548d4ebbb92d82158036ba8e6ea2ad20244e137c5b039ac584d9c5d33ba961c2f2b5f4302db37c2b9a9a8328b2490302942fb18ee4106", 0x137, 0x80}], 0x0, &(0x7f0000000080)) [ 335.468797] bond0: team0 is up - this may be due to an out of date ifenslave 03:05:35 executing program 2: r0 = creat(&(0x7f0000000140)='./bus\x00', 0x0) fcntl$setstatus(r0, 0x4, 0x46802) io_setup(0x1, &(0x7f0000000180)=0x0) r2 = creat(&(0x7f0000000100)='./bus\x00', 0x0) r3 = open(&(0x7f0000000780)='./bus\x00', 0x14507e, 0x0) mmap(&(0x7f0000000000/0x600000)=nil, 0x600000, 0x7ffffe, 0x4002011, r3, 0x0) fallocate(r2, 0x0, 0x0, 0x1000f4) r4 = perf_event_open(&(0x7f00000003c0)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1ff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r5 = openat$cgroup_devices(r2, &(0x7f0000000200)='devices.deny\x00', 0x2, 0x0) fcntl$setpipe(r5, 0x407, 0x1) accept$inet(r3, 0x0, 0x0) sendmsg$nl_route_sched(r3, &(0x7f00000001c0)={&(0x7f0000000040)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f0000000240)={0x0}, 0x1, 0x0, 0x0, 0x8085}, 0x8000) mmap(&(0x7f00002c2000/0x3000)=nil, 0x3000, 0x0, 0x12, 0xffffffffffffffff, 0x0) sendmmsg$unix(0xffffffffffffffff, &(0x7f000000c180)=[{&(0x7f00000002c0)=@file={0x0, './bus\x00'}, 0x6e, &(0x7f0000000380)=[{&(0x7f0000000440)}, {0x0}], 0x2, &(0x7f0000000a00)=[@cred={{0x1c, 0x1, 0x2, {0xffffffffffffffff, 0x0, 0xee01}}}, @cred={{0x1c, 0x1, 0x2, {0x0, 0xee01, 0xffffffffffffffff}}}, @cred={{0x1c, 0x1, 0x2, {0xffffffffffffffff, 0x0, 0xffffffffffffffff}}}, @cred={{0x1c, 0x1, 0x2, {0xffffffffffffffff}}}], 0x80, 0x4800}, {&(0x7f0000000b40)=@abs={0x1}, 0x6e, &(0x7f0000000c40)=[{&(0x7f0000000bc0)="e95ef93ccffbc0956a7c1e780e040556304bfa63502253ed10cc491faf4aa687d4ea8a52a845ba4be935336b837ad44017fe96076c0d7287", 0x38}], 0x1, &(0x7f0000000680)=ANY=[@ANYBLOB="2c00000000000000010000000100", @ANYRES32, @ANYRES32, @ANYRES32=r3, @ANYRES32, @ANYRES32, @ANYRES32, @ANYRES32=r0, @ANYBLOB, @ANYRES32, @ANYRES32=r4, @ANYRES32, @ANYRES32, @ANYBLOB="0000000008000000000000000100a474dee9af871748a28286e6a7fd7b5f31e02a7b0e76e3cb05c86a271b11948bed9041d79b8b9bb23c5a58b4e58ad84fac52c25b86", @ANYRES32=r0, @ANYRES32, @ANYBLOB="5bfcaece48ff", @ANYRES32=0x0, @ANYRES32=0x0, @ANYBLOB="000000001c0000000000000001000000010000", @ANYRES32, @ANYRES32, @ANYRES64=r5, @ANYBLOB="000000001c000000000000000100000002000000", @ANYRES32=0x0, @ANYRES32=0xee00, @ANYRES32, @ANYBLOB="0000000020000000000000000100000001000000", @ANYRES32, @ANYRES32, @ANYRES32=r4, @ANYRES32=r3], 0xf0, 0x20000000}, {&(0x7f0000001300)=@abs={0x1, 0x0, 0x4e24}, 0x6e, &(0x7f0000002840)=[{&(0x7f0000001380)="350196c5945719a9bd5683a93536c82bf89e4f60930cc7306ccf851b401ab04e2258", 0x22}, {&(0x7f00000014c0)}, {&(0x7f00000025c0)}, {0x0}], 0x4}, {0x0, 0x0, &(0x7f0000003bc0)=[{&(0x7f0000002940)}, {&(0x7f00000029c0)}, {0x0}], 0x3, &(0x7f0000000440)=ANY=[@ANYBLOB="1c000000000000000100000002000000", @ANYRES32=0x0, @ANYRES32=0x0, @ANYRES32, @ANYBLOB="0000000028000000000000000100000001000000", @ANYRES32, @ANYRES32=r2, @ANYRES32, @ANYRES32, @ANYRES16=r3, @ANYRES32, @ANYRES32, @ANYRES32=r4, @ANYRES32, @ANYRES32=r2, @ANYRES32, @ANYBLOB, @ANYRES32, @ANYRES32, @ANYRES32, @ANYRES32=r4, @ANYRES32, @ANYRES32, @ANYBLOB="a3dcaa8aa294d772781058116fef8b363484587d13487df192868ff04a5ea77b9f4652c9e5f9ff9db90735"], 0xa8, 0x4040}, {0x0, 0x0, 0x0}, {0x0, 0x0, &(0x7f0000008d00)=[{0x0}], 0x1, 0x0, 0x0, 0x24040004}, {&(0x7f000000afc0)=@file={0x0, './bus\x00'}, 0x6e, 0x0, 0x0, &(0x7f000000b340)=[@cred={{0x1c, 0x1, 0x2, {0x0, 0x0, 0xee00}}}], 0x20}], 0x7, 0x277a3c0388688d1f) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, 0xffffffffffffffff, 0x0) io_submit(r1, 0x45, &(0x7f0000000540)=[&(0x7f00000000c0)={0x0, 0x400000000000, 0x0, 0x1, 0x0, r0, &(0x7f0000000000), 0x377140be6b5ef4c7}]) creat(&(0x7f0000000000)='./bus\x00', 0x0) r6 = socket$packet(0x11, 0x2, 0x300) mmap(&(0x7f000022b000/0x1000)=nil, 0x1000, 0x3000000, 0x80010, r6, 0xaae52000) 03:05:35 executing program 0: r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1800003, 0x12, r0, 0x0) preadv(r0, &(0x7f0000000280), 0x18, 0xd9f, 0x0) lstat(&(0x7f0000000380)='./file0\x00', &(0x7f00000003c0)) clone(0x84000180, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) r1 = socket$inet_udp(0x2, 0x2, 0x0) setsockopt$IPT_SO_SET_REPLACE(r1, 0x4000000000000, 0x40, &(0x7f0000000000)=@raw={'raw\x00', 0x8, 0x3, 0x2e8, 0x0, 0x140, 0x140, 0x128, 0x0, 0x250, 0x1d8, 0x1d8, 0x250, 0x1d8, 0x3, 0x0, {[{{@uncond, 0x0, 0xc8, 0x128, 0x0, {}, [@common=@unspec=@cluster={{0x30}, {0x0, 0x1000}}, @inet=@rpfilter={{0x28}}]}, @common=@CLUSTERIP={0x60, 'CLUSTERIP\x00', 0x0, {0x0, @multicast}}}, {{@ip={@rand_addr, @initdev={0xac, 0x1e, 0x0, 0x0}, 0x0, 0x0, 'veth1_vlan\x00', 'rose0\x00'}, 0x0, 0xc8, 0x128, 0x0, {}, [@common=@inet=@tcp={{0x30}}, @inet=@rpfilter={{0x28}}]}, @common=@CLUSTERIP={0x60, 'CLUSTERIP\x00', 0x0, {0x0, @multicast}}}], {{'\x00', 0x0, 0x70, 0x98}, {0x28, '\x00', 0x4}}}}, 0x348) [ 335.573868] libceph: connect [d::]:6789 error -101 [ 335.586819] libceph: mon0 [d::]:6789 connect error [ 335.607603] audit: type=1800 audit(1621479935.056:60): pid=20683 uid=0 auid=4294967295 ses=4294967295 op="collect_data" cause="failed(directio)" comm="syz-executor.2" name="bus" dev="sda1" ino=14402 res=0 [ 335.607756] ceph: No mds server is up or the cluster is laggy [ 335.634118] libceph: connect [d::]:6789 error -101 03:05:35 executing program 0: perf_event_open(&(0x7f000001d000)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) clone(0x0, &(0x7f0000000200)="661cb52aa9ee773a5ab2f1bb2c6557b88b5d81f383b18534ac68a5c7cb5b448cd41b1ee813c9341a9538e2daecbb6648da4b59efa3ab474335148377f2d0e4339a9849e8e023f7aea36bf9e45186a49d55c9a1e7a1745d6b693ba2f81ea850af1fe2", &(0x7f0000000080), &(0x7f0000000100), &(0x7f0000000280)="d4ca4f5eea6159f22f34af56987c943dd9cf0767bd79fa975d440f09e17eb4f0ae8d372a7e014444ba0527ed9df4082f48e1d233cf57919aa9130c3e09a7108cc8434a673e8f2872ac6f14defa903c668494f46da2d74ab224ca1f1f83725f27ff527742080d7f23f62b5722104e8000d3e2d8ad8f78e2d62e895b0b5f7d2bf841a6abc2d4e9c2c0bb4d") r0 = syz_init_net_socket$ax25(0x3, 0x5, 0x0) close(r0) r1 = socket$kcm(0x10, 0x2, 0x0) sendmsg$kcm(r1, &(0x7f0000000600)={0x0, 0x0, &(0x7f0000000000)=[{&(0x7f00000005c0)="2e00000010008188040f80ec59acbc0413a1f84810000000e3bd6efb440e09000e000a000f00000002800000121f", 0x2e}], 0x1}, 0x0) setsockopt$ax25_int(r0, 0x101, 0x5, &(0x7f0000000040)=0x5, 0x4) sendmsg$kcm(r1, &(0x7f00000001c0)={0x0, 0x0, &(0x7f0000000140)=[{&(0x7f00000000c0)="2e00000010008188040f46ecdb4cb9cca7480ef410000000e3bd6efb440009000e000a000d000000ba8000001201", 0x2e}], 0x1}, 0x0) [ 335.664783] libceph: mon0 [d::]:6789 connect error [ 335.672477] xt_cluster: this node mask cannot be higher than the total number of nodes [ 335.679490] audit: type=1800 audit(1621479935.056:61): pid=20683 uid=0 auid=4294967295 ses=4294967295 op="collect_data" cause="failed(directio)" comm="syz-executor.2" name="bus" dev="sda1" ino=14402 res=0 03:05:35 executing program 1: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0x1, 0x803, 0x0) r2 = socket$inet_icmp_raw(0x2, 0x3, 0x1) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000080)={'vlan0\x00', 0x0}) sendto$packet(0xffffffffffffffff, 0x0, 0x0, 0x0, &(0x7f0000000100)={0x11, 0x0, r3, 0x1, 0x0, 0x6, @remote}, 0x14) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000002c0)=0x14) ioctl$sock_ipv6_tunnel_SIOCADDPRL(r1, 0x89f5, &(0x7f0000000000)={'syztnl1\x00', &(0x7f0000000180)={'sit0\x00', r3, 0x2f, 0x1, 0x3f, 0x8, 0x0, @private1, @initdev={0xfe, 0x88, '\x00', 0x0, 0x0}, 0x10, 0x20, 0x7, 0x6}}) sendmsg$nl_route(r0, &(0x7f0000000380)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x8}, 0xc, &(0x7f0000000280)={&(0x7f0000000200)=ANY=[@ANYBLOB="480000006800040026bd7000fcdbdf250a000400100000000c000880050008000000000014000600fe8000f0ff00000000000000000000aa080001000200000008000500", @ANYRES32=r3, @ANYBLOB], 0x48}, 0x1, 0x0, 0x0, 0x20044040}, 0x1) ioctl$ifreq_SIOCGIFINDEX_team(r0, 0x8933, &(0x7f0000000040)={'team0\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000300)=@newlink={0x44, 0x10, 0x401, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @macvtap={{0xc}, {0x4}}}, @IFLA_LINK={0x8, 0x5, r4}, @IFLA_MASTER={0x8, 0xa, r5}]}, 0x44}, 0x1, 0x18cc9}, 0x0) [ 335.877591] bond0: team0 is up - this may be due to an out of date ifenslave [ 335.889211] audit: type=1804 audit(1621479935.336:62): pid=20650 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="open_writers" comm="syz-executor.5" name="/root/syzkaller-testdir916927625/syzkaller.HOUHHZ/452/bus" dev="sda1" ino=14789 res=1 [ 335.926954] bridge0: port 3(team0) entered blocking state [ 335.932773] bridge0: port 3(team0) entered disabled state [ 335.950330] device team0 entered promiscuous mode [ 335.963090] device team_slave_0 entered promiscuous mode 03:05:35 executing program 5: mkdir(&(0x7f0000000140)='./file0\x00', 0x0) clone(0x20002004ffc, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) exit_group(0x0) 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}, &(0x7f0000000400)=0x0) timer_settime(r0, 0x0, &(0x7f0000000180)={{0x0, 0x989680}, {0x0, 0x3938700}}, 0x0) mount(&(0x7f0000000480)=ANY=[@ANYBLOB='[d::]:'], &(0x7f00000000c0)='./file0\x00', &(0x7f0000000040)='ceph\x00', 0x0, 0x0) uselib(&(0x7f0000000200)='./bus\x00') r1 = open(&(0x7f0000000140)='./bus\x00', 0x141042, 0x0) creat(&(0x7f0000000080)='./file0\x00', 0x198) write$UHID_INPUT(r1, &(0x7f0000000580)={0x7f5}, 0x10000005c) open(&(0x7f0000000100)='./bus\x00', 0x4000, 0x190) [ 335.980288] device team_slave_1 entered promiscuous mode [ 335.992824] bridge0: port 3(team0) entered blocking state [ 335.998487] bridge0: port 3(team0) entered forwarding state 03:05:35 executing program 0: 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, 0x0, @perf_config_ext={0x0, 0x3ff}}, 0x0, 0x0, 0xffffffffffffffff, 0x0) r0 = socket$inet6(0xa, 0x2, 0x0) connect$inet6(r0, &(0x7f0000000040)={0xa, 0x0, 0x0, @mcast1, 0x5}, 0x1c) connect$inet6(r0, &(0x7f0000000080)={0xa, 0x0, 0x0, @dev={0xfe, 0x80, '\x00', 0x16}}, 0x1c) sendmmsg(r0, &(0x7f00000002c0), 0x4cc, 0x20007ffc) [ 336.068782] team0: Device macvtap17 failed to register rx_handler [ 336.271123] libceph: connect [d::]:6789 error -101 [ 336.276270] libceph: mon0 [d::]:6789 connect error [ 336.308405] print_req_error: I/O error, dev loop3, sector 0 03:05:35 executing program 4: r0 = getpid() r1 = perf_event_open(&(0x7f0000000180)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x203}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$PERF_EVENT_IOC_REFRESH(r1, 0x2402, 0xe43) perf_event_open(&(0x7f0000000040)={0x4, 0x80, 0xff, 0x3, 0x0, 0x1, 0x0, 0x9, 0x44044, 0x4, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x4, 0x0, @perf_config_ext={0x4, 0x1}, 0x20, 0x80000001, 0x3, 0x2, 0xbc, 0x80000001, 0x1, 0x0, 0x1f, 0x0, 0x7}, r0, 0x5, r1, 0x1) r2 = socket$kcm(0x10, 0x2, 0x0) sendmsg$kcm(r2, &(0x7f00000001c0)={0x0, 0xe00, &(0x7f0000000140)=[{&(0x7f00000000c0)="2e00000010008188040f80ecdb4cb9cca7480ef426000000e3bd6efbc00009000e000a0010000000008000001207", 0x2e}], 0x1}, 0x0) ioctl$SECCOMP_IOCTL_NOTIF_RECV(0xffffffffffffffff, 0xc0502100, &(0x7f0000000200)={0x0, 0x0}) sched_setattr(r3, &(0x7f0000000100)={0x38, 0x5, 0x10000055, 0x8ed3, 0x7fffffff, 0xfffffffffffffff7, 0x3, 0x4, 0x6ac, 0xfffffffd}, 0x0) socket$kcm(0x10, 0x2, 0x0) 03:05:35 executing program 1: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0x1, 0x803, 0x0) r2 = socket$inet_icmp_raw(0x2, 0x3, 0x1) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000080)={'vlan0\x00', 0x0}) sendto$packet(0xffffffffffffffff, 0x0, 0x0, 0x0, &(0x7f0000000100)={0x11, 0x0, r3, 0x1, 0x0, 0x6, @remote}, 0x14) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000002c0)=0x14) ioctl$ifreq_SIOCGIFINDEX_team(r0, 0x8933, &(0x7f0000000040)={'team0\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000300)=@newlink={0x44, 0x10, 0x401, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x0, 0x43100}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @macvtap={{0xc}, {0x4}}}, @IFLA_LINK={0x8, 0x5, r4}, @IFLA_MASTER={0x8, 0xa, r5}]}, 0x44}, 0x1, 0x18cc9}, 0x0) [ 336.322958] ceph: No mds server is up or the cluster is laggy [ 336.330738] libceph: connect [d::]:6789 error -101 [ 336.387443] libceph: mon0 [d::]:6789 connect error 03:05:35 executing program 3: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000), 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(r1, r2, &(0x7f0000000000/0x18000)=nil, &(0x7f0000000040)=[@text64={0x40, 0x0}], 0x1, 0x40, &(0x7f0000000240)=[@cstype0={0x4, 0x8}], 0x1) 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, 0x0, 0xffffffffffffffff, 0x0) ioctl$KVM_RUN(r2, 0xae80, 0x0) r3 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='cgroup.controllers\x00', 0x275a, 0x0) r4 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r4, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r4, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) ioctl$PERF_EVENT_IOC_SET_OUTPUT(r4, 0x2405, r3) ioctl$KVM_IOEVENTFD(0xffffffffffffffff, 0x4040ae79, 0x0) write$binfmt_script(r3, &(0x7f0000000180)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x0, 0x28011, r3, 0x0) [ 336.443932] team0: Device macvtap17 failed to register rx_handler 03:05:35 executing program 0: bpf$PROG_LOAD(0x5, 0x0, 0x0) perf_event_open(0x0, 0x0, 0x0, 0xffffffffffffffff, 0x8) r0 = socket$can_bcm(0x1d, 0x2, 0x2) ioctl$ifreq_SIOCGIFINDEX_vcan(r0, 0x8933, &(0x7f0000000100)={'vcan0\x00', 0x0}) connect$can_bcm(0xffffffffffffffff, &(0x7f0000001ff0)={0x1d, r1}, 0x10) connect$can_bcm(0xffffffffffffffff, &(0x7f0000000080), 0x10) connect$can_bcm(r0, &(0x7f0000000040)={0x1d, r1}, 0x10) r2 = socket(0x10, 0x803, 0x0) setsockopt$sock_int(r2, 0x1, 0x10, 0x0, 0x0) getsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000000800)={0x0}, &(0x7f0000000840)=0xc) perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x6, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 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}, 0x803, 0x0, 0x0, 0x3}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) perf_event_open(&(0x7f0000000780)={0x4, 0x80, 0x4, 0x0, 0xfc, 0x4, 0x0, 0x6, 0x80000, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x2, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2000, 0x5, 0x9, 0x4, 0x5, 0x8, 0x2cc, 0x1, @perf_bp, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x40}, r3, 0x2, 0xffffffffffffffff, 0x0) dup3(r2, r0, 0x0) syz_genetlink_get_family_id$nl80211(&(0x7f00000003c0), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_MULTICAST_TO_UNICAST(0xffffffffffffffff, 0x0, 0x20044800) fcntl$setown(0xffffffffffffffff, 0x8, 0x0) execveat(0xffffffffffffffff, &(0x7f0000000500)='\x00', 0x0, 0x0, 0x0) clone(0x4d202780, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) socket$nl_netfilter(0x10, 0x3, 0xc) fstat(r0, &(0x7f0000000180)) 03:05:36 executing program 2: r0 = socket$inet_tcp(0x2, 0x1, 0x0) r1 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r1, &(0x7f0000000500)={0xa, 0x2, 0x4, @empty}, 0x1c) listen(r1, 0x0) r2 = accept$inet(0xffffffffffffffff, 0x0, 0x0) connect$inet(r0, &(0x7f00000001c0)={0x2, 0x2, @local}, 0x10) setsockopt$ARPT_SO_SET_REPLACE(r2, 0x0, 0x60, 0x0, 0x0) [ 336.523741] batman_adv: batadv0: Interface deactivated: batadv_slave_0 [ 336.551575] batman_adv: batadv0: Removing interface: batadv_slave_0 [ 336.608479] libceph: connect [d::]:6789 error -101 [ 336.613481] libceph: mon0 [d::]:6789 connect error [ 336.632148] ceph: No mds server is up or the cluster is laggy [ 336.642790] libceph: connect [d::]:6789 error -101 [ 336.648943] libceph: mon0 [d::]:6789 connect error [ 336.678386] TCP: request_sock_TCP: Possible SYN flooding on port 2. Sending cookies. Check SNMP counters. [ 336.703420] team0: Device batadv_slave_0 is up. Set it down before adding it as a team port [ 336.713382] TCP: request_sock_TCP: Possible SYN flooding on port 2. Sending cookies. Check SNMP counters. 03:05:36 executing program 2: perf_event_open(&(0x7f0000000040)={0x2, 0x80, 0xb6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0x0, 0xffffffffffffffff, 0x0) r0 = socket$netlink(0x10, 0x3, 0x0) bind$netlink(r0, &(0x7f0000000080)={0x10, 0x0, 0x0, 0x2ffffffff}, 0xc) setsockopt$sock_int(r0, 0x1, 0x8, &(0x7f0000cecffc), 0x4) socket$nl_route(0x10, 0x3, 0x0) r1 = socket$netlink(0x10, 0x3, 0x0) sendmsg$nl_route(r1, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000080)=ANY=[@ANYBLOB="4800000000000000000000000000120000000000", @ANYRES32, @ANYBLOB="0000000000000000280012000900010076657468"], 0x48}}, 0x0) [ 336.823205] team0: Device macvtap17 failed to register rx_handler 03:05:36 executing program 3: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000), 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(r1, r2, &(0x7f0000000000/0x18000)=nil, &(0x7f0000000040)=[@text64={0x40, 0x0}], 0x1, 0x40, &(0x7f0000000240)=[@cstype0={0x4, 0x8}], 0x1) 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, 0x0, 0xffffffffffffffff, 0x0) ioctl$KVM_RUN(r2, 0xae80, 0x0) r3 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='cgroup.controllers\x00', 0x275a, 0x0) r4 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r4, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r4, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) ioctl$PERF_EVENT_IOC_SET_OUTPUT(r4, 0x2405, r3) ioctl$KVM_IOEVENTFD(0xffffffffffffffff, 0x4040ae79, 0x0) write$binfmt_script(r3, &(0x7f0000000180)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x0, 0x28011, r3, 0x0) [ 336.885673] libceph: connect [d::]:6789 error -101 [ 336.891173] libceph: mon0 [d::]:6789 connect error [ 336.918097] ceph: No mds server is up or the cluster is laggy 03:05:36 executing program 2: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000), 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(r1, r2, &(0x7f0000000000/0x18000)=nil, &(0x7f0000000040)=[@text64={0x40, 0x0}], 0x1, 0x40, &(0x7f0000000240)=[@cstype0={0x4, 0x8}], 0x1) 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, 0x0, 0xffffffffffffffff, 0x0) ioctl$KVM_RUN(r2, 0xae80, 0x0) r3 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='cgroup.controllers\x00', 0x275a, 0x0) r4 = syz_open_procfs(0x0, &(0x7f0000000100)='fd/3\x00') preadv(r4, &(0x7f00000017c0), 0x2d6, 0x7a0a, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r4, 0xd000943d, &(0x7f0000000440)={0x5, [], 0x0, "c62b612933d043"}) ioctl$PERF_EVENT_IOC_SET_OUTPUT(r4, 0x2405, r3) ioctl$KVM_IOEVENTFD(0xffffffffffffffff, 0x4040ae79, 0x0) write$binfmt_script(r3, &(0x7f0000000180)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x0, 0x28011, r3, 0x0) [ 336.935600] libceph: connect [d::]:6789 error -101 [ 336.940889] libceph: mon0 [d::]:6789 connect error [ 336.994195] team0: Device batadv_slave_0 is up. Set it down before adding it as a team port 03:05:36 executing program 4: prlimit64(0x0, 0xe, &(0x7f0000000280)={0x9, 0x8d}, 0x0) r0 = getpid() sched_setattr(r0, &(0x7f0000000040)={0x38, 0x2, 0x0, 0x0, 0x9}, 0x0) r1 = socket$inet6(0xa, 0x2, 0x0) recvmmsg(r1, &(0x7f0000001380)=[{{0x0, 0x63, 0x0}}], 0x1, 0x0, 0x0) fchmod(r1, 0x0) pipe(&(0x7f00000002c0)={0xffffffffffffffff, 0xffffffffffffffff}) recvmmsg(0xffffffffffffffff, &(0x7f0000007b00)=[{{&(0x7f0000000400)=@pppol2tpv3in6={0x18, 0x1, {0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, {0xa, 0x0, 0x0, @ipv4={""/10, ""/2, @dev}}}}, 0x80, &(0x7f0000000780)=[{&(0x7f0000000480)=""/149, 0x95}, {&(0x7f0000000540)=""/186, 0xba}, {&(0x7f0000000680)}, {&(0x7f00000006c0)=""/178, 0xb2}], 0x4, &(0x7f00000013c0)=""/4096, 0x1000}, 0x173}, {{&(0x7f00000007c0)=@ethernet, 0x80, &(0x7f0000000ac0)=[{&(0x7f0000000840)=""/34, 0x22}, {&(0x7f0000000880)=""/130, 0x82}, {&(0x7f0000000940)=""/103, 0x67}, {&(0x7f00000009c0)=""/16, 0x10}, {&(0x7f0000000a00)=""/164, 0xa4}], 0x5, &(0x7f0000000b40)=""/33, 0x21}, 0xf7}, {{&(0x7f0000000b80)=@llc={0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, @broadcast}, 0x80, &(0x7f0000000d00)=[{&(0x7f0000000c00)=""/200, 0xc8}], 0x1, &(0x7f0000000d40)=""/145, 0x91}}, {{0x0, 0x0, &(0x7f0000000f40)=[{&(0x7f0000000e00)=""/184, 0xb8}, {&(0x7f0000000ec0)=""/65, 0x41}], 0x2, &(0x7f0000000f80)=""/173, 0xad}, 0x4}, {{&(0x7f0000001040)=@llc={0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, @link_local}, 0x80, &(0x7f0000001300)=[{&(0x7f00000010c0)=""/160, 0xa0}, {&(0x7f00000033c0)=""/4096, 0x1000}, {&(0x7f0000001180)=""/159, 0x9f}, {&(0x7f0000001240)=""/59, 0x3b}, {&(0x7f0000001280)=""/58, 0x3a}, {&(0x7f00000012c0)=""/35, 0x23}], 0x6, &(0x7f00000043c0)=""/212, 0xd4}, 0x97}, {{0x0, 0x0, &(0x7f0000004540)=[{&(0x7f00000044c0)=""/56, 0x38}, {&(0x7f0000004500)=""/62, 0x3e}], 0x2, &(0x7f0000004580)=""/4096, 0x1000}, 0x10001}, {{&(0x7f0000005580)=@generic, 0x80, &(0x7f00000056c0)=[{&(0x7f0000005600)=""/41, 0x29}, {&(0x7f0000005640)=""/80, 0x50}], 0x2, &(0x7f0000005700)=""/216, 0xd8}, 0x10000}, {{&(0x7f0000005800)=@rxrpc=@in4={0x21, 0x0, 0x2, 0x10, {0x2, 0x0, @loopback}}, 0x80, &(0x7f00000079c0)=[{&(0x7f0000005880)=""/135, 0x87}, {&(0x7f0000005940)=""/4096, 0x1000}, {&(0x7f0000006940)=""/4096, 0x1000}, {&(0x7f0000007940)=""/99, 0x63}], 0x4, &(0x7f0000007d40)=""/250, 0xfa}, 0x8}], 0x8, 0x1020, &(0x7f0000007d00)={0x0, 0x989680}) fcntl$setpipe(r3, 0x407, 0x80000000000002) write(r3, &(0x7f0000000340), 0xfffffd82) vmsplice(r2, &(0x7f0000000000)=[{&(0x7f0000000500), 0x3528a9c0}], 0x1, 0x0) sched_setattr(0x0, &(0x7f0000000140)={0x38, 0x2, 0x1, 0x0, 0x8, 0x0, 0x1f}, 0x0) r4 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000100)='cpuacct.usage_user\x00', 0x275a, 0x0) preadv(r4, &(0x7f0000000600)=[{&(0x7f0000000300)=""/158, 0x9e}, {&(0x7f0000000180)=""/108, 0x6c}, {0x0}, {&(0x7f0000000240)=""/1, 0x1}, {&(0x7f00000023c0)=""/4096, 0x1000}], 0x5, 0x1, 0x5) creat(&(0x7f0000000080)='./bus\x00', 0x82) clone(0x103, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) r5 = creat(&(0x7f00000000c0)='./bus\x00', 0x0) ioctl$EXT4_IOC_MOVE_EXT(r3, 0xc028660f, &(0x7f00000003c0)={0x0, r4, 0x9, 0x80, 0xb06d, 0x6c}) fcntl$setstatus(r5, 0x4, 0x6100) write$cgroup_type(r5, &(0x7f0000000200), 0x175d900f) [ 337.114845] libceph: connect [d::]:6789 error -101 [ 337.120205] libceph: mon0 [d::]:6789 connect error [ 337.146856] ceph: No mds server is up or the cluster is laggy [ 337.153711] libceph: connect [d::]:6789 error -101 [ 337.178962] libceph: mon0 [d::]:6789 connect error 03:05:36 executing program 1: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0x1, 0x803, 0x0) r2 = socket$inet_icmp_raw(0x2, 0x3, 0x1) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000080)={'vlan0\x00', 0x0}) sendto$packet(0xffffffffffffffff, 0x0, 0x0, 0x0, &(0x7f0000000100)={0x11, 0x0, r3, 0x1, 0x0, 0x6, @remote}, 0x14) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f00000002c0)=0x14) r5 = openat$nvme_fabrics(0xffffffffffffff9c, &(0x7f0000000200), 0x2c2000, 0x0) setsockopt$EBT_SO_SET_ENTRIES(r5, 0x0, 0x80, &(0x7f0000000180)=@filter={'filter\x00', 0xe, 0x6, 0x1174, [0x0, 0x20000380, 0x200005a4, 0x20001138], 0x0, &(0x7f00000000c0), &(0x7f0000000380)=[{0x0, '\x00', 0x0, 0xfffffffffffffffc, 0x2, [{0x9, 0x20, 0x1c, 'ipvlan0\x00', 'team_slave_0\x00', 'veth0_virt_wifi\x00', 'macsec0\x00', @local, [0xff, 0x0, 0xff, 0x0, 0xff], @broadcast, [0xff, 0xff, 0xff, 0xff], 0x6e, 0xbe, 0x10e, [], [@common=@log={'log\x00', 0x28, {{0x20, "858b577c461139cf38d040b6a91a491a8661b0683d0abf9ac61ae6cc9638", 0x6}}}], @common=@log={'log\x00', 0x28, {{0x8, "ee76154a92cf7ebd2c6b8454a4935dfb15de95f15e327c2f745c52bac4b4", 0x3}}}}, {0x5, 0x40, 0x9, 'vlan0\x00', 'ip_vti0\x00', 'bridge_slave_0\x00', 'bridge0\x00', @random="0fb9aa1a1ade", [0x0, 0xff, 0x0, 0x0, 0xff, 0xff], @link_local={0x1, 0x80, 0xc2, 0x0, 0x0, 0xd}, [0xff, 0x0, 0xff, 0x0, 0x0, 0xff], 0x9e, 0x9e, 0xe6, [@vlan={{'vlan\x00', 0x0, 0x8}, {{0x3, 0x6, 0x8906, 0x2, 0x1}}}], [], @common=@RATEEST={'RATEEST\x00', 0x20, {{'syz1\x00', 0x1, 0x20, {0x2}}}}}]}, {0x0, '\x00', 0x2, 0xfffffffffffffffc, 0x2, [{0x11, 0x42, 0x6558, 'veth0_vlan\x00', 'sit0\x00', 'bond_slave_0\x00', 'hsr0\x00', @link_local, [0xff, 0xff, 0xff, 0x0, 0xff, 0xff], @empty, [0xff, 0xff, 0xff, 0xff, 0xff], 0xde, 0xde, 0x126, [@rateest={{'rateest\x00', 0x0, 0x48}, {{'ip6erspan0\x00', 'wlan1\x00', 0x30, 0x3, 0x1, 0xffff, 0x10000, 0x8001, {0x5e}, {0xc13}}}}], [], @common=@ERROR={'ERROR\x00', 0x20, {"bf9988c7418981b9685d9a0c03454c890f88c6bc89d73cf35209d2bc346f"}}}, {0x11, 0x42, 0x600, 'bond_slave_0\x00', 'bond_slave_1\x00', 'wlan1\x00', 'vlan0\x00', @local, [0xff, 0xff, 0x0, 0x301b697abb27bf4b, 0xff, 0xff], @empty, [0x0, 0x0, 0x0, 0x0, 0xff], 0x97e, 0x9f6, 0xa3e, [@pkttype={{'pkttype\x00', 0x0, 0x8}, {{0x6, 0x1}}}, @among={{'among\x00', 0x0, 0x8b8}, {{@zero, @zero, 0x6, {[0x1, 0x0, 0x9, 0x2, 0x0, 0x80000000, 0x4, 0x7fffffff, 0x0, 0x8, 0x7, 0xb9ed, 0x0, 0x2e21, 0xadc, 0x7f, 0x6, 0x7fffffff, 0x8b97, 0x1, 0x446, 0x80000000, 0x4, 0x62, 0x7ff, 0x5, 0x9, 0x0, 0xffffffff, 0xb87, 0x0, 0x5, 0x1, 0x8, 0x3f, 0x81, 0x589, 0x5, 0x4f, 0xfffff9c1, 0x7f, 0x1, 0x7f, 0x101, 0x3, 0x0, 0xd670, 0x7, 0x2, 0x5, 0x4, 0x2, 0x7, 0x2, 0xb2, 0x4, 0x1, 0xfff, 0x5, 0x1ff, 0x8, 0x7, 0x8, 0x100, 0x80000000, 0x3, 0x5, 0x4, 0x200, 0xc68, 0x3f, 0x80000001, 0x1ff800, 0xff, 0x501b, 0x5, 0x6, 0xffffffff, 0x5, 0x1, 0x7f, 0x800, 0x5, 0x8000, 0x3, 0x7d14, 0x7, 0x0, 0x0, 0x100, 0x0, 0x800, 0x5, 0x6, 0x8, 0x22, 0x3, 0xed5, 0x4, 0x2, 0x0, 0x9, 0x0, 0xe5b9, 0xfffffff8, 0xec3, 0x3, 0x2, 0x2, 0x6, 0x9, 0x7ff, 0x7fffffff, 0x8, 0xff, 0x1, 0x3, 0x81, 0x8, 0x0, 0x8, 0x5, 0x5, 0xaa, 0x6, 0x9, 0x2b, 0x2, 0x6, 0x2, 0x400, 0x7f, 0x0, 0xff82, 0x6, 0x400, 0x8, 0x10001, 0x20000000, 0x1, 0x1, 0xcdd9, 0x534b, 0x20, 0x0, 0x10000, 0x2, 0x1, 0x3, 0x4, 0x1, 0x7, 0x80000000, 0x7, 0x9, 0x6, 0x800, 0x4460, 0xfffffff9, 0xa29, 0x3, 0x0, 0xffffffff, 0x3, 0x0, 0x8, 0xffffffff, 0xa1c, 0x8, 0x4, 0x1f, 0xfbb7, 0x6, 0x8, 0x0, 0x800, 0x0, 0x9, 0x101, 0xfff, 0x5, 0x7ff, 0x3, 0x8001, 0x1, 0x37, 0x1, 0xffff, 0x4, 0x0, 0x1, 0x0, 0x6, 0x0, 0x2, 0x9, 0x5, 0xa2cf, 0x9, 0x4, 0xfffffeff, 0x4f, 0x401, 0xaf7, 0x200, 0x6, 0xc4, 0x80000000, 0xffffffff, 0x18, 0x20, 0x1f, 0x0, 0x10001, 0x3, 0x3f, 0x4, 0x0, 0x428, 0x101, 0x3, 0x52, 0xe4, 0xfffffffd, 0x5, 0x0, 0xfff, 0x3, 0x3f, 0x7, 0x0, 0x0, 0x0, 0x356, 0x1, 0x401, 0x6, 0x6, 0x2, 0x1, 0x40, 0x200, 0x80000000, 0x7f, 0x5, 0x7, 0x3, 0x8, 0x3, 0x100, 0x0, 0x7, 0x800, 0x100, 0x6, 0x1, 0x5000], 0x7, [{[0x2, 0xdfa], @dev={0xac, 0x14, 0x14, 0x14}}, {[0x5f, 0x8929], @multicast1}, {[0x6, 0x6], @remote}, {[0x6, 0x80000001], @initdev={0xac, 0x1e, 0x0, 0x0}}, {[0xffffffc0, 0x2], @local}, {[0xfffffff8, 0x3], @multicast1}, {[0x7, 0x1], @broadcast}]}, {[0x0, 0xffffff60, 0x6, 0x7, 0x800, 0x10001, 0xadf3, 0xffffff28, 0x7, 0x0, 0xa174, 0x8, 0x1f, 0x400, 0x2, 0x4d8, 0x80, 0x7ff, 0x7ff, 0x7, 0xfff, 0xa00000, 0x7, 0xfff, 0x8, 0xfea, 0x1f, 0x41f, 0xfffffffb, 0x2, 0x11a8, 0x7, 0x800, 0x2, 0x0, 0x8, 0x3, 0x4, 0x6, 0x3, 0x3, 0x2, 0x1f, 0x3, 0x0, 0x8001, 0x5a, 0x7fff, 0x20, 0x101, 0x9, 0x0, 0x935, 0xfffffffa, 0x6, 0x8c5, 0x80000001, 0x7, 0xae, 0x8, 0x4f6, 0x2, 0x51e, 0xff, 0x101, 0x6, 0x800, 0x80000000, 0x5, 0xcd5, 0x9, 0x839, 0x1, 0x7ff, 0x3ff, 0x9, 0x1, 0x8c, 0x3, 0xfffffff7, 0xfffffff8, 0x1, 0xfff, 0x2, 0x4, 0x80000001, 0xa224, 0xb6, 0x0, 0x7, 0x401, 0x1, 0x5, 0x1e, 0x20, 0x5, 0x0, 0x116, 0x7f, 0x1, 0xbf, 0x1, 0x3, 0x4, 0x200, 0x2, 0x7, 0x10000, 0x4, 0x40000000, 0x79960000, 0xa790, 0x200, 0x3, 0xffff, 0x8, 0x2, 0xffffffff, 0x20, 0x1, 0x100, 0x731, 0x2, 0x7, 0x1, 0x9, 0x2, 0x669b, 0x7, 0x3, 0x4, 0x1, 0x6, 0x6693d6dd, 0x7ff, 0xeb17, 0xf40, 0x5, 0x7fffffff, 0x0, 0x200, 0x9, 0xfffffffb, 0x1, 0x2, 0x6, 0x7fff, 0xffffffff, 0x9, 0x4, 0x3a2f, 0x7, 0x20, 0x7, 0x7f, 0x3, 0x7, 0xff, 0x9, 0x3, 0x807, 0x7de, 0x1, 0x7, 0x8, 0x7, 0x7f94, 0x101, 0x7, 0x6, 0x372d, 0x5, 0x7, 0x9, 0x9, 0x24000, 0x3, 0x2, 0x3, 0x2, 0x8, 0x101, 0x6, 0x7f, 0x13, 0x5, 0xca43, 0x9, 0x40, 0x6b, 0x5, 0xfff, 0x20, 0x3, 0x9aa7, 0xffff, 0xff, 0x101, 0x5e44, 0x5, 0x1, 0x0, 0x20, 0x8000, 0x8f7, 0xf7e, 0xffff, 0xa4d, 0x20, 0x7, 0xfffffffa, 0x6, 0x9, 0x20, 0x5, 0x7, 0x10000, 0x81, 0x22, 0x7, 0x8, 0x8ca, 0x200, 0x69, 0xffff, 0x3, 0x7, 0x1, 0x81, 0x3, 0x4a9, 0x7, 0x3f, 0x2, 0xffffffff, 0x3d8, 0x2, 0xfffff47c, 0x8, 0x5a, 0x10001, 0x62, 0x80000000, 0x20, 0x101, 0x0, 0xffff649c, 0x8, 0xa7fd, 0x7, 0x5, 0xffffffff, 0x3, 0x1, 0x84f, 0x5, 0x100], 0x6, [{[0x6, 0x180], @initdev={0xac, 0x1e, 0x0, 0x0}}, {[0x81, 0x70a], @initdev={0xac, 0x1e, 0x0, 0x0}}, {[0x8000, 0x2], @empty}, {[0x5, 0x8], @rand_addr=0x64010102}, {[0x101, 0x58c0], @remote}, {[0x7, 0x6], @initdev={0xac, 0x1e, 0x0, 0x0}}]}}}}], [@common=@ERROR={'ERROR\x00', 0x20, {"868bf6b55b758b32b859a55b2c715147220981b270044644f9f3802f0843"}}, @common=@redirect={'redirect\x00', 0x8, {{0xfffffffffffffffe}}}], @common=@RATEEST={'RATEEST\x00', 0x20, {{'syz0\x00', 0x40, 0x1f, {0x7}}}}}]}, {0x0, '\x00', 0x4, 0x0, 0x2, [{0x3, 0x72, 0x2, 'ip_vti0\x00', 'syzkaller0\x00', 'veth1_macvtap\x00', 'veth0\x00', @empty, [0x0, 0xff, 0xff, 0xff], @multicast, [0x0, 0x0, 0xff, 0xff, 0x0, 0xff], 0xce, 0xce, 0x106, [@arp={{'arp\x00', 0x0, 0x38}, {{0x30e, 0x6558, 0x1, @remote, 0xff, @rand_addr=0x64010102, 0xff, @dev={'\xaa\xaa\xaa\xaa\xaa', 0x2a}, [0xff, 0xff, 0xff, 0x0, 0xff, 0xff], @dev={'\xaa\xaa\xaa\xaa\xaa', 0x19}, [0x0, 0xff, 0x0, 0xff, 0x0, 0xff], 0xe1}}}], [], @common=@mark={'mark\x00', 0x10, {{0xffffffe0, 0xffffffffffffffff}}}}, {0x11, 0x8, 0x0, 'geneve0\x00', 'macsec0\x00', 'vlan0\x00', 'bond_slave_1\x00', @broadcast, [0x0, 0xff, 0xff, 0xff, 0xff, 0xff], @multicast, [0xff, 0x0, 0x0, 0xff, 0x0, 0xff], 0x1e6, 0x236, 0x286, [@comment={{'comment\x00', 0x0, 0x100}}, @ipvs={{'ipvs\x00', 0x0, 0x28}, {{@ipv4=@initdev={0xac, 0x1e, 0x0, 0x0}, [0xff, 0x6d074a28766d0fd1], 0x4e23, 0x87, 0x6, 0x4e24, 0x10, 0x1}}}], [@common=@IDLETIMER={'IDLETIMER\x00', 0x28, {{0x7, 'syz0\x00', {0x80000000}}}}], @common=@LED={'LED\x00', 0x28, {{'syz1\x00', 0x0, 0xfd, {0xc7f}}}}}]}]}, 0x11ec) ioctl$ifreq_SIOCGIFINDEX_team(r0, 0x8933, &(0x7f0000000040)={'team0\x00', 0x0}) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000300)=@newlink={0x44, 0x10, 0x401, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @macvtap={{0xc}, {0x4}}}, @IFLA_LINK={0x8, 0x5, r4}, @IFLA_MASTER={0x8, 0xa, r6}]}, 0x44}, 0x1, 0x18cc9}, 0x0) [ 337.565564] libceph: connect [d::]:6789 error -101 [ 337.570771] libceph: mon0 [d::]:6789 connect error [ 337.592656] ceph: No mds server is up or the cluster is laggy [ 337.599264] libceph: connect [d::]:6789 error -101 [ 337.599736] team0: Device macvtap17 failed to register rx_handler [ 337.613420] libceph: mon0 [d::]:6789 connect error [ 337.776631] audit: type=1804 audit(1621479937.216:63): pid=20749 uid=0 auid=4294967295 ses=4294967295 op="invalid_pcr" cause="open_writers" comm="syz-executor.5" name="/root/syzkaller-testdir916927625/syzkaller.HOUHHZ/453/bus" dev="sda1" ino=14796 res=1 [ 337.825938] ------------[ cut here ]------------ [ 337.831030] WARNING: CPU: 1 PID: 986 at net/batman-adv/bat_iv_ogm.c:588 batadv_iv_send_outstanding_bat_ogm_packet+0x611/0x6f0 [ 337.842572] Kernel panic - not syncing: panic_on_warn set ... [ 337.842572] [ 337.850144] CPU: 1 PID: 986 Comm: kworker/u4:4 Not tainted 4.14.232-syzkaller #0 [ 337.857674] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 [ 337.867473] Workqueue: bat_events batadv_iv_send_outstanding_bat_ogm_packet [ 337.874570] Call Trace: [ 337.877154] dump_stack+0x1b2/0x281 [ 337.880800] panic+0x1f9/0x42d [ 337.884001] ? add_taint.cold+0x16/0x16 [ 337.887975] ? batadv_iv_send_outstanding_bat_ogm_packet+0x611/0x6f0 [ 337.894466] ? batadv_iv_send_outstanding_bat_ogm_packet+0x611/0x6f0 [ 337.900948] __warn.cold+0x20/0x44 [ 337.904480] ? ist_end_non_atomic+0x10/0x10 [ 337.908792] ? batadv_iv_send_outstanding_bat_ogm_packet+0x611/0x6f0 [ 337.915282] report_bug+0x208/0x250 [ 337.918902] do_error_trap+0x195/0x2d0 [ 337.922781] ? math_error+0x2d0/0x2d0 [ 337.926575] ? HARDIRQ_verbose+0x10/0x10 [ 337.930631] ? free_object+0xe4/0x240 [ 337.934424] ? trace_hardirqs_off_thunk+0x1a/0x1c [ 337.939263] invalid_op+0x1b/0x40 [ 337.942723] RIP: 0010:batadv_iv_send_outstanding_bat_ogm_packet+0x611/0x6f0 [ 337.949818] RSP: 0018:ffff8880b381fcf0 EFLAGS: 00010297 [ 337.955171] RAX: ffff8880b380c240 RBX: ffff8880b16e3188 RCX: 0000000000000000 [ 337.962433] RDX: 0000000000000000 RSI: 00000000ffffffff RDI: ffff8880b290a530 [ 337.969693] RBP: ffff888045f35240 R08: ffffffff8b991bf0 R09: 0000000000040600 [ 337.976950] R10: ffff8880b380caf0 R11: ffff8880b380c240 R12: ffff8880b290a4c0 [ 337.984209] R13: ffff8880b16e3140 R14: ffff8880a72b8040 R15: ffff8880b16e3228 [ 337.991670] ? rcu_lockdep_current_cpu_online+0xed/0x140 [ 337.997138] process_one_work+0x793/0x14a0 [ 338.001373] ? work_busy+0x320/0x320 [ 338.005078] ? worker_thread+0x158/0xff0 [ 338.009137] worker_thread+0x5cc/0xff0 [ 338.013029] ? rescuer_thread+0xc80/0xc80 [ 338.017169] kthread+0x30d/0x420 [ 338.020527] ? kthread_create_on_node+0xd0/0xd0 [ 338.025186] ret_from_fork+0x24/0x30 [ 338.029695] Kernel Offset: disabled [ 338.033430] Rebooting in 86400 seconds..