c6ccc6dcc6ecc6fcc70cc71cc72cc73cc74cc75cc76cc77cc78cc79cc7acc7bcc7ccc7dcc7ecc7fcc80cc81cc82cc83cc84cc85cc86cc87cc88cc89cc8acc8bcc8ccc8dcc8ecc8fcc90cc91cc92cc93cc94cc95cc96cc97cc98cc99cc9acc9bcc9ccc9dcc9ecc9fcca0cca1cca2cca3cca4cca5cca6cca7cca8cca9ccaaccabccacccadccaeccafccb0ccb1ccb2ccb3ccb4ccb5ccb6ccb7ccb8ccb9ccbaccbbccbcccbdccbeccbfccc0ccc1ccc2ccc3ccc4ccc5ccc6ccc7ccc8ccc9cccacccbcccccccdcccecccfccd0ccd1ccd2ccd3ccd4ccd5ccd6ccd7ccd8ccd9ccdaccdbccdcccddccdeccdfcce0cce1cce2cce3cce4cce5cce6cce7cce8cce9cceaccebccecccedcceeccefccf0ccf1ccf2ccf3ccf4ccf5ccf6ccf7ccf8ccf9ccfaccfbccfcccfdccfeccffcc00cd01cd02cd03cd04cd05cd06cd07cd08cd09cd0acd0bcd0ccd0dcd0ecd0fcd10cd11cd12cd13cd14cd15cd16cd17cd18cd19cd1acd1bcd1ccd1dcd1ecd1fcd20cd21cd22cd23cd24cd25cd26cd27cd28cd29cd2acd2bcd2ccd2dcd2ecd2fcd30cd31cd32cd33cd34cd35cd36cd37cd38cd39cd3acd3bcd3ccd3dcd3ecd3fcd40cd41cd42cd43cd44cd45cd46cd47cd48cd49cd4acd4bcd4ccd4dcd4ecd4fcd50cd51cd52cd53cd54cd55cd56cd57cd58cd59cd5acd5bcd5ccd5dcd5ecd5fcd60cd61cd62cd63cd64cd65cd66cd67cd68cd69cd6acd6bcd6ccd6dcd6ecd6fcd70cd71cd72cd73cd74cd75cd76cd77cd78cd79cd7acd7bcd7ccd7dcd7ecd7fcd80cd81cd82cd83cd84cd85cd86cd87cd88cd89cd8acd8bcd8ccd8dcd8ecd8fcd90cd91cd92cd93cd94cd95cd96cd97cd98cd99cd9acd9bcd9ccd9dcd9ecd9fcda0cda1cda2cda3cda4cda5cda6cda7cda8cda9cdaacdabcdaccdadcdaecdafcdb0cdb1cdb2cdb3cdb4cdb5cdb6cdb7cdb8cdb9cdbacdbbcdbccdbdcdbecdbfcdc0cdc1cdc2cdc3cdc4cdc5cdc6cdc7cdc8cdc9cdcacdcbcdcccdcdcdcecdcfcdd0cdd1cdd2cdd3cdd4cdd5cdd6cdd7cdd8cdd9cddacddbcddccdddcddecddfcde0cde1cde2cde3cde4cde5cde6cde7cde8cde9cdeacdebcdeccdedcdeecdefcdf0cdf1cdf2cdf3cdf4cdf5cdf6cdf7cdf8cdf9cdfacdfbcdfccdfdcdfecdffcd00ce01ce02ce03ce04ce05ce06ce07ce08ce09ce0ace0bce0cce0dce0ece0fce10ce11ce12ce13ce14ce15ce16ce17ce18ce19ce1ace1bce1cce1dce1ece1fce20ce21ce22ce23ce24ce25ce26ce27ce28ce29ce2ace2bce2cce2dce2ece2fce30ce31ce32ce33ce34ce35ce36ce37ce38ce39ce3ace3bce3cce3dce3ece3fce40ce41ce42ce43ce44ce45ce46ce47ce48ce49ce4ace4bce4cce4dce4ece4fce50ce51ce52ce53ce54ce55ce56ce57ce58ce59ce5ace5bce5cce5dce5ece5fce60ce61ce62ce63ce64ce65ce66ce67ce68ce69ce6ace6bce6cce6dce6ece6fce70ce71ce72ce73ce74ce75ce76ce77ce78ce79ce7ace7bce7cce7dce7ece7fce80ce81ce82ce83ce84ce85ce86ce87ce88ce89ce8ace8bce8cce8dce8ece8fce90ce91ce92ce93ce94ce95ce96ce97ce98ce99ce9ace9bce9cce9dce9ece9fcea0cea1cea2cea3cea4cea5cea6cea7cea8cea9ceaaceabceacceadceaeceafceb0ceb1ceb2ceb3ceb4ceb5ceb6ceb7ceb8ceb9cebacebbcebccebdcebecebfcec0cec1cec2cec3cec4cec5cec6cec7cec8cec9cecacecbcecccecdcecececfced0ced1ced2ced3ced4ced5ced6ced7ced8ced9cedacedbcedcceddcedecedfcee0cee1cee2cee3cee4cee5cee6cee7cee8cee9ceeaceebceecceedceeeceefcef0cef1cef2cef3cef4cef5cef6cef7cef8cef9cefacefbcefccefdcefeceffce00cf01cf02cf03cf04cf05cf06cf07cf08cf09cf0acf0bcf0ccf0dcf0ecf0fcf10cf11cf12cf13cf14cf15cf16cf17cf18cf19cf1acf1bcf1ccf1dcf1ecf1fcf20cf21cf22cf23cf24cf25cf26cf27cf28cf29cf2acf2bcf2ccf2dcf2ecf2fcf30cf31cf32cf33cf34cf35cf36cf37cf38cf39cf3acf3bcf3ccf3dcf3ecf3fcf40cf41cf42cf43cf44cf45cf46cf47cf48cf49cf4acf4bcf4ccf4dcf4ecf4fcf50cf51cf52cf53cf54cf55cf56cf57cf58cf59cf5acf5bcf5ccf5dcf5ecf5fcf60cf61cf62cf63cf64cf65cf66cf67cf68cf69cf6acf6bcf6ccf6dcf6ecf6fcf70cf71cf72cf73cf74cf75cf76cf77cf78cf79cf7acf7bcf7ccf7dcf7ecf7fcf80cf81cf82cf83cf84cf85cf86cf87cf88cf89cf8acf8bcf8ccf8dcf8ecf8fcf90cf91cf92cf93cf94cf95cf96cf97cf98cf99cf9acf9bcf9ccf9dcf9ecf9fcfa0cfa1cfa2cfa3cfa4cfa5cfa6cfa7cfa8cfa9cfaacfabcfaccfadcfaecfafcfb0cfb1cfb2cfb3cfb4cfb5cfb6cfb7cfb8cfb9cfbacfbbcfbccfbdcfbecfbfcfc0cfc1cfc2cfc3cfc4cfc5cfc6cfc7cfc8cfc9cfcacfcbcfcccfcdcfcecfcfcfd0cfd1cfd2cfd3cfd4cfd5cfd6cfd7cfd8cfd9cfdacfdbcfdccfddcfdecfdfcfe0cfe1cfe2cfe3cfe4cfe5cfe6cfe7cfe8cfe9cfeacfebcfeccfedcfeecfefcff0cff1cff2cff3cff4cff5cff6cff7cff8cff9cffacffbcffccffdcffecfffcf00d001d002d003d004d005d006d007d008d009d00ad00bd00cd00dd00ed00fd010d011d012d013d014d015d016d017d018d019d01ad01bd01cd01dd01ed01fd020d021d022d023d024d025d026d027d028d029d02ad02bd02cd02dd02ed02fd030d031d032d033d034d035d036d037d038d039d03ad03bd03cd03dd03ed03fd040d041d042d043d044d045d046d047d048d049d04ad04bd04cd04dd04ed04fd050d051d052d053d054d055d056d057d058d059d05ad05bd05cd05dd05ed05fd060d061d062d063d064d065d066d067d068d069d06ad06bd06cd06dd06ed06fd070d071d072d073d074d075d076d077d078d079d07ad07bd07cd07dd07ed07fd080d081d082d083d084d085d086d087d088d089d08ad08bd08cd08dd08ed08fd090d091d092d093d094d095d096d097d098d099d09ad09bd09cd09dd09ed09fd0a0d0a1d0a2d0a3d0a4d0a5d0a6d0a7d0a8d0a9d0aad0abd0acd0add0aed0afd0b0d0b1d0b2d0b3d0b4d0b5d0b6d0b7d0b8d0b9d0bad0bbd0bcd0bdd0bed0bfd0c0d0c1d0c2d0c3d0c4d0c5d0c6d0c7d0c8d0c9d0cad0cbd0ccd0cdd0ced0cfd0d0d0d1d0d2d0d3d0d4d0d5d0d6d0d7d0d8d0d9d0dad0dbd0dcd0ddd0ded0dfd0e0d0e1d0e2d0e3d0e4d0e5d0e6d0e7d0e8d0e9d0ead0ebd0ecd0edd0eed0efd0f0d0f1d0f2d0f3d0f4d0f5d0f6d0f7d0f8d0f9d0fad0fbd0fcd0fdd0fed0ffd000d101d102d103d104d105d106d107d108d109d10ad10bd10cd10dd10ed10fd110d111d112d113d114d115d116d117d118d119d11ad11bd11cd11dd11ed11fd120d121d122d123d124d125d126d127d128d129d12ad12bd12cd12dd12ed12fd130d131d132d133d134d135d136d137d138d139d13ad13bd13cd13dd13ed13fd140d141d142d143d144d145d146d147d148d149d14ad14bd14cd14dd14ed14fd150d151d152d153d154d155d156d157d158d159d15ad15bd15cd15dd15ed15fd160d161d162d163d164d165d166d167d168d169d16ad16bd16cd16dd16ed16fd170d171d172d173d174d175d176d177d178d179d17ad17bd17cd17dd17ed17fd180d181d182d183d184d185d186d187d188d189d18ad18bd18cd18dd18ed18fd190d191d192d193d194d195d196d197d198d199d19ad19bd19cd19dd19ed19fd1a0d1a1d1a2d1a3d1a4d1a5d1a6d1a7d1a8d1a9d1aad1abd1acd1add1aed1afd1b0d1b1d1b2d1b3d1b4d1b5d1b6d1b7d1b8d1b9d1bad1bbd1bcd1bdd1bed1bfd1c0d1c1d1c2d1c3d1c4d1c5d1c6d1c7d1c8d1c9d1cad1cbd1ccd1cdd1ced1cfd1d0d1d1d1d2d1d3d1d4d1d5d1d6d1d7d1d8d1d9d1dad1dbd1dcd1ddd1ded1dfd1e0d1e1d1e2d1e3d1e4d1e5d1e6d1e7d1e8d1e9d1ead1ebd1ecd1edd1eed1efd1f0d1f1d1f2d1f3d1f4d1f5d1f6d1f7d1f8d1f9d1fad1fbd1fcd1fdd1fed1ffd100d201d202d203d204d205d206d207d208d209d20ad20bd20cd20dd20ed20fd210d211d212d213d214d215d216d217d218d219d21ad21bd21cd21dd21ed21fd220d221d222d223d224d225d226d227d228d229d22ad22bd22cd22dd22ed22fd230d231d232d233d234d235d236d237d238d239d23ad23bd23cd23dd23ed23fd240d241d242d243d244d245d246d247d248d249d24ad24bd24cd24dd24ed24fd250d251d252d253d254d255d256d257d258d259d25ad25bd25cd25dd25ed25fd260d261d262d263d264d265d266d267d268d269d26ad26bd26cd26dd26ed26fd270d271d272d273d274d275d276d277d278d279d27ad27bd27cd27dd27ed27fd280d281d282d283d284d285d286d287d288d289d28ad28bd28cd28dd28ed28fd290d291d292d293d294d295d296d297d298d299d29ad29bd29cd29dd29ed29fd2a0d2a1d2a2d2a3d2a4d2a5d2a6d2a7d2a8d2a9d2aad2abd2acd2add2aed2afd2b0d2b1d2b2d2b3d2b4d2b5d2b6d2b7d2b8d2b9d2bad2bbd2bcd2bdd2bed2bfd2c0d2c1d2c2d2c3d2c4d2c5d2c6d2c7d2c8d2c9d2cad2cbd2ccd2cdd2ced2cfd2d0d2d1d2d2d2d3d2d4d2d5d2d6d2d7d2d8d2d9d2dad2dbd2dcd2ddd2ded2dfd2e0d2e1d2e2d2e3d2e4d2e5d2e6d2e7d2e8d2e9d2ead2ebd2ecd2edd2eed2efd2f0d2f1d2f2d2f3d2f4d2f5d2f6d2f7d2f8d2f9d2fad2fbd2fcd2fdd2fed2ffd200d301d302d303d304d305d306d307d308d309d30ad30bd30cd30dd30ed30fd310d311d312d313d314d315d316d317d318d319d31ad31bd31cd31dd31ed31fd320d321d322d323d324d325d326d327d328d329d32ad32bd32cd32dd32ed32fd330d331d332d333d334d335d336d337d338d339d33ad33bd33cd33dd33ed33fd340d341d342d343d344d345d346d347d348d349d34ad34bd34cd34dd34ed34fd350d351d352d353d354d355d356d357d358d359d35ad35bd35cd35dd35ed35fd360d361d362d363d364d365d366d367d368d369d36ad36bd36cd36dd36ed36fd370d371d372d373d374d375d376d377d378d379d37ad37bd37cd37dd37ed37fd380d381d382d383d384d385d386d387d388d389d38ad38bd38cd38dd38ed38fd390d391d392d393d394d395d396d397d398d399d39ad39bd39cd39dd39ed39fd3a0d3a1d3a2d3a3d3a4d3a5d3a6d3a7d3a8d3a9d3aad3abd3acd3add3aed3afd3b0d3b1d3b2d3b3d3b4d3b5d3b6d3b7d3b8d3b9d3bad3bbd3bcd3bdd3bed3bfd3c0d3c1d3c2d3c3d3c4d3c5d3c6d3c7d3c8d3c9d3cad3cbd3ccd3cdd3ced3cfd3d0d3d1d3d2d3d3d3d4d3d5d3d6d3d7d3d8d3d9d3dad3dbd3dcd3ddd3ded3dfd3e0d3e1d3e2d3e3d3e4d3e5d3e6d3e7d3e8d3e9d3ead3ebd3ecd3edd3eed3efd3f0d3f1d3f2d3f3d3f4d3f5d3f6d3f7d3f8d3f9d3fad3fbd3fcd3fdd3fed3ffd300d401d402d403d404d405d406d407d408d409d40ad40bd40cd40dd40ed40fd410d411d412d413d414d415d416d417d418d419d41ad41bd41cd41dd41ed41fd420d421d422d423d424d425d426d427d428d429d42ad42bd42cd42dd42ed42fd430d431d432d433d434d435d436d437d438d439d43ad43bd43cd43dd43ed43fd440d441d442d443d444d445d446d447d448d449d44ad44bd44cd44dd44ed44fd450d451d452d453d454d455d456d457d458d459d45ad45bd45cd45dd45ed45fd460d461d462d463d464d465d466d467d468d469d46ad46bd46cd46dd46ed46fd470d471d472d473d474d475d476d477d478d479d47ad47bd47cd47dd47ed47fd480d481d482d483d484d485d486d487d488d489d48ad48bd48cd48dd48ed48fd490d491d492d493d494d495d496d497d498d499d49ad49bd49cd49dd49ed49fd4a0d4a1d4a2d4a3d4a4d4a5d4a6d4a7d4a8d4a9d4aad4abd4acd4add4aed4afd4b0d4b1d4b2d4b3d4b4d4b5d4b6d4b7d4b8d4b9d4bad4bbd4bcd4bdd4bed4bfd4c0d4c1d4c2d4c3d4c4d4c5d4c6d4c7d4c8d4c9d4cad4cbd4ccd4cdd4ced4cfd4d0d4d1d4d2d4d3d4d4d4d5d4d6d4d7d4d8d4d9d4dad4dbd4dcd4ddd4ded4dfd4e0d4e1d4e2d4e3d4e4d4e5d4e6d4e7d4e8d4e9d4ead4ebd4ecd4edd4eed4efd4f0d4f1d4f2d4f3d4f4d4f5d4f6d4f7d4f8d4f9d4fad4fbd4fcd4fdd4fed4ffd400d501d502d503d504d505d506d507d508d509d50ad50bd50cd50dd50ed50fd510d511d512d513d514d515d516d517d518d519d51ad51bd51cd51dd51ed51fd520d521d522d523d524d525d526d527d528d529d52ad52bd52cd52dd52ed52fd530d531d532d533d534d535d536d537d538d539d53ad53bd53cd53dd53ed53fd540d541d542d543d544d545d546d547d548d549d54ad54bd54cd54dd54ed54fd550d551d552d553d554d555d556d557d558d559d55ad55bd55cd55dd55ed55fd560d561d562d563d564d565d566d567d568d569d56ad56bd56cd56dd56ed56fd570d571d572d573d574d575d576d577d578d579d57ad57bd57cd57dd57ed57fd580d581d582d583d584d585d586d587d588d589d58ad58bd58cd58dd58ed58fd590d591d592d593d594d595d596d597d598d599d59ad59bd59cd59dd59ed59fd5a0d5a1d5a2d5a3d5a4d5a5d5a6d5a7d5a8d5a9d5aad5abd5acd5add5aed5afd5b0d5b1d5b2d5b3d5b4d5b5d5b6d5b7d5b8d5b9d5bad5bbd5bcd5bdd5bed5bfd5c0d5c1d5c2d5c3d5c4d5c5d5c6d5c7d5c8d5c9d5cad5cbd5ccd5cdd5ced5cfd5d0d5d1d5d2d5d3d5d4d5d5d5d6d5d7d5d8d5d9d5dad5dbd5dcd5ddd5ded5dfd5e0d5e1d5e2d5e3d5e4d5e5d5e6d5e7d5e8d5e9d5ead5ebd5ecd5edd5eed5efd5f0d5f1d5f2d5f3d5f4d5f5d5f6d5f7d5f8d5f9d5fad5fbd5fcd5fdd5fed5ffd500d601d602d603d604d605d606d607d608d609d60ad60bd60cd60dd60ed60fd610d611d612d613d614d615d616d617d618d619d61ad61bd61cd61dd61ed61fd620d621d622d623d624d625d626d627d628d629d62ad62bd62cd62dd62ed62fd630d631d632d633d634d635d636d637d638d639d63ad63bd63cd63dd63ed63fd640d641d642d643d644d645d646d647d648d649d64ad64bd64cd64dd64ed64fd650d651d652d653d654d655d656d657d658d659d65ad65bd65cd65dd65ed65fd660d661d662d663d664d665d666d667d668d669d66ad66bd66cd66dd66ed66fd670d671d672d673d674d675d676d677d678d679d67ad67bd67cd67dd67ed67fd680d681d682d683d684d685d686d687d688d689d68ad68bd68cd68dd68ed68fd690d691d692d693d694d695d696d697d698d699d69ad69bd69cd69dd69ed69fd6a0d6a1d6a2d6a3d6a4d6a5d6a6d6a7d6a8d6a9d6aad6abd6acd6add6aed6afd6b0d6b1d6b2d6b3d6b4d6b5d6b6d6b7d6b8d6b9d6bad6bbd6bcd6bdd6bed6bfd6c0d6c1d6c2d6c3d6c4d6c5d6c6d6c7d6c8d6c9d6cad6cbd6ccd6cdd6ced6cfd6d0d6d1d6d2d6d3d6d4d6d5d6d6d6d7d6d8d6d9d6dad6dbd6dcd6ddd6ded6dfd6e0d6e1d6e2d6e3d6e4d6e5d6e6d6e7d6e8d6e9d6ead6ebd6ecd6edd6eed6efd6f0d6f1d6f2d6f3d6f4d6f5d6f6d6f7d6f8d6f9d6fad6fbd6fcd6fdd6fed6ffd600d701d702d703d704d705d706d707d708d709d70ad70bd70cd70dd70ed70fd710d711d712d713d714d715d716d717d718d719d71ad71bd71cd71dd71ed71fd720d721d722d723d724d725d726d727d728d729d72ad72bd72cd72dd72ed72fd730d731d732d733d734d735d736d737d738d739d73ad73bd73cd73dd73ed73fd740d741d742d743d744d745d746d747d748d749d74ad74bd74cd74dd74ed74fd750d751d752d753d754d755d756d757d758d759d75ad75bd75cd75dd75ed75fd760d761d762d763d764d765d766d767d768d769d76ad76bd76cd76dd76ed76fd770d771d772d773d774d775d776d777d778d779d77ad77bd77cd77dd77ed77fd780d781d782d783d784d785d786d787d788d789d78ad78bd78cd78dd78ed78fd790d791d792d793d794d795d796d797d798d799d79ad79bd79cd79dd79ed79fd7a0d7a1d7a2d7a3d7a4d7a5d7a6d7a7d7a8d7a9d7aad7abd7acd7add7aed7afd7b0d7b1d7b2d7b3d7b4d7b5d7b6d7b7d7b8d7b9d7bad7bbd7bcd7bdd7bed7bfd7c0d7c1d7c2d7c3d7c4d7c5d7c6d7c7d7c8d7c9d7cad7cbd7ccd7cdd7ced7cfd7d0d7d1d7d2d7d3d7d4d7d5d7d6d7d7d7d8d7d9d7dad7dbd7dcd7ddd7ded7dfd7e0d7e1d7e2d7e3d7e4d7e5d7e6d7e7d7e8d7e9d7ead7ebd7ecd7edd7eed7efd7f0d7f1d7f2d7f3d7f4d7f5d7f6d7f7d7f8d7f9d7fad7fbd7fcd7fdd7fed7ffd700d801d802d803d804d805d806d807d808d809d80ad80bd80cd80dd80ed80fd810d811d812d813d814d815d816d817d818d819d81ad81bd81cd81dd81ed81fd820d821d822d823d824d825d826d827d828d829d82ad82bd82cd82dd82ed82fd830d831d832d833d834d835d836d837d838d839d83ad83bd83cd83dd83ed83fd840d841d842d843d844d845d846d847d848d849d84ad84bd84cd84dd84ed84fd850d851d852d853d854d855d856d857d858d859d85ad85bd85cd85dd85ed85fd860d861d862d863d864d865d866d867d868d869d86ad86bd86cd86dd86ed86fd870d871d872d873d874d875d876d877d878d879d87ad87bd87cd87dd87ed87fd880d881d882d883d884d885d886d887d888d889d88ad88bd88cd88dd88ed88fd890d891d892d893d894d895d896d897d898d899d89ad89bd89cd89dd89ed89fd8a0d8a1d8a2d8a3d8a4d8a5d8a6d8a7d8a8d8a9d8aad8abd8acd8add8aed8afd8b0d8b1d8b2d8b3d8b4d8b5d8b6d8b7d8b8d8b9d8bad8bbd8bcd8bdd8bed8bfd8c0d8c1d8c2d8c3d8c4d8c5d8c6d8c7d8c8d8c9d8cad8cbd8ccd8cdd8ced8cfd8d0d8d1d8d2d8d3d8d4d8d5d8d6d8d7d8d8d8d9d8dad8dbd8dcd8ddd8ded8dfd8e0d8e1d8e2d8e3d8e4d8e5d8e6d8e7d8e8d8e9d8ead8ebd8ecd8edd8eed8efd8f0d8f1d8f2d8f3d8f4d8f5d8f6d8f7d8f8d8f9d8fad8fbd8fcd8fdd8fed8ffd800d901d902d903d904d905d906d907d908d909d90ad90bd90cd90dd90ed90fd910d911d912d913d914d915d916d917d918d919d91ad91bd91cd91dd91ed91fd920d921d922d923d924d925d926d927d928d929d92ad92bd92cd92dd92ed92fd930d931d932d933d934d935d936d937d938d939d93ad93bd93cd93dd93ed93fd940d941d942d943d944d945d946d947d948d949d94ad94bd94cd94dd94ed94fd950d951d952d953d954d955d956d957d958d959d95ad95bd95cd95dd95ed95fd960d961d962d963d964d965d966d967d968d969d96ad96bd96cd96dd96ed96fd970d971d972d973d974d975d976d977d978d979d97ad97bd97cd97dd97ed97fd980d981d982d983d984d985d986d987d988d989d98ad98bd98cd98dd98ed98fd990d991d992d993d994d995d996d997d998d999d99ad99bd99cd99dd99ed99fd9a0d9a1d9a2d9a3d9a4d9a5d9a6d9a7d9a8d9a9d9aad9abd9acd9add9aed9afd9b0d9b1d9b2d9b3d9b4d9b5d9b6d9b7d9b8d9b9d9bad9bbd9bcd9bdd9bed9bfd9c0d9c1d9c2d9c3d9c4d9c5d9c6d9c7d9c8d9c9d9cad9cbd9ccd9cdd9ced9cfd9d0d9d1d9d2d9d3d9d4d9d5d9d6d9d7d9d8d9d9d9dad9dbd9dcd9ddd9ded9dfd9e0d9e1d9e2d9e3d9e4d9e5d9e6d9e7d9e8d9e9d9ead9ebd9ecd9edd9eed9efd9f0d9f1d9f2d9f3d9f4d9f5d9f6d9f7d9f8d9f9d9fad9fbd9fcd9fdd9fed9ffd900da01da02da03da04da05da06da07da08da09da0ada0bda0cda0dda0eda0fda10da11da12da13da14da15da16da17da18da19da1ada1bda1cda1dda1eda1fda20da21da22da23da24da25da26da27da28da29da2ada2bda2cda2dda2eda2fda30da31da32da33da34da35da36da37da38da39da3ada3bda3cda3dda3eda3fda40da41da42da43da44da45da46da47da48da49da4ada4bda4cda4dda4eda4fda50da51da52da53da54da55da56da57da58da59da5ada5bda5cda5dda5eda5fda60da61da62da63da64da65da66da67da68da69da6ada6bda6cda6dda6eda6fda70da71da72da73da74da75da76da77da78da79da7ada7bda7cda7dda7eda7fda80da81da82da83da84da85da86da87da88da89da8ada8bda8cda8dda8eda8fda90da91da92da93da94da95da96da97da98da99da9ada9bda9cda9dda9eda9fdaa0daa1daa2daa3daa4daa5daa6daa7daa8daa9daaadaabdaacdaaddaaedaafdab0dab1dab2dab3dab4dab5dab6dab7dab8dab9dabadabbdabcdabddabedabfdac0dac1dac2dac3dac4dac5dac6dac7dac8dac9dacadacbdaccdacddacedacfdad0dad1dad2dad3dad4dad5dad6dad7dad8dad9dadadadbdadcdadddadedadfdae0dae1dae2dae3dae4dae5dae6dae7dae8dae9daeadaebdaecdaeddaeedaefdaf0daf1daf2daf3daf4daf5daf6daf7daf8daf9dafadafbdafcdafddafedaffda00db01db02db03db04db05db06db07db08db09db0adb0bdb0cdb0ddb0edb0fdb10db11db12db13db14db15db16db17db18db19db1adb1bdb1cdb1ddb1edb1fdb20db21db22db23db24db25db26db27db28db29db2adb2bdb2cdb2ddb2edb2fdb30db31db32db33db34db35db36db37db38db39db3adb3bdb3cdb3ddb3edb3fdb40db41db42db43db44db45db46db47db48db49db4adb4bdb4cdb4ddb4edb4fdb50db51db52db53db54db55db56db57db58db59db5adb5bdb5cdb5ddb5edb5fdb60db61db62db63db64db65db66db67db68db69db6adb6bdb6cdb6ddb6edb6fdb70db71db72db73db74db75db76db77db78db79db7adb7bdb7cdb7ddb7edb7fdb80db81db82db83db84db85db86db87db88db89db8adb8bdb8cdb8ddb8edb8fdb90db91db92db93db94db95db96db97db98db99db9adb9bdb9cdb9ddb9edb9fdba0dba1dba2dba3dba4dba5dba6dba7dba8dba9dbaadbabdbacdbaddbaedbafdbb0dbb1dbb2dbb3dbb4dbb5dbb6dbb7dbb8dbb9dbbadbbbdbbcdbbddbbedbbfdbc0dbc1dbc2dbc3dbc4dbc5dbc6dbc7dbc8dbc9dbcadbcbdbccdbcddbcedbcfdbd0dbd1dbd2dbd3dbd4dbd5dbd6dbd7dbd8dbd9dbdadbdbdbdcdbdddbdedbdfdbe0dbe1dbe2dbe3dbe4dbe5dbe6dbe7dbe8dbe9dbeadbebdbecdbeddbeedbefdbf0dbf1dbf2dbf3dbf4dbf5dbf6dbf7dbf8dbf9dbfadbfbdbfcdbfddbfedbffdb00dc01dc02dc03dc04dc05dc06dc07dc08dc09dc0adc0bdc0cdc0ddc0edc0fdc10dc11dc12dc13dc14dc15dc16dc17dc18dc19dc1adc1bdc1cdc1ddc1edc1fdc20dc21dc22dc23dc24dc25dc26dc27dc28dc29dc2adc2bdc2cdc2ddc2edc2fdc30dc31dc32dc33dc34dc35dc36dc37dc38dc39dc3adc3bdc3cdc3ddc3edc3fdc40dc41dc42dc43dc44dc45dc46dc47dc48dc49dc4adc4bdc4cdc4ddc4edc4fdc50dc51dc52dc53dc54dc55dc56dc57dc58dc59dc5adc5bdc5cdc5ddc5edc5fdc60dc61dc62dc63dc64dc65dc66dc67dc68dc69dc6adc6bdc6cdc6ddc6edc6fdc70dc71dc72dc73dc74dc75dc76dc77dc78dc79dc7adc7bdc7cdc7ddc7edc7fdc80dc81dc82dc83dc84dc85dc86dc87dc88dc89dc8adc8bdc8cdc8ddc8edc8fdc90dc91dc92dc93dc94dc95dc96dc97dc98dc99dc9adc9bdc9cdc9ddc9edc9fdca0dca1dca2dca3dca4dca5dca6dca7dca8dca9dcaadcabdcacdcaddcaedcafdcb0dcb1dcb2dcb3dcb4dcb5dcb6dcb7dcb8dcb9dcbadcbbdcbcdcbddcbedcbfdcc0dcc1dcc2dcc3dcc4dcc5dcc6dcc7dcc8dcc9dccadccbdcccdccddccedccfdcd0dcd1dcd2dcd3dcd4dcd5dcd6dcd7dcd8dcd9dcdadcdbdcdcdcdddcdedcdfdce0dce1dce2dce3dce4dce5dce6dce7dce8dce9dceadcebdcecdceddceedcefdcf0dcf1dcf2dcf3dcf4dcf5dcf6dcf7dcf8dcf9dcfadcfbdcfcdcfddcfedcffdc00dd01dd02dd03dd04dd05dd06dd07dd08dd09dd0add0bdd0cdd0ddd0edd0fdd10dd11dd12dd13dd14dd15dd16dd17dd18dd19dd1add1bdd1cdd1ddd1edd1fdd20dd21dd22dd23dd24dd25dd26dd27dd28dd29dd2add2bdd2cdd2ddd2edd2fdd30dd31dd32dd33dd34dd35dd36dd37dd38dd39dd3add3bdd3cdd3ddd3edd3fdd40dd41dd42dd43dd44dd45dd46dd47dd48dd49dd4add4bdd4cdd4ddd4edd4fdd50dd51dd52dd53dd54dd55dd56dd57dd58dd59dd5add5bdd5cdd5ddd5edd5fdd60dd61dd62dd63dd64dd65dd66dd67dd68dd69dd6add6bdd6cdd6ddd6edd6fdd70dd71dd72dd73dd74dd75dd76dd77dd78dd79dd7add7bdd7cdd7ddd7edd7fdd80dd81dd82dd83dd84dd85dd86dd87dd88dd89dd8add8bdd8cdd8ddd8edd8fdd90dd91dd92dd93dd94dd95dd96dd97dd98dd99dd9add9bdd9cdd9ddd9edd9fdda0dda1dda2dda3dda4dda5dda6dda7dda8dda9ddaaddabddacddadddaeddafddb0ddb1ddb2ddb3ddb4ddb5ddb6ddb7ddb8ddb9ddbaddbbddbcddbdddbeddbfddc0ddc1ddc2ddc3ddc4ddc5ddc6ddc7ddc8ddc9ddcaddcbddccddcdddceddcfddd0ddd1ddd2ddd3ddd4ddd5ddd6ddd7ddd8ddd9dddadddbdddcdddddddedddfdde0dde1dde2dde3dde4dde5dde6dde7dde8dde9ddeaddebddecddedddeeddefddf0ddf1ddf2ddf3ddf4ddf5ddf6ddf7ddf8ddf9ddfaddfbddfcddfdddfeddffdd00de01de02de03de04de05de06de07de08de09de0ade0bde0cde0dde0ede0fde10de11de12de13de14de15de16de17de18de19de1ade1bde1cde1dde1ede1fde20de21de22de23de24de25de26de27de28de29de2ade2bde2cde2dde2ede2fde30de31de32de33de34de35de36de37de38de39de3ade3bde3cde3dde3ede3fde40de41de42de43de44de45de46de47de48de49de4ade4bde4cde4dde4ede4fde50de51de52de53de54de55de56de57de58de59de5ade5bde5cde5dde5ede5fde60de61de62de63de64de65de66de67de68de69de6ade6bde6cde6dde6ede6fde70de71de72de73de74de75de76de77de78de79de7ade7bde7cde7dde7ede7fde80de81de82de83de84de85de86de87de88de89de8ade8bde8cde8dde8ede8fde90de91de92de93de94de95de96de97de98de99de9ade9bde9cde9dde9ede9fdea0dea1dea2dea3dea4dea5dea6dea7dea8dea9deaadeabdeacdeaddeaedeafdeb0deb1deb2deb3deb4deb5deb6deb7deb8deb9debadebbdebcdebddebedebfdec0dec1dec2dec3dec4dec5dec6dec7dec8dec9decadecbdeccdecddecedecfded0ded1ded2ded3ded4ded5ded6ded7ded8ded9dedadedbdedcdedddedededfdee0dee1dee2dee3dee4dee5dee6dee7dee8dee9deeadeebdeecdeeddeeedeefdef0def1def2def3def4def5def6def7def8def9defadefbdefcdefddefedeffde00df01df02df03df04df05df06df07df08df09df0adf0bdf0cdf0ddf0edf0fdf10df11df12df13df14df15df16df17df18df19df1adf1bdf1cdf1ddf1edf1fdf20df21df22df23df24df25df26df27df28df29df2adf2bdf2cdf2ddf2edf2fdf30df31df32df33df34df35df36df37df38df39df3adf3bdf3cdf3ddf3edf3fdf40df41df42df43df44df45df46df47df48df49df4adf4bdf4cdf4ddf4edf4fdf50df51df52df53df54df55df56df57df58df59df5adf5bdf5cdf5ddf5edf5fdf60df61df62df63df64df65df66df67df68df69df6adf6bdf6cdf6ddf6edf6fdf70df71df72df73df74df75df76df77df78df79df7adf7bdf7cdf7ddf7edf7fdf80df81df82df83df84df85df86df87df88df89df8adf8bdf8cdf8ddf8edf8fdf90df91df92df93df94df95df96df97df98df99df9adf9bdf9cdf9ddf9edf9fdfa0dfa1dfa2dfa3dfa4dfa5dfa6dfa7dfa8dfa9dfaadfabdfacdfaddfaedfafdfb0dfb1dfb2dfb3dfb4dfb5dfb6dfb7dfb8dfb9dfbadfbbdfbcdfbddfbedfbfdfc0dfc1dfc2dfc3dfc4dfc5dfc6dfc7dfc8dfc9dfcadfcbdfccdfcddfcedfcfdfd0dfd1dfd2dfd3dfd4dfd5dfd6dfd7dfd8dfd9dfdadfdbdfdcdfdddfdedfdfdfe0dfe1dfe2dfe3dfe4dfe5dfe6dfe7dfe8dfe9dfeadfebdfecdfeddfeedfefdff0dff1dff2dff3dff4dff5dff6dff7dff8dff9dffadffbdffcdffddffedfffdf00e001e002e003e004e005e006e007e008e009e00ae00be00ce00de00ee00fe010e011e012e013e014e015e016e017e018e019e01ae01be01ce01de01ee01fe020e021e022e023e024e025e026e027e028e029e02ae02be02ce02de02ee02fe030e031e032e033e034e035e036e037e038e039e03ae03be03ce03de03ee03fe040e041e042e043e044e045e046e047e048e049e04ae04be04ce04de04ee04fe050e051e052e053e054e055e056e057e058e059e05ae05be05ce05de05ee05fe060e061e062e063e064e065e066e067e068e069e06ae06be06ce06de06ee06fe070e071e072e073e074e075e076e077e078e079e07ae07be07ce07de07ee07fe080e081e082e083e084e085e086e087e088e089e08ae08be08ce08de08ee08fe090e091e092e093e094e095e096e097e098e099e09ae09be09ce09de09ee09fe0a0e0a1e0a2e0a3e0a4e0a5e0a6e0a7e0a8e0a9e0aae0abe0ace0ade0aee0afe0b0e0b1e0b2e0b3e0b4e0b5e0b6e0b7e0b8e0b9e0bae0bbe0bce0bde0bee0bfe0c0e0c1e0c2e0c3e0c4e0c5e0c6e0c7e0c8e0c9e0cae0cbe0cce0cde0cee0cfe0d0e0d1e0d2e0d3e0d4e0d5e0d6e0d7e0d8e0d9e0dae0dbe0dce0dde0dee0dfe0e0e0e1e0e2e0e3e0e4e0e5e0e6e0e7e0e8e0e9e0eae0ebe0ece0ede0eee0efe0f0e0f1e0f2e0f3e0f4e0f5e0f6e0f7e0f8e0f9e0fae0fbe0fce0fde0fee0ffe000e101e102e103e104e105e106e107e108e109e10ae10be10ce10de10ee10fe110e111e112e113e114e115e116e117e118e119e11ae11be11ce11de11ee11fe120e121e122e123e124e125e126e127e128e129e12ae12be12ce12de12ee12fe130e131e132e133e134e135e136e137e138e139e13ae13be13ce13de13ee13fe140e141e142e143e144e145e146e147e148e149e14ae14be14ce14de14ee14fe150e151e152e153e154e155e156e157e158e159e15ae15be15ce15de15ee15fe160e161e162e163e164e165e166e167e168e169e16ae16be16ce16de16ee16fe170e171e172e173e174e175e176e177e178e179e17ae17be17ce17de17ee17fe180e181e182e183e184e185e186e187e188e189e18ae18be18ce18de18ee18fe190e191e192e193e194e195e196e197e198e199e19ae19be19ce19de19ee19fe1a0e1a1e1a2e1a3e1a4e1a5e1a6e1a7e1a8e1a9e1aae1abe1ace1ade1aee1afe1b0e1b1e1b2e1b3e1b4e1b5e1b6e1b7e1b8e1b9e1bae1bbe1bce1bde1bee1bfe1c0e1c1e1c2e1c3e1c4e1c5e1c6e1c7e1c8e1c9e1cae1cbe1cce1cde1cee1cfe1d0e1d1e1d2e1d3e1d4e1d5e1d6e1d7e1d8e1d9e1dae1dbe1dce1dde1dee1dfe1e0e1e1e1e2e1e3e1e4e1e5e1e6e1e7e1e8e1e9e1eae1ebe1ece1ede1eee1efe1f0e1f1e1f2e1f3e1f4e1f5e1f6e1f7e1f8e1f9e1fae1fbe1fce1fde1fee1ffe100e201e202e203e204e205e206e207e208e209e20ae20be20ce20de20ee20fe210e211e212e213e214e215e216e217e218e219e21ae21be21ce21de21ee21fe220e221e222e223e224e225e226e227e228e229e22ae22be22ce22de22ee22fe230e231e232e233e234e235e236e237e238e239e23ae23be23ce23de23ee23fe240e241e242e243e244e245e246e247e248e249e24ae24be24ce24de24ee24fe250e251e252e253e254e255e256e257e258e259e25ae25be25ce25de25ee25fe260e261e262e263e264e265e266e267e268e269e26ae26be26ce26de26ee26fe270e271e272e273e274e275e276e277e278e279e27ae27be27ce27de27ee27fe280e281e282e283e284e285e286e287e288e289e28ae28be28ce28de28ee28fe290e291e292e293e294e295e296e297e298e299e29ae29be29ce29de29ee29fe2a0e2a1e2a2e2a3e2a4e2a5e2a6e2a7e2a8e2a9e2aae2abe2ace2ade2aee2afe2b0e2b1e2b2e2b3e2b4e2b5e2b6e2b7e2b8e2b9e2bae2bbe2bce2bde2bee2bfe2c0e2c1e2c2e2c3e2c4e2c5e2c6e2c7e2c8e2c9e2cae2cbe2cce2cde2cee2cfe2d0e2d1e2d2e2d3e2d4e2d5e2d6e2d7e2d8e2d9e2dae2dbe2dce2dde2dee2dfe2e0e2e1e2e2e2e3e2e4e2e5e2e6e2e7e2e8e2e9e2eae2ebe2ece2ede2eee2efe2f0e2f1e2f2e2f3e2f4e2f5e2f6e2f7e2f8e2f9e2fae2fbe2fce2fde2fee2ffe200e301e302e303e304e305e306e307e308e309e30ae30be30ce30de30ee30fe310e311e312e313e314e315e316e317e318e319e31ae31be31ce31de31ee31fe320e321e322e323e324e325e326e327e328e329e32ae32be32ce32de32ee32fe330e331e332e333e334e335e336e337e338e339e33ae33be33ce33de33ee33fe340e341e342e343e344e345e346e347e348e349e34ae34be34ce34de34ee34fe350e351e352e353e354e355e356e357e358e359e35ae35be35ce35de35ee35fe360e361e362e363e364e365e366e367e368e369e36ae36be36ce36de36ee36fe370e371e372e373e374e375e376e377e378e379e37ae37be37ce37de37ee37fe380e381e382e383e384e385e386e387e388e389e38ae38be38ce38de38ee38fe390e391e392e393e394e395e396e397e398e399e39ae39be39ce39de39ee39fe3a0e3a1e3a2e3a3e3a4e3a5e3a6e3a7e3a8e3a9e3aae3abe3ace3ade3aee3afe3b0e3b1e3b2e3b3e3b4e3b5e3b6e3b7e3b8e3b9e3bae3bbe3bce3bde3bee3bfe3c0e3c1e3c2e3c3e3c4e3c5e3c6e3c7e3c8e3c9e3cae3cbe3cce3cde3cee3cfe3d0e3d1e3d2e3d3e3d4e3d5e3d6e3d7e3d8e3d9e3dae3dbe3dce3dde3dee3dfe3e0e3e1e3e2e3e3e3e4e3e5e3e6e3e7e3e8e3e9e3eae3ebe3ece3ede3eee3efe3f0e3f1e3f2e3f3e3f4e3f5e3f6e3f7e3f8e3f9e3fae3fbe3fce3fde3fee3ffe300e401e402e403e404e405e406e407e408e409e40ae40be40ce40de40ee40fe410e411e412e413e414e415e416e417e418e419e41ae41be41ce41de41ee41fe420e421e422e423e424e425e426e427e428e429e42ae42be42ce42de42ee42fe430e431e432e433e434e435e436e437e438e439e43ae43be43ce43de43ee43fe440e441e442e443e444e445e446e447e448e449e44ae44be44ce44de44ee44fe450e451e452e453e454e455e456e457e458e459e45ae45be45ce45de45ee45fe460e461e462e463e464e465e466e467e468e469e46ae46be46ce46de46ee46fe470e471e472e473e474e475e476e477e478e479e47ae47be47ce47de47ee47fe480e481e482e483e484e485e486e487e488e489e48ae48be48ce48de48ee48fe490e491e492e493e494e495e496e497e498e499e49ae49be49ce49de49ee49fe4a0e4a1e4a2e4a3e4a4e4a5e4a6e4a7e4a8e4a9e4aae4abe4ace4ade4aee4afe4b0e4b1e4b2e4b3e4b4e4b5e4b6e4b7e4b8e4b9e4bae4bbe4bce4bde4bee4bfe4c0e4c1e4c2e4c3e4c4e4c5e4c6e4c7e4c8e4c9e4cae4cbe4cce4cde4cee4cfe4d0e4d1e4d2e4d3e4d4e4d5e4d6e4d7e4d8e4d9e4dae4dbe4dce4dde4dee4dfe4e0e4e1e4e2e4e3e4e4e4e5e4e6e4e7e4e8e4e9e4eae4ebe4ece4ede4eee4efe4f0e4f1e4f2e4f3e4f4e4f5e4f6e4f7e4f8e4f9e4fae4fbe4fce4fde4fee4ffe400e501e502e503e504e505e506e507e508e509e50ae50be50ce50de50ee50fe510e511e512e513e514e515e516e517e518e519e51ae51be51ce51de51ee51fe520e521e522e523e524e525e526e527e528e529e52ae52be52ce52de52ee52fe530e531e532e533e534e535e536e537e538e539e53ae53be53ce53de53ee53fe540e541e542e543e544e545e546e547e548e549e54ae54be54ce54de54ee54fe550e551e552e553e554e555e556e557e558e559e55ae55be55ce55de55ee55fe560e561e562e563e564e565e566e567e568e569e56ae56be56ce56de56ee56fe570e571e572e573e574e575e576e577e578e579e57ae57be57ce57de57ee57fe580e581e582e583e584e585e586e587e588e589e58ae58be58ce58de58ee58fe590e591e592e593e594e595e596e597e598e599e59ae59be59ce59de59ee59fe5a0e5a1e5a2e5a3e5a4e5a5e5a6e5a7e5a8e5a9e5aae5abe5ace5ade5aee5afe5b0e5b1e5b2e5b3e5b4e5b5e5b6e5b7e5b8e5b9e5bae5bbe5bce5bde5bee5bfe5c0e5c1e5c2e5c3e5c4e5c5e5c6e5c7e5c8e5c9e5cae5cbe5cce5cde5cee5cfe5d0e5d1e5d2e5d3e5d4e5d5e5d6e5d7e5d8e5d9e5dae5dbe5dce5dde5dee5dfe5e0e5e1e5e2e5e3e5e4e5e5e5e6e5e7e5e8e5e9e5eae5ebe5ece5ede5eee5efe5f0e5f1e5f2e5f3e5f4e5f5e5f6e5f7e5f8e5f9e5fae5fbe5fce5fde5fee5ffe500e601e602e603e604e605e606e607e608e609e60ae60be60ce60de60ee60fe610e611e612e613e614e615e616e617e618e619e61ae61be61ce61de61ee61fe620e621e622e623e624e625e626e627e628e629e62ae62be62ce62de62ee62fe630e631e632e633e634e635e636e637e638e639e63ae63be63ce63de63ee63fe640e641e642e643e644e645e646e647e648e649e64ae64be64ce64de64ee64fe650e651e652e653e654e655e656e657e658e659e65ae65be65ce65de65ee65fe660e661e662e663e664e665e666e667e668e669e66ae66be66ce66de66ee66fe670e671e672e673e674e675e676e677e678e679e67ae67be67ce67de67ee67fe680e681e682e683e684e685e686e687e688e689e68ae68be68ce68de68ee68fe690e691e692e693e694e695e696e697e698e699e69ae69be69ce69de69ee69fe6a0e6a1e6a2e6a3e6a4e6a5e6a6e6a7e6a8e6a9e6aae6abe6ace6ade6aee6afe6b0e6b1e6b2e6b3e6b4e6b5e6b6e6b7e6b8e6b9e6bae6bbe6bce6bde6bee6bfe6c0e6c1e6c2e6c3e6c4e6c5e6c6e6c7e6c8e6c9e6cae6cbe6cce6cde6cee6cfe6d0e6d1e6d2e6d3e6d4e6d5e6d6e6d7e6d8e6d9e6dae6dbe6dce6dde6dee6dfe6e0e6e1e6e2e6e3e6e4e6e5e6e6e6e7e6e8e6e9e6eae6ebe6ece6ede6eee6efe6f0e6f1e6f2e6f3e6f4e6f5e6f6e6f7e6f8e6f9e6fae6fbe6fce6fde6fee6ffe600e701e702e703e704e705e706e707e708e709e70ae70be70ce70de70ee70fe710e711e712e713e714e715e716e717e718e719e71ae71be71ce71de71ee71fe720e721e722e723e724e725e726e727e728e729e72ae72be72ce72de72ee72fe730e731e732e733e734e735e736e737e738e739e73ae73be73ce73de73ee73fe740e741e742e743e744e745e746e747e748e749e74ae74be74ce74de74ee74fe750e751e752e753e754e755e756e757e758e759e75ae75be75ce75de75ee75fe760e761e762e763e764e765e766e767e768e769e76ae76be76ce76de76ee76fe770e771e772e773e774e775e776e777e778e779e77ae77be77ce77de77ee77fe780e781e782e783e784e785e786e787e788e789e78ae78be78ce78de78ee78fe790e791e792e793e794e795e796e797e798e799e79ae79be79ce79de79ee79fe7a0e7a1e7a2e7a3e7a4e7a5e7a6e7a7e7a8e7a9e7aae7abe7ace7ade7aee7afe7b0e7b1e7b2e7b3e7b4e7b5e7b6e7b7e7b8e7b9e7bae7bbe7bce7bde7bee7bfe7c0e7c1e7c2e7c3e7c4e7c5e7c6e7c7e7c8e7c9e7cae7cbe7cce7cde7cee7cfe7d0e7d1e7d2e7d3e7d4e7d5e7d6e7d7e7d8e7d9e7dae7dbe7dce7dde7dee7dfe7e0e7e1e7e2e7e3e7e4e7e5e7e6e7e7e7e8e7e9e7eae7ebe7ece7ede7eee7efe7f0e7f1e7f2e7f3e7f4e7f5e7f6e7f7e7f8e7f9e7fae7fbe7fce7fde7fee7ffe700e801e802e803e804e805e806e807e808e809e80ae80be80ce80de80ee80fe810e811e812e813e814e815e816e817e818e819e81ae81be81ce81de81ee81fe820e821e822e823e824e825e826e827e828e829e82ae82be82ce82de82ee82fe830e831e832e833e834e835e836e837e838e839e83ae83be83ce83de83ee83fe840e841e842e843e844e845e846e847e848e849e84ae84be84ce84de84ee84fe850e851e852e853e854e855e856e857e858e859e85ae85be85ce85de85ee85fe860e861e862e863e864e865e866e867e868e869e86ae86be86ce86de86ee86fe870e871e872e873e874e875e876e877e878e879e87ae87be87ce87de87ee87fe880e881e882e883e884e885e886e887e888e889e88ae88be88ce88de88ee88fe890e891e892e893e894e895e896e897e898e899e89ae89be89ce89de89ee89fe8a0e8a1e8a2e8a3e8a4e8a5e8a6e8a7e8a8e8a9e8aae8abe8ace8ade8aee8afe8b0e8b1e8b2e8b3e8b4e8b5e8b6e8b7e8b8e8b9e8bae8bbe8bce8bde8bee8bfe8c0e8c1e8c2e8c3e8c4e8c5e8c6e8c7e8c8e8c9e8cae8cbe8cce8cde8cee8cfe8d0e8d1e8d2e8d3e8d4e8d5e8d6e8d7e8d8e8d9e8dae8dbe8dce8dde8dee8dfe8e0e8e1e8e2e8e3e8e4e8e5e8e6e8e7e8e8e8e9e8eae8ebe8ece8ede8eee8efe8f0e8f1e8f2e8f3e8f4e8f5e8f6e8f7e8f8e8f9e8fae8fbe8fce8fde8fee8ffe800e901e902e903e904e905e906e907e908e909e90ae90be90ce90de90ee90fe910e911e912e913e914e915e916e917e918e919e91ae91be91ce91de91ee91fe920e921e922e923e924e925e926e927e928e929e92ae92be92ce92de92ee92fe930e931e932e933e934e935e936e937e938e939e93ae93be93ce93de93ee93fe940e941e942e943e944e945e946e947e948e949e94ae94be94ce94de94ee94fe950e951e952e953e954e955e956e957e958e959e95ae95be95ce95de95ee95fe960e961e962e963e964e965e966e967e968e969e96ae96be96ce96de96ee96fe970e971e972e973e974e975e976e977e978e979e97ae97be97ce97de97ee97fe980e981e982e983e984e985e986e987e988e989e98ae98be98ce98de98ee98fe990e991e992e993e994e995e996e997e998e999e99ae99be99ce99de99ee99fe9a0e9a1e9a2e9a3e9a4e9a5e9a6e9a7e9a8e9a9e9aae9abe9ace9ade9aee9afe9b0e9b1e9b2e9b3e9b4e9b5e9b6e9b7e9b8e9b9e9bae9bbe9bce9bde9bee9bfe9c0e9c1e9c2e9c3e9c4e9c5e9c6e9c7e9c8e9c9e9cae9cbe9cce9cde9cee9cfe9d0e9d1e9d2e9d3e9d4e9d5e9d6e9d7e9d8e9d9e9dae9dbe9dce9dde9dee9dfe9e0e9e1e9e2e9e3e9e4e9e5e9e6e9e7e9e8e9e9e9eae9ebe9ece9ede9eee9efe9f0e9f1e9f2e9f3e9f4e9f5e9f6e9f7e9f8e9f9e9fae9fbe9fce9fde9fee9ffe900ea01ea02ea03ea04ea05ea06ea07ea08ea09ea0aea0bea0cea0dea0eea0fea10ea11ea12ea13ea14ea15ea16ea17ea18ea19ea1aea1bea1cea1dea1eea1fea20ea21ea22ea23ea24ea25ea26ea27ea28ea29ea2aea2bea2cea2dea2eea2fea30ea31ea32ea33ea34ea35ea36ea37ea38ea39ea3aea3bea3cea3dea3eea3fea40ea41ea42ea43ea44ea45ea46ea47ea48ea49ea4aea4bea4cea4dea4eea4fea50ea51ea52ea53ea54ea55ea56ea57ea58ea59ea5aea5bea5cea5dea5eea5fea60ea61ea62ea63ea64ea65ea66ea67ea68ea69ea6aea6bea6cea6dea6eea6fea70ea71ea72ea73ea74ea75ea76ea77ea78ea79ea7aea7bea7cea7dea7eea7fea80ea81ea82ea83ea84ea85ea86ea87ea88ea89ea8aea8bea8cea8dea8eea8fea90ea91ea92ea93ea94ea95ea96ea97ea98ea99ea9aea9bea9cea9dea9eea9feaa0eaa1eaa2eaa3eaa4eaa5eaa6eaa7eaa8eaa9eaaaeaabeaaceaadeaaeeaafeab0eab1eab2eab3eab4eab5eab6eab7eab8eab9eabaeabbeabceabdeabeeabfeac0eac1eac2eac3eac4eac5eac6eac7eac8eac9eacaeacbeacceacdeaceeacfead0ead1ead2ead3ead4ead5ead6ead7ead8ead9eadaeadbeadceaddeadeeadfeae0eae1eae2eae3eae4eae5eae6eae7eae8eae9eaeaeaebeaeceaedeaeeeaefeaf0eaf1eaf2eaf3eaf4eaf5eaf6eaf7eaf8eaf9eafaeafbeafceafdeafeeaffea00eb01eb02eb03eb04eb05eb06eb07eb08eb09eb0aeb0beb0ceb0deb0eeb0feb10eb11eb12eb13eb14eb15eb16eb17eb18eb19eb1aeb1beb1ceb1deb1eeb1feb20eb21eb22eb23eb24eb25eb26eb27eb28eb29eb2aeb2beb2ceb2deb2eeb2feb30eb31eb32eb33eb34eb35eb36eb37eb38eb39eb3aeb3beb3ceb3deb3eeb3feb40eb41eb42eb43eb44eb45eb46eb47eb48eb49eb4aeb4beb4ceb4deb4eeb4feb50eb51eb52eb53eb54eb55eb56eb57eb58eb59eb5aeb5beb5ceb5deb5eeb5feb60eb61eb62eb63eb64eb65eb66eb67eb68eb69eb6aeb6beb6ceb6deb6eeb6feb70eb71eb72eb73eb74eb75eb76eb77eb78eb79eb7aeb7beb7ceb7deb7eeb7feb80eb81eb82eb83eb84eb85eb86eb87eb88eb89eb8aeb8beb8ceb8deb8eeb8feb90eb91eb92eb93eb94eb95eb96eb97eb98eb99eb9aeb9beb9ceb9deb9eeb9feba0eba1eba2eba3eba4eba5eba6eba7eba8eba9ebaaebabebacebadebaeebafebb0ebb1ebb2ebb3ebb4ebb5ebb6ebb7ebb8ebb9ebbaebbbebbcebbdebbeebbfebc0ebc1ebc2ebc3ebc4ebc5ebc6ebc7ebc8ebc9ebcaebcbebccebcdebceebcfebd0ebd1ebd2ebd3ebd4ebd5ebd6ebd7ebd8ebd9ebdaebdbebdcebddebdeebdfebe0ebe1ebe2ebe3ebe4ebe5ebe6ebe7ebe8ebe9ebeaebebebecebedebeeebefebf0ebf1ebf2ebf3ebf4ebf5ebf6ebf7ebf8ebf9ebfaebfbebfcebfdebfeebffeb00ec01ec02ec03ec04ec05ec06ec07ec08ec09ec0aec0bec0cec0dec0eec0fec10ec11ec12ec13ec14ec15ec16ec17ec18ec19ec1aec1bec1cec1dec1eec1fec20ec21ec22ec23ec24ec25ec26ec27ec28ec29ec2aec2bec2cec2dec2eec2fec30ec31ec32ec33ec34ec35ec36ec37ec38ec39ec3aec3bec3cec3dec3eec3fec40ec41ec42ec43ec44ec45ec46ec47ec48ec49ec4aec4bec4cec4dec4eec4fec50ec51ec52ec53ec54ec55ec56ec57ec58ec59ec5aec5bec5cec5dec5eec5fec60ec61ec62ec63ec64ec65ec66ec67ec68ec69ec6aec6bec6cec6dec6eec6fec70ec71ec72ec73ec74ec75ec76ec77ec78ec79ec7aec7bec7cec7dec7eec7fec80ec81ec82ec83ec84ec85ec86ec87ec88ec89ec8aec8bec8cec8dec8eec8fec90ec91ec92ec93ec94ec95ec96ec97ec98ec99ec9aec9bec9cec9dec9eec9feca0eca1eca2eca3eca4eca5eca6eca7eca8eca9ecaaecabecacecadecaeecafecb0ecb1ecb2ecb3ecb4ecb5ecb6ecb7ecb8ecb9ecbaecbbecbcecbdecbeecbfecc0ecc1ecc2ecc3ecc4ecc5ecc6ecc7ecc8ecc9eccaeccbeccceccdecceeccfecd0ecd1ecd2ecd3ecd4ecd5ecd6ecd7ecd8ecd9ecdaecdbecdcecddecdeecdfece0ece1ece2ece3ece4ece5ece6ece7ece8ece9eceaecebecececedeceeecefecf0ecf1ecf2ecf3ecf4ecf5ecf6ecf7ecf8ecf9ecfaecfbecfcecfdecfeecffec00ed01ed02ed03ed04ed05ed06ed07ed08ed09ed0aed0bed0ced0ded0eed0fed10ed11ed12ed13ed14ed15ed16ed17ed18ed19ed1aed1bed1ced1ded1eed1fed20ed21ed22ed23ed24ed25ed26ed27ed28ed29ed2aed2bed2ced2ded2eed2fed30ed31ed32ed33ed34ed35ed36ed37ed38ed39ed3aed3bed3ced3ded3eed3fed40ed41ed42ed43ed44ed45ed46ed47ed48ed49ed4aed4bed4ced4ded4eed4fed50ed51ed52ed53ed54ed55ed56ed57ed58ed59ed5aed5bed5ced5ded5eed5fed60ed61ed62ed63ed64ed65ed66ed67ed68ed69ed6aed6bed6ced6ded6eed6fed70ed71ed72ed73ed74ed75ed76ed77ed78ed79ed7aed7bed7ced7ded7eed7fed80ed81ed82ed83ed84ed85ed86ed87ed88ed89ed8aed8bed8ced8ded8eed8fed90ed91ed92ed93ed94ed95ed96ed97ed98ed99ed9aed9bed9ced9ded9eed9feda0eda1eda2eda3eda4eda5eda6eda7eda8eda9edaaedabedacedadedaeedafedb0edb1edb2edb3edb4edb5edb6edb7edb8edb9edbaedbbedbcedbdedbeedbfedc0edc1edc2edc3edc4edc5edc6edc7edc8edc9edcaedcbedccedcdedceedcfedd0edd1edd2edd3edd4edd5edd6edd7edd8edd9eddaeddbeddcedddeddeeddfede0ede1ede2ede3ede4ede5ede6ede7ede8ede9edeaedebedecedededeeedefedf0edf1edf2edf3edf4edf5edf6edf7edf8edf9edfaedfbedfcedfdedfeedffed00ee01ee02ee03ee04ee05ee06ee07ee08ee09ee0aee0bee0cee0dee0eee0fee10ee11ee12ee13ee14ee15ee16ee17ee18ee19ee1aee1bee1cee1dee1eee1fee20ee21ee22ee23ee24ee25ee26ee27ee28ee29ee2aee2bee2cee2dee2eee2fee30ee31ee32ee33ee34ee35ee36ee37ee38ee39ee3aee3bee3cee3dee3eee3fee40ee41ee42ee43ee44ee45ee46ee47ee48ee49ee4aee4bee4cee4dee4eee4fee50ee51ee52ee53ee54ee55ee56ee57ee58ee59ee5aee5bee5cee5dee5eee5fee60ee61ee62ee63ee64ee65ee66ee67ee68ee69ee6aee6bee6cee6dee6eee6fee70ee71ee72ee73ee74ee75ee76ee77ee78ee79ee7aee7bee7cee7dee7eee7fee80ee81ee82ee83ee84ee85ee86ee87ee88ee89ee8aee8bee8cee8dee8eee8fee90ee91ee92ee93ee94ee95ee96ee97ee98ee99ee9aee9bee9cee9dee9eee9feea0eea1eea2eea3eea4eea5eea6eea7eea8eea9eeaaeeabeeaceeadeeaeeeafeeb0eeb1eeb2eeb3eeb4eeb5eeb6eeb7eeb8eeb9eebaeebbeebceebdeebeeebfeec0eec1eec2eec3eec4eec5eec6eec7eec8eec9eecaeecbeecceecdeeceeecfeed0eed1eed2eed3eed4eed5eed6eed7eed8eed9eedaeedbeedceeddeedeeedfeee0eee1eee2eee3eee4eee5eee6eee7eee8eee9eeeaeeebeeeceeedeeeeeeefeef0eef1eef2eef3eef4eef5eef6eef7eef8eef9eefaeefbeefceefdeefeeeffee00ef01ef02ef03ef04ef05ef06ef07ef08ef09ef0aef0bef0cef0def0eef0fef10ef11ef12ef13ef14ef15ef16ef17ef18ef19ef1aef1bef1cef1def1eef1fef20ef21ef22ef23ef24ef25ef26ef27ef28ef29ef2aef2bef2cef2def2eef2fef30ef31ef32ef33ef34ef35ef36ef37ef38ef39ef3aef3bef3cef3def3eef3fef40ef41ef42ef43ef44ef45ef46ef47ef48ef49ef4aef4bef4cef4def4eef4fef50ef51ef52ef53ef54ef55ef56ef57ef58ef59ef5aef5bef5cef5def5eef5fef60ef61ef62ef63ef64ef65ef66ef67ef68ef69ef6aef6bef6cef6def6eef6fef70ef71ef72ef73ef74ef75ef76ef77ef78ef79ef7aef7bef7cef7def7eef7fef80ef81ef82ef83ef84ef85ef86ef87ef88ef89ef8aef8bef8cef8def8eef8fef90ef91ef92ef93ef94ef95ef96ef97ef98ef99ef9aef9bef9cef9def9eef9fefa0efa1efa2efa3efa4efa5efa6efa7efa8efa9efaaefabefacefadefaeefafefb0efb1efb2efb3efb4efb5efb6efb7efb8efb9efbaefbbefbcefbdefbeefbfefc0efc1efc2efc3efc4efc5efc6efc7efc8efc9efcaefcbefccefcdefceefcfefd0efd1efd2efd3efd4efd5efd6efd7efd8efd9efdaefdbefdcefddefdeefdfefe0efe1efe2efe3efe4efe5efe6efe7efe8efe9efeaefebefecefedefeeefefeff0eff1eff2eff3eff4eff5eff6eff7eff8eff9effaeffbeffceffdeffeefffef00f001f002f003f004f005f006f007f008f009f00af00bf00cf00df00ef00ff010f011f012f013f014f015f016f017f018f019f01af01bf01cf01df01ef01ff020f021f022f023f024f025f026f027f028f029f02af02bf02cf02df02ef02ff030f031f032f033f034f035f036f037f038f039f03af03bf03cf03df03ef03ff040f041f042f043f044f045f046f047f048f049f04af04bf04cf04df04ef04ff050f051f052f053f054f055f056f057f058f059f05af05bf05cf05df05ef05ff060f061f062f063f064f065f066f067f068f069f06af06bf06cf06df06ef06ff070f071f072f073f074f075f076f077f078f079f07af07bf07cf07df07ef07ff080f081f082f083f084f085f086f087f088f089f08af08bf08cf08df08ef08ff090f091f092f093f094f095f096f097f098f099f09af09bf09cf09df09ef09ff0a0f0a1f0a2f0a3f0a4f0a5f0a6f0a7f0a8f0a9f0aaf0abf0acf0adf0aef0aff0b0f0b1f0b2f0b3f0b4f0b5f0b6f0b7f0b8f0b9f0baf0bbf0bcf0bdf0bef0bff0c0f0c1f0c2f0c3f0c4f0c5f0c6f0c7f0c8f0c9f0caf0cbf0ccf0cdf0cef0cff0d0f0d1f0d2f0d3f0d4f0d5f0d6f0d7f0d8f0d9f0daf0dbf0dcf0ddf0def0dff0e0f0e1f0e2f0e3f0e4f0e5f0e6f0e7f0e8f0e9f0eaf0ebf0ecf0edf0eef0eff0f0f0f1f0f2f0f3f0f4f0f5f0f6f0f7f0f8f0f9f0faf0fbf0fcf0fdf0fef0fff000f101f102f103f104f105f106f107f108f109f10af10bf10cf10df10ef10ff110f111f112f113f114f115f116f117f118f119f11af11bf11cf11df11ef11ff120f121f122f123f124f125f126f127f128f129f12af12bf12cf12df12ef12ff130f131f132f133f134f135f136f137f138f139f13af13bf13cf13df13ef13ff140f141f142f143f144f145f146f147f148f149f14af14bf14cf14df14ef14ff150f151f152f153f154f155f156f157f158f159f15af15bf15cf15df15ef15ff160f161f162f163f164f165f166f167f168f169f16af16bf16cf16df16ef16ff170f171f172f173f174f175f176f177f178f179f17af17bf17cf17df17ef17ff180f181f182f183f184f185f186f187f188f189f18af18bf18cf18df18ef18ff190f191f192f193f194f195f196f197f198f199f19af19bf19cf19df19ef19ff1a0f1a1f1a2f1a3f1a4f1a5f1a6f1a7f1a8f1a9f1aaf1abf1acf1adf1aef1aff1b0f1b1f1b2f1b3f1b4f1b5f1b6f1b7f1b8f1b9f1baf1bbf1bcf1bdf1bef1bff1c0f1c1f1c2f1c3f1c4f1c5f1c6f1c7f1c8f1c9f1caf1cbf1ccf1cdf1cef1cff1d0f1d1f1d2f1d3f1d4f1d5f1d6f1d7f1d8f1d9f1daf1dbf1dcf1ddf1def1dff1e0f1e1f1e2f1e3f1e4f1e5f1e6f1e7f1e8f1e9f1eaf1ebf1ecf1edf1eef1eff1f0f1f1f1f2f1f3f1f4f1f5f1f6f1f7f1f8f1f9f1faf1fbf1fcf1fdf1fef1fff100f201f202f203f204f205f206f207f208f209f20af20bf20cf20df20ef20ff210f211f212f213f214f215f216f217f218f219f21af21bf21cf21df21ef21ff220f221f222f223f224f225f226f227f228f229f22af22bf22cf22df22ef22ff230f231f232f233f234f235f236f237f238f239f23af23bf23cf23df23ef23ff240f241f242f243f244f245f246f247f248f249f24af24bf24cf24df24ef24ff250f251f252f253f254f255f256f257f258f259f25af25bf25cf25df25ef25ff260f261f262f263f264f265f266f267f268f269f26af26bf26cf26df26ef26ff270f271f272f273f274f275f276f277f278f279f27af27bf27cf27df27ef27ff280f281f282f283f284f285f286f287f288f289f28af28bf28cf28df28ef28ff290f291f292f293f294f295f296f297f298f299f29af29bf29cf29df29ef29ff2a0f2a1f2a2f2a3f2a4f2a5f2a6f2a7f2a8f2a9f2aaf2abf2acf2adf2aef2aff2b0f2b1f2b2f2b3f2b4f2b5f2b6f2b7f2b8f2b9f2baf2bbf2bcf2bdf2bef2bff2c0f2c1f2c2f2c3f2c4f2c5f2c6f2c7f2c8f2c9f2caf2cbf2ccf2cdf2cef2cff2d0f2d1f2d2f2d3f2d4f2d5f2d6f2d7f2d8f2d9f2daf2dbf2dcf2ddf2def2dff2e0f2e1f2e2f2e3f2e4f2e5f2e6f2e7f2e8f2e9f2eaf2ebf2ecf2edf2eef2eff2f0f2f1f2f2f2f3f2f4f2f5f2f6f2f7f2f8f2f9f2faf2fbf2fcf2fdf2fef2fff200f301f302f303f304f305f306f307f308f309f30af30bf30cf30df30ef30ff310f311f312f313f314f315f316f317f318f319f31af31bf31cf31df31ef31ff320f321f322f323f324f325f326f327f328f329f32af32bf32cf32df32ef32ff330f331f332f333f334f335f336f337f338f339f33af33bf33cf33df33ef33ff340f341f342f343f344f345f346f347f348f349f34af34bf34cf34df34ef34ff350f351f352f353f354f355f356f357f358f359f35af35bf35cf35df35ef35ff360f361f362f363f364f365f366f367f368f369f36af36bf36cf36df36ef36ff370f371f372f373f374f375f376f377f378f379f37af37bf37cf37df37ef37ff380f381f382f383f384f385f386f387f388f389f38af38bf38cf38df38ef38ff390f391f392f393f394f395f396f397f398f399f39af39bf39cf39df39ef39ff3a0f3a1f3a2f3a3f3a4f3a5f3a6f3a7f3a8f3a9f3aaf3abf3acf3adf3aef3aff3b0f3b1f3b2f3b3f3b4f3b5f3b6f3b7f3b8f3b9f3baf3bbf3bcf3bdf3bef3bff3c0f3c1f3c2f3c3f3c4f3c5f3c6f3c7f3c8f3c9f3caf3cbf3ccf3cdf3cef3cff3d0f3d1f3d2f3d3f3d4f3d5f3d6f3d7f3d8f3d9f3daf3dbf3dcf3ddf3def3dff3e0f3e1f3e2f3e3f3e4f3e5f3e6f3e7f3e8f3e9f3eaf3ebf3ecf3edf3eef3eff3f0f3f1f3f2f3f3f3f4f3f5f3f6f3f7f3f8f3f9f3faf3fbf3fcf3fdf3fef3fff300f401f402f403f404f405f406f407f408f409f40af40bf40cf40df40ef40ff410f411f412f413f414f415f416f417f418f419f41af41bf41cf41df41ef41ff420f421f422f423f424f425f426f427f428f429f42af42bf42cf42df42ef42ff430f431f432f433f434f435f436f437f438f439f43af43bf43cf43df43ef43ff440f441f442f443f444f445f446f447f448f449f44af44bf44cf44df44ef44ff450f451f452f453f454f455f456f457f458f459f45af45bf45cf45df45ef45ff460f461f462f463f464f465f466f467f468f469f46af46bf46cf46df46ef46ff470f471f472f473f474f475f476f477f478f479f47af47bf47cf47df47ef47ff480f481f482f483f484f485f486f487f488f489f48af48bf48cf48df48ef48ff490f491f492f493f494f495f496f497f498f499f49af49bf49cf49df49ef49ff4a0f4a1f4a2f4a3f4a4f4a5f4a6f4a7f4a8f4a9f4aaf4abf4acf4adf4aef4aff4b0f4b1f4b2f4b3f4b4f4b5f4b6f4b7f4b8f4b9f4baf4bbf4bcf4bdf4bef4bff4c0f4c1f4c2f4c3f4c4f4c5f4c6f4c7f4c8f4c9f4caf4cbf4ccf4cdf4cef4cff4d0f4d1f4d2f4d3f4d4f4d5f4d6f4d7f4d8f4d9f4daf4dbf4dcf4ddf4def4dff4e0f4e1f4e2f4e3f4e4f4e5f4e6f4e7f4e8f4e9f4eaf4ebf4ecf4edf4eef4eff4f0f4f1f4f2f4f3f4f4f4f5f4f6f4f7f4f8f4f9f4faf4fbf4fcf4fdf4fef4fff400f501f502f503f504f505f506f507f508f509f50af50bf50cf50df50ef50ff510f511f512f513f514f515f516f517f518f519f51af51bf51cf51df51ef51ff520f521f522f523f524f525f526f527f528f529f52af52bf52cf52df52ef52ff530f531f532f533f534f535f536f537f538f539f53af53bf53cf53df53ef53ff540f541f542f543f544f545f546f547f548f549f54af54bf54cf54df54ef54ff550f551f552f553f554f555f556f557f558f559f55af55bf55cf55df55ef55ff560f561f562f563f564f565f566f567f568f569f56af56bf56cf56df56ef56ff570f571f572f573f574f575f576f577f578f579f57af57bf57cf57df57ef57ff580f581f582f583f584f585f586f587f588f589f58af58bf58cf58df58ef58ff590f591f592f593f594f595f596f597f598f599f59af59bf59cf59df59ef59ff5a0f5a1f5a2f5a3f5a4f5a5f5a6f5a7f5a8f5a9f5aaf5abf5acf5adf5aef5aff5b0f5b1f5b2f5b3f5b4f5b5f5b6f5b7f5b8f5b9f5baf5bbf5bcf5bdf5bef5bff5c0f5c1f5c2f5c3f5c4f5c5f5c6f5c7f5c8f5c9f5caf5cbf5ccf5cdf5cef5cff5d0f5d1f5d2f5d3f5d4f5d5f5d6f5d7f5d8f5d9f5daf5dbf5dcf5ddf5def5dff5e0f5e1f5e2f5e3f5e4f5e5f5e6f5e7f5e8f5e9f5eaf5ebf5ecf5edf5eef5eff5f0f5f1f5f2f5f3f5f4f5f5f5f6f5f7f5f8f5f9f5faf5fbf5fcf5fdf5fef5fff500f601f602f603f604f605f606f607f608f609f60af60bf60cf60df60ef60ff610f611f612f613f614f615f616f617f618f619f61af61bf61cf61df61ef61ff620f621f622f623f624f625f626f627f628f629f62af62bf62cf62df62ef62ff630f631f632f633f634f635f636f637f638f639f63af63bf63cf63df63ef63ff640f641f642f643f644f645f646f647f648f649f64af64bf64cf64df64ef64ff650f651f652f653f654f655f656f657f658f659f65af65bf65cf65df65ef65ff660f661f662f663f664f665f666f667f668f669f66af66bf66cf66df66ef66ff670f671f672f673f674f675f676f677f678f679f67af67bf67cf67df67ef67ff680f681f682f683f684f685f686f687f688f689f68af68bf68cf68df68ef68ff690f691f692f693f694f695f696f697f698f699f69af69bf69cf69df69ef69ff6a0f6a1f6a2f6a3f6a4f6a5f6a6f6a7f6a8f6a9f6aaf6abf6acf6adf6aef6aff6b0f6b1f6b2f6b3f6b4f6b5f6b6f6b7f6b8f6b9f6baf6bbf6bcf6bdf6bef6bff6c0f6c1f6c2f6c3f6c4f6c5f6c6f6c7f6c8f6c9f6caf6cbf6ccf6cdf6cef6cff6d0f6d1f6d2f6d3f6d4f6d5f6d6f6d7f6d8f6d9f6daf6dbf6dcf6ddf6def6dff6e0f6e1f6e2f6e3f6e4f6e5f6e6f6e7f6e8f6e9f6eaf6ebf6ecf6edf6eef6eff6f0f6f1f6f2f6f3f6f4f6f5f6f6f6f7f6f8f6f9f6faf6fbf6fcf6fdf6fef6fff600f701f702f703f704f705f706f707f708f709f70af70bf70cf70df70ef70ff710f711f712f713f714f715f716f717f718f719f71af71bf71cf71df71ef71ff720f721f722f723f724f725f726f727f728f729f72af72bf72cf72df72ef72ff730f731f732f733f734f735f736f737f738f739f73af73bf73cf73df73ef73ff740f741f742f743f744f745f746f747f748f749f74af74bf74cf74df74ef74ff750f751f752f753f754f755f756f757f758f759f75af75bf75cf75df75ef75ff760f761f762f763f764f765f766f767f768f769f76af76bf76cf76df76ef76ff770f771f772f773f774f775f776f777f778f779f77af77bf77cf77df77ef77ff780f781f782f783f784f785f786f787f788f789f78af78bf78cf78df78ef78ff790f791f792f793f794f795f796f797f798f799f79af79bf79cf79df79ef79ff7a0f7a1f7a2f7a3f7a4f7a5f7a6f7a7f7a8f7a9f7aaf7abf7acf7adf7aef7aff7b0f7b1f7b2f7b3f7b4f7b5f7b6f7b7f7b8f7b9f7baf7bbf7bcf7bdf7bef7bff7c0f7c1f7c2f7c3f7c4f7c5f7c6f7c7f7c8f7c9f7caf7cbf7ccf7cdf7cef7cff7d0f7d1f7d2f7d3f7d4f7d5f7d6f7d7f7d8f7d9f7daf7dbf7dcf7ddf7def7dff7e0f7e1f7e2f7e3f7e4f7e5f7e6f7e7f7e8f7e9f7eaf7ebf7ecf7edf7eef7eff7f0f7f1f7f2f7f3f7f4f7f5f7f6f7f7f7f8f7f9f7faf7fbf7fcf7fdf7fef7fff700f801f802f803f804f805f806f807f808f809f80af80bf80cf80df80ef80ff810f811f812f813f814f815f816f817f818f819f81af81bf81cf81df81ef81ff820f821f822f823f824f825f826f827f828f829f82af82bf82cf82df82ef82ff830f831f832f833f834f835f836f837f838f839f83af83bf83cf83df83ef83ff840f841f842f843f844f845f846f847f848f849f84af84bf84cf84df84ef84ff850f851f852f853f854f855f856f857f858f859f85af85bf85cf85df85ef85ff860f861f862f863f864f865f866f867f868f869f86af86bf86cf86df86ef86ff870f871f872f873f874f875f876f877f878f879f87af87bf87cf87df87ef87ff880f881f882f883f884f885f886f887f888f889f88af88bf88cf88df88ef88ff890f891f892f893f894f895f896f897f898f899f89af89bf89cf89df89ef89ff8a0f8a1f8a2f8a3f8a4f8a5f8a6f8a7f8a8f8a9f8aaf8abf8acf8adf8aef8aff8b0f8b1f8b2f8b3f8b4f8b5f8b6f8b7f8b8f8b9f8baf8bbf8bcf8bdf8bef8bff8c0f8c1f8c2f8c3f8c4f8c5f8c6f8c7f8c8f8c9f8caf8cbf8ccf8cdf8cef8cff8d0f8d1f8d2f8d3f8d4f8d5f8d6f8d7f8d8f8d9f8daf8dbf8dcf8ddf8def8dff8e0f8e1f8e2f8e3f8e4f8e5f8e6f8e7f8e8f8e9f8eaf8ebf8ecf8edf8eef8eff8f0f8f1f8f2f8f3f8f4f8f5f8f6f8f7f8f8f8f9f8faf8fbf8fcf8fdf8fef8fff800f901f902f903f904f905f906f907f908f909f90af90bf90cf90df90ef90ff910f911f912f913f914f915f916f917f918f919f91af91bf91cf91df91ef91ff920f921f922f923f924f925f926f927f928f929f92af92bf92cf92df92ef92ff930f931f932f933f934f935f936f937f938f939f93af93bf93cf93df93ef93ff940f941f942f943f944f945f946f947f948f949f94af94bf94cf94df94ef94ff950f951f952f953f954f955f956f957f958f959f95af95bf95cf95df95ef95ff960f961f962f963f964f965f966f967f968f969f96af96bf96cf96df96ef96ff970f971f972f973f974f975f976f977f978f979f97af97bf97cf97df97ef97ff980f981f982f983f984f985f986f987f988f989f98af98bf98cf98df98ef98ff990f991f992f993f994f995f996f997f998f999f99af99bf99cf99df99ef99ff9a0f9a1f9a2f9a3f9a4f9a5f9a6f9a7f9a8f9a9f9aaf9abf9acf9adf9aef9aff9b0f9b1f9b2f9b3f9b4f9b5f9b6f9b7f9b8f9b9f9baf9bbf9bcf9bdf9bef9bff9c0f9c1f9c2f9c3f9c4f9c5f9c6f9c7f9c8f9c9f9caf9cbf9ccf9cdf9cef9cff9d0f9d1f9d2f9d3f9d4f9d5f9d6f9d7f9d8f9d9f9daf9dbf9dcf9ddf9def9dff9e0f9e1f9e2f9e3f9e4f9e5f9e6f9e7f9e8f9e9f9eaf9ebf9ecf9edf9eef9eff9f0f9f1f9f2f9f3f9f4f9f5f9f6f9f7f9f8f9f9f9faf9fbf9fcf9fdf9fef9fff900fa01fa02fa03fa04fa05fa06fa07fa08fa09fa0afa0bfa0cfa0dfa0efa0ffa10fa11fa12fa13fa14fa15fa16fa17fa18fa19fa1afa1bfa1cfa1dfa1efa1ffa20fa21fa22fa23fa24fa25fa26fa27fa28fa29fa2afa2bfa2cfa2dfa2efa2ffa30fa31fa32fa33fa34fa35fa36fa37fa38fa39fa3afa3bfa3cfa3dfa3efa3ffa40fa41fa42fa43fa44fa45fa46fa47fa48fa49fa4afa4bfa4cfa4dfa4efa4ffa50fa51fa52fa53fa54fa55fa56fa57fa58fa59fa5afa5bfa5cfa5dfa5efa5ffa60fa61fa62fa63fa64fa65fa66fa67fa68fa69fa6afa6bfa6cfa6dfa6efa6ffa70fa71fa72fa73fa74fa75fa76fa77fa78fa79fa7afa7bfa7cfa7dfa7efa7ffa80fa81fa82fa83fa84fa85fa86fa87fa88fa89fa8afa8bfa8cfa8dfa8efa8ffa90fa91fa92fa93fa94fa95fa96fa97fa98fa99fa9afa9bfa9cfa9dfa9efa9ffaa0faa1faa2faa3faa4faa5faa6faa7faa8faa9faaafaabfaacfaadfaaefaaffab0fab1fab2fab3fab4fab5fab6fab7fab8fab9fabafabbfabcfabdfabefabffac0fac1fac2fac3fac4fac5fac6fac7fac8fac9facafacbfaccfacdfacefacffad0fad1fad2fad3fad4fad5fad6fad7fad8fad9fadafadbfadcfaddfadefadffae0fae1fae2fae3fae4fae5fae6fae7fae8fae9faeafaebfaecfaedfaeefaeffaf0faf1faf2faf3faf4faf5faf6faf7faf8faf9fafafafbfafcfafdfafefafffa00fb01fb02fb03fb04fb05fb06fb07fb08fb09fb0afb0bfb0cfb0dfb0efb0ffb10fb11fb12fb13fb14fb15fb16fb17fb18fb19fb1afb1bfb1cfb1dfb1efb1ffb20fb21fb22fb23fb24fb25fb26fb27fb28fb29fb2afb2bfb2cfb2dfb2efb2ffb30fb31fb32fb33fb34fb35fb36fb37fb38fb39fb3afb3bfb3cfb3dfb3efb3ffb40fb41fb42fb43fb44fb45fb46fb47fb48fb49fb4afb4bfb4cfb4dfb4efb4ffb50fb51fb52fb53fb54fb55fb56fb57fb58fb59fb5afb5bfb5cfb5dfb5efb5ffb60fb61fb62fb63fb64fb65fb66fb67fb68fb69fb6afb6bfb6cfb6dfb6efb6ffb70fb71fb72fb73fb74fb75fb76fb77fb78fb79fb7afb7bfb7cfb7dfb7efb7ffb80fb81fb82fb83fb84fb85fb86fb87fb88fb89fb8afb8bfb8cfb8dfb8efb8ffb90fb91fb92fb93fb94fb95fb96fb97fb98fb99fb9afb9bfb9cfb9dfb9efb9ffba0fba1fba2fba3fba4fba5fba6fba7fba8fba9fbaafbabfbacfbadfbaefbaffbb0fbb1fbb2fbb3fbb4fbb5fbb6fbb7fbb8fbb9fbbafbbbfbbcfbbdfbbefbbffbc0fbc1fbc2fbc3fbc4fbc5fbc6fbc7fbc8fbc9fbcafbcbfbccfbcdfbcefbcffbd0fbd1fbd2fbd3fbd4fbd5fbd6fbd7fbd8fbd9fbdafbdbfbdcfbddfbdefbdffbe0fbe1fbe2fbe3fbe4fbe5fbe6fbe7fbe8fbe9fbeafbebfbecfbedfbeefbeffbf0fbf1fbf2fbf3fbf4fbf5fbf6fbf7fbf8fbf9fbfafbfbfbfcfbfdfbfefbfffb00fc01fc02fc03fc04fc05fc06fc07fc08fc09fc0afc0bfc0cfc0dfc0efc0ffc10fc11fc12fc13fc14fc15fc16fc17fc18fc19fc1afc1bfc1cfc1dfc1efc1ffc20fc21fc22fc23fc24fc25fc26fc27fc28fc29fc2afc2bfc2cfc2dfc2efc2ffc30fc31fc32fc33fc34fc35fc36fc37fc38fc39fc3afc3bfc3cfc3dfc3efc3ffc40fc41fc42fc43fc44fc45fc46fc47fc48fc49fc4afc4bfc4cfc4dfc4efc4ffc50fc51fc52fc53fc54fc55fc56fc57fc58fc59fc5afc5bfc5cfc5dfc5efc5ffc60fc61fc62fc63fc64fc65fc66fc67fc68fc69fc6afc6bfc6cfc6dfc6efc6ffc70fc71fc72fc73fc74fc75fc76fc77fc78fc79fc7afc7bfc7cfc7dfc7efc7ffc80fc81fc82fc83fc84fc85fc86fc87fc88fc89fc8afc8bfc8cfc8dfc8efc8ffc90fc91fc92fc93fc94fc95fc96fc97fc98fc99fc9afc9bfc9cfc9dfc9efc9ffca0fca1fca2fca3fca4fca5fca6fca7fca8fca9fcaafcabfcacfcadfcaefcaffcb0fcb1fcb2fcb3fcb4fcb5fcb6fcb7fcb8fcb9fcbafcbbfcbcfcbdfcbefcbffcc0fcc1fcc2fcc3fcc4fcc5fcc6fcc7fcc8fcc9fccafccbfcccfccdfccefccffcd0fcd1fcd2fcd3fcd4fcd5fcd6fcd7fcd8fcd9fcdafcdbfcdcfcddfcdefcdffce0fce1fce2fce3fce4fce5fce6fce7fce8fce9fceafcebfcecfcedfceefceffcf0fcf1fcf2fcf3fcf4fcf5fcf6fcf7fcf8fcf9fcfafcfbfcfcfcfdfcfefcfffc00fd01fd02fd03fd04fd05fd06fd07fd08fd09fd0afd0bfd0cfd0dfd0efd0ffd10fd11fd12fd13fd14fd15fd16fd17fd18fd19fd1afd1bfd1cfd1dfd1efd1ffd20fd21fd22fd23fd24fd25fd26fd27fd28fd29fd2afd2bfd2cfd2dfd2efd2ffd30fd31fd32fd33fd34fd35fd36fd37fd38fd39fd3afd3bfd3cfd3dfd3efd3ffd40fd41fd42fd43fd44fd45fd46fd47fd48fd49fd4afd4bfd4cfd4dfd4efd4ffd50fd51fd52fd53fd54fd55fd56fd57fd58fd59fd5afd5bfd5cfd5dfd5efd5ffd60fd61fd62fd63fd64fd65fd66fd67fd68fd69fd6afd6bfd6cfd6dfd6efd6ffd70fd71fd72fd73fd74fd75fd76fd77fd78fd79fd7afd7bfd7cfd7dfd7efd7ffd80fd81fd82fd83fd84fd85fd86fd87fd88fd89fd8afd8bfd8cfd8dfd8efd8ffd90fd91fd92fd93fd94fd95fd96fd97fd98fd99fd9afd9bfd9cfd9dfd9efd9ffda0fda1fda2fda3fda4fda5fda6fda7fda8fda9fdaafdabfdacfdadfdaefdaffdb0fdb1fdb2fdb3fdb4fdb5fdb6fdb7fdb8fdb9fdbafdbbfdbcfdbdfdbefdbffdc0fdc1fdc2fdc3fdc4fdc5fdc6fdc7fdc8fdc9fdcafdcbfdccfdcdfdcefdcffdd0fdd1fdd2fdd3fdd4fdd5fdd6fdd7fdd8fdd9fddafddbfddcfdddfddefddffde0fde1fde2fde3fde4fde5fde6fde7fde8fde9fdeafdebfdecfdedfdeefdeffdf0fdf1fdf2fdf3fdf4fdf5fdf6fdf7fdf8fdf9fdfafdfbfdfcfdfdfdfefdfffd00fe01fe02fe03fe04fe05fe06fe07fe08fe09fe0afe0bfe0cfe0dfe0efe0ffe10fe11fe12fe13fe14fe15fe16fe17fe18fe19fe1afe1bfe1cfe1dfe1efe1ffe20fe21fe22fe23fe24fe25fe26fe27fe28fe29fe2afe2bfe2cfe2dfe2efe2ffe30fe31fe32fe33fe34fe35fe36fe37fe38fe39fe3afe3bfe3cfe3dfe3efe3ffe40fe41fe42fe43fe44fe45fe46fe47fe48fe49fe4afe4bfe4cfe4dfe4efe4ffe50fe51fe52fe53fe54fe55fe56fe57fe58fe59fe5afe5bfe5cfe5dfe5efe5ffe60fe61fe62fe63fe64fe65fe66fe67fe68fe69fe6afe6bfe6cfe6dfe6efe6ffe70fe71fe72fe73fe74fe75fe76fe77fe78fe79fe7afe7bfe7cfe7dfe7efe7ffe80fe81fe82fe83fe84fe85fe86fe87fe88fe89fe8afe8bfe8cfe8dfe8efe8ffe90fe91fe92fe93fe94fe95fe96fe97fe98fe99fe9afe9bfe9cfe9dfe9efe9ffea0fea1fea2fea3fea4fea5fea6fea7fea8fea9feaafeabfeacfeadfeaefeaffeb0feb1feb2feb3feb4feb5feb6feb7feb8feb9febafebbfebcfebdfebefebffec0fec1fec2fec3fec4fec5fec6fec7fec8fec9fecafecbfeccfecdfecefecffed0fed1fed2fed3fed4fed5fed6fed7fed8fed9fedafedbfedcfeddfedefedffee0fee1fee2fee3fee4fee5fee6fee7fee8fee9feeafeebfeecfeedfeeefeeffef0fef1fef2fef3fef4fef5fef6fef7fef8fef9fefafefbfefcfefdfefefefffe00ff01ff02ff03ff04ff05ff06ff07ff08ff09ff0aff0bff0cff0dff0eff0fff10ff11ff12ff13ff14ff15ff16ff17ff18ff19ff1aff1bff1cff1dff1eff1fff20ff21ff22ff23ff24ff25ff26ff27ff28ff29ff2aff2bff2cff2dff2eff2fff30ff31ff32ff33ff34ff35ff36ff37ff38ff39ff3aff3bff3cff3dff3eff3fff40ff21ff22ff23ff24ff25ff26ff27ff28ff29ff2aff2bff2cff2dff2eff2fff30ff31ff32ff33ff34ff35ff36ff37ff38ff39ff3aff5bff5cff5dff5eff5fff60ff61ff62ff63ff64ff65ff66ff67ff68ff69ff6aff6bff6cff6dff6eff6fff70ff71ff72ff73ff74ff75ff76ff77ff78ff79ff7aff7bff7cff7dff7eff7fff80ff81ff82ff83ff84ff85ff86ff87ff88ff89ff8aff8bff8cff8dff8eff8fff90ff91ff92ff93ff94ff95ff96ff97ff98ff99ff9aff9bff9cff9dff9eff9fffa0ffa1ffa2ffa3ffa4ffa5ffa6ffa7ffa8ffa9ffaaffabffacffadffaeffafffb0ffb1ffb2ffb3ffb4ffb5ffb6ffb7ffb8ffb9ffbaffbbffbcffbdffbeffbfffc0ffc1ffc2ffc3ffc4ffc5ffc6ffc7ffc8ffc9ffcaffcbffccffcdffceffcfffd0ffd1ffd2ffd3ffd4ffd5ffd6ffd7ffd8ffd9ffdaffdbffdcffddffdeffdfffe0ffe1ffe2ffe3ffe4ffe5ffe6ffe7ffe8ffe9ffeaffebffecffedffeeffeffff0fff1fff2fff3fff4fff5fff6fff7fff8fff9fffafffbfffcfffdfffeffffff", 0x20000, 0x87400}, {&(0x7f000003bba0)="46494c4530000300000000000000000001000100380001009801000000040000000000000000000004000000000000000300000000000000100000006000000000001800000000004800000018000000801493d14ec4d801801493d14ec4d801801493d14ec4d801801493d14ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000006800000000001800000002004a000000180001000500000000000500801493d14ec4d801801493d14ec4d801801493d14ec4d801801493d14ec4d801006c000000000000006c0000000000000600000000000000040324004d0046005400000000000000800000004800000001004000000001000000000000000000fe00000000000000400000000000000000fc03000000000000fc03000000000000fc03000000000012ff001000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000000004000000000000200000000000000020000000000000001101080000000000ffffffff00"/416, 0x1a0, 0xffc00}, {&(0x7f000003bd40)="0000000000000000000000000000000000000000000000000000000000000300", 0x20, 0xffde0}, {&(0x7f000003bd60)="00000000000000000000000000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000000004000000000000080000000000000008000000000000001101080000000000ffffffff0000030046494c4530000300000000000000000001000100380001005801000000040000000000000000000003000000010000000200000000000000100000006000000000001800000000004800000018000000801493d14ec4d801801493d14ec4d801801493d14ec4d801801493d14ec4d801060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500801493d14ec4d801801493d14ec4d801801493d14ec4d801801493d14ec4d801001000000000000000100000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000030000000000000040000000000000000010000000000000001000000000000000100000000000002104ff0300000000ffffffff00"/448, 0x1c0, 0xfffa0}, {&(0x7f000003bf20)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1001e0}, {&(0x7f000003bf40)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000002000100380001005801000000040000000000000000000003000000020000000200000000000000100000006000000000001800000000004800000018000000801493d14ec4d801801493d14ec4d801801493d14ec4d801801493d14ec4d801060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500801493d14ec4d801801493d14ec4d801801493d14ec4d801801493d14ec4d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c006500000000000000800000004800000001004000000001000000000000000000ff0000000000000040000000000000000000040000000000000004000000000000000400000000002200010304000000ffffffff00"/384, 0x180, 0x1003e0}, {&(0x7f000003c0c0)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1005e0}, {&(0x7f000003c0e0)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000300010038000100e001000000040000000000000000000006000000030000000400000000000000100000004800000000001800000000003000000018000000801493d14ec4d801801493d14ec4d801801493d14ec4d801801493d14ec4d801060000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500801493d14ec4d801801493d14ec4d801801493d14ec4d801801493d14ec4d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000400", 0x220, 0x1007e0}, {&(0x7f000003c300)="0000000000000000000000000000000000000000000000000000000000000400ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x40020, 0x100be0}, {&(0x7f000007c320)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkal\x00\x00\x00\x00\x00\x00', 0x420, 0x180800}, {&(0x7f000007c740)='syzkallers\x00'/32, 0x20, 0x181000}, {&(0x7f000007c760)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallers\x00'/128, 0x80, 0x183800}, {&(0x7f000007c7e0)="eb52904e5446532020202000020200000000000000f8000000000000000000000000000080008000ff0f0000000000001000000000000000ff030000000000000100000004000000e9b6d40b90f78707000000000e1fbe717cac22c0740b56b40ebb0700cd105eebf032e4cd16cd19ebfe54686973206973206e6f74206120626f6f7461626c65206469736b2e20506c6561736520696e73657274206120626f6f7461626c6520666c6f70707920616e640d0a707265737320616e79206b657920746f2074727920616761696e202e2e2e200d0a00"/224, 0xe0, 0x1ffe00}, {&(0x7f000007c8c0)="00000000000000000000000000000000000000000000000000000000000055aa", 0x20, 0x1fffe0}], 0x0, &(0x7f0000003800)=ANY=[@ANYBLOB="00a34470412c912b2b4bb64e36c5a1b1b1800e5920fd1a3cf7d7fc1c4b92c7e52c9201016e4ab38324e8f0d61408b4294c2c9445ffc0fbbf1eb14118b7ee417599ff273eb55b616efbe727c670ad85f519a5a818341c8fede1d1b8424a191f284600abc564a4460a7a2d3ff7d9a9b4dfaf44f572d461b8d43b43d6eb90ea0f208afc7068d1538f5f6ae0dd9057c9a2591f760d17d29efc400b8ff1e6672f"], 0x1) r0 = openat(0xffffffffffffffff, 0x0, 0x0, 0x0) sendfile(0xffffffffffffffff, r0, 0x0, 0x80001d00c0d0) r1 = creat(&(0x7f00000000c0)='./bus\x00', 0x0) ioctl$BTRFS_IOC_SNAP_CREATE(0xffffffffffffffff, 0x50009401, &(0x7f0000000840)={{r1}, "81d0827b1e97c1c69fc1787639c2634293bad6a27e3946f4d111e234162d9423aaabd11b9c5f7705273b710a74de725120ed88bd735df717c34e5533269bd557a1b5a4c248cc65c18717accebb77ec08c00e55b30888c43ec824ed8577774dc8eb5d87d77386efded89096b2f7933ee576dbae8df11ea07cf22e8f12c3f57c729f65dc5a801fe02609511f87fd276bbd59520614dc036816fffa87a2784ad4ee25567d69ab8680c629e82ff1fece4c932ac70a0165ee8fcbaf4a0548034ce440827bd468b6abf49ec8112f222f35e63b3e06ea01e18935d7644ad5c7f1def699f2903cf694aa3aa4bed5f047465ea62090c6fd5a3f953b194ab5adac334b6b33d5590eb407f15de3a27d406feb62defa209cd1059edca9242233ee28b402e93391f6c016775b03bc01c97b05983d6993f2b914b205bfbd8ea539ac40e614ed055c13bc0789e3eccc5054f9eeb67e43a95a84a0d847cb160ede00db079ade1a55110e3b3237a8cab7397453ca2960d750929de5c14da81009ddb214ea56dd2446c7b8dd94b9fe811e019d6f4564157c6cce8d27cc89489f3f606a6ca6dc790287f4bf424485c6317723e472d9ea5154c05708f72dc22b871e810fd6d60e1aa6d65682067e0fd1f4a4bfd6ef9223ad799ff8a7a1398c991d2293f02139070b4a1d12102a278bb9148dbe9f780e8d65da12311c20c855d1874745f970cebf8819e5d738b5901c258aa32dbbaf8ff4b13abf9b13a574e5a80fc1a6f99a51d50af78d87f34d63f5520198f908beeddb3ce6662bb57041b1ec37d1a8b30e81f98f4d88936f0b7c288ffa64bd0c02f726ba452fa5412cfa5aab87a8bba8c3e4f53036c579ddffbf6f0891b5d0567615cafe20ad0fe7b0ba6c7d9c9bc91ba969f8be8481fc63b98120c4ae37454ebd88c8c82f45334f7651f1b015446d56d096e1396c1d2272507099ef0927560d38271dc981c39549724acc4905f99b1069ea50371a3f1edfe06bb4b2095fae18c2ce694d001cb2050ff89cb04ee7d34ee9b2879f201905d50121586cbf2674b3771f6073c9a36f1825072af4cf14874542f05961540069ae85cb4fd597b03074eb6f9c0c1c44ace23a1b7fabf13aee3204b3dbd8f1bd3b6f7b5b20d946d7d3d51bc987bb46369472f52fec2a2965e2cfd0afcbd2d5d9f667ac04ebeb90f5a699fa54e09fafdd4f91ca4a1264a844196bb8364391ee1a89b3f534ebb78e2a26fc17ae47d42b56624be39e9b182cb4e8be7e2b17b331b2a4d0fe27156f399d65452042a66252763b1016bf40dd535371f18ea49db6ce8b58ef57ff35dd7d66996645861424e2c6a1c24a973baffee7273114d305371e93d1d17ca9f297013e6eefdb934a2787acdd03a02d13c4bce712c30218ab8e94c8d59099c8f71dce4f8443944dc8040ceea62ca28b6af7ac2091e159549863fabe63b25dabce5c6cf2f8f91e2c42ad22ab0860dc48f7d6f319c0064afa8942e272c6b26149ec7450b011dec428605478ea64dca808f53dfcdac7f40e22d5d1d95847bf9981e801b7e8055add5d15a6e407f5163001d67333d5ef1767baddfa8487160421e6709d08d600c9faade87d51892d2e28dadcfa783423c04dedb93f61b24aafafd8f09db126bda6ac5967fd195d671411af144c41e15173c619d1f4ebe5e6478d3e4e3b42105f74e9b55ee2e573cd85e9b1aabd86380f5c4b3bb74ae95ca3a082ba9fcd64ce3e9d47dfd126e52e7b828be9268e33ca591758d452cfa983109785c1f2c1fc0136d04ccbe1dad3c7174be18b790d623ba654d9758735212f60f69c3c7a731f022dca08761d1a268f07d5fc29f5d355070362e46e645ced408be8cb90fa0136a23183d4b4488a5f9578d6abfef93a5b24fffa914cc8806d7dc065fe0175b463718d3e146f959e7548716cc6c475b7153e2d484b37bf69a64eb57be27fd66d24634ada8603c6f93e3169501fa09261d7f608047cd586d93a8cf8a98a48b423d14b0a3e8ad5a9ff75f5253fde9b021a0394f58d56772b3dd710c51319fd9ba541e77a4cc8a7b980d23a76b0929fa2f7805b7b18ab2c474cfc6f27c2b9d56839e7ac34260b930fe2a14ca8863f1dd2cc814d8dbdc95e9203d98afe7aa9a1595f2c980f795aff36a445e4942657c69f45156ef3c474e981af662cb76f4b1769f673fba2ecdbee9a69fbc2f2ab8ed8eb795b4634419d0eae3caef861847eefc1f611c3f6dff52f95ec08cb442b16df55b6e84865349b8042dc523525129fa21bc88ae06794485a51d56e14aa62f068f921d4f552e692add2905cd8fbce189420e2aa0e384b758de4e215afaf92c3d955ca87e46a95d40f46a96b05e4ca990b14e312e9d5cd2ddd2afec49f69a1b28086b1fe984019615fa68258bcb4bfc0c79dba0208efd3ea6b1d1045cc26f515ef70cf7a31fee207a5a23e07e83e9897023cabcd802475c693aa98d52a9e4f9d96cfe16e0b6c8214c4d27095ebfb575f2fba84f33ff33917315cac61419f1029beed9a417e0cd6932bf3218a2b2c2265a601e15674e2dd7ad2cc672233b2a120f6d4ef2f8258ed27933884c69f6374652da550479ae47b206f35946a2a7aed6ea57ef4c16adb4fb347fe3e701863c9ec09a151b81f19b2ff7d5b16a46a81079d19af7e033035410acf8f7204cf0b479e6bdc182401bf5b5db0c7f92064adf7f80d6876e9ae701db9d9e9d222a0987b22bedb8c6db8683f491c99a53ee4db8fc89345700712e3671af55d987b840467a22834e9228bd75588f6fe1ccbca297b83367eb2f92f513a0aaad4c45ffa470974eb5d9432c50b84e5cd9ee16f71385d39296414a2d685a14b4c6de525ced4289852baa12d784af657bec44766ba2bd9f36149be18e9cc49b1436f33bd2654b80dc5632f82bccad57e4cabc55b01dcbec2079e813cd18d8d09c11fc9d649f66b76892fbc9b63a963813675dad06f26a29238fa279dd557add9b3730f1e68a4248ec805aa8dd0e4354fe9ec4323043eba8f8b4eb6bfabe48d9b812cc1425bd9cc1e0610227aa51c102fa4398b34f77b991f8ae4385e58435c690cec75f181e92ce7b903793ae08d654c4fc5f29d67ccaf5a7774c4d5d3ec03bf8cf8ecdb64f67b32e45bd0506fa62cc16bcaccad25e7f5d09b4a09df74726a025b865af4c6984110a41829c0327bc6c8ef8ce9740e8d0be3cab6e4799d5adf942c770ae6533bd2694e0c77fd77a4b27e764b32848e6f87a91e03b83a6e92ab56fd401d031a79eca1901c4bc607bdb7b4cf54b400e31b6aa87e94dd60809ed17a208ab3ae999973c1feb36b0161475421b45af4f374999402466b9dc808e5bd2853a60bc5cbc685d24dbced66910e6ede3560d450be79cde27c62462999a77761420a776f4f27a361906da42aa2885e6067e94ef5f4fdf9c2f3f53fa4d29344a36829002a986ce1c7c4db2cd242d364cc9fa0569f6c6e58d265adc4e4163040ad4a8e360a0031b8b8fbc82ce3ee85ec811ba29c565c6b9394e1635f0185b0b0fc50decf9cb86c8561adb36e0b9ecfcf1bc954a6bfa2be904e781a02d7314f34a0b2c2af8a0d89afc9be56239de1dca4fc2ed1b6efc2e30466afbe138ae1debfa7dc0ec6b689f611afdd08264311c31ba254190ce72c96fd231f43157b1742c8618993b3af48ed90560613c7a36c05849f1901f924e6f7d39c26135542870393a08f997fc3c89d31e7bce7981612ff3c7bed9a0cc5f1a5bae71b0bd5d632dbc0b24d691dfaa576869345ace403f36f26c30c0866784b0ee9abff12aa76b83092207f31c098ec607383f1af91a34e36147a1942f96f513bfe19c1eb79012af0ad173faebfbf4390fc20d7103a95c94c7f299a8eb13a49bbc04407b188d8c77c216daddce4f82f28899aa404dd051e96e05536db12c618528c1045e612c74efb39dc073f4628a9cfa54a52f254e364969b8466a45f1656bce4263e822cf68ae59c30f51aac1ae53d15e9c27f0f83310ea02b72a9bcec9d7ec7adfae7e79ab67cc67629af0ed2806ea6a13c490447f6de0ab7ee7308c13c53d05b0ceb8d64fd4c99b01624e84d60b96121a99e11cce7398109ebc11d0e324f474feb742107a9be553abc0b9e273fde464a0467d2dd93ea8f8f06026901160f1f0527230d65a1c5e9464ebfb60012bfd0e85e6b130cbd0c51467b742435318162baee8f789a880b5f68202408c536d70d4cd6af510a1099cee37714fe7d38117379821e39d43d40adc23411fd0161ed1d51b1abdc2a6026dc8957fcd2d9f529ea7c90e4a9b099623a497e3606ab32f91a50eb72b9549ab2c7d87c5edfb39701a10af717d66a14a544e6129caf60470f74dfef6b661a7c7666b7d39270088579d1f74c21809534e20af0094146755923df746168f2856a869790cbd06eb09110bc1ebb3f2035962b7fbd799dfd154beb1d8eb230896f41a248c882cc13aa31641f10dfbd28f3aba6e15e18b277a70444ff245711b833cbc461a954c8f2cbbd3d01668e19e2ea1f5b4c1922b9b1b1eea7652619efc6796a2565034848e49df7e55bf6fbb3ad9a0f51ade1e0fb37edd263681ea187a68a99c5874d022deafa6bf0be2957ab8584e5d04b1c4c940fa4f4bfa5b82567222d436304b9ca9b8949104b991c635c22955af2475cba1795be3969acdc2c2287f7e6aedc548b77a658e63113dc3c6474e34448c906873c1e23439421791b32ac9fb694cfde74c4d7f91c08537b9178432e969de41494b78aa0310f1376fc2a279e2b153741cc1c075ec7e533255b732f4080a4629fcf12f91780365b0f11102385cc32afe561d9b454d12f125c11de261355ded33ee32fe7f9e8464ee190ef405a014cd15308d49e1525cbf1f90b3fac6eb0913a8a58629b723963de3eb09361d8c92a133a8c2a7bed05be027211a654c4c504d67b2831954456590605950d8095d4915a98a2fe096a3d19b35393c38e4f49ee004358a1542ad8b23bc3902a88196e755f511eb69625b314c5cddc32ccc3f32daa5279819b9c08e033f7877768e0a2ac39c2d1df4cc63f9b239a6ca4bc0f034616fd78943ddc2ff37ee98b8e6e847c132b411b86b95735b70da3985506eae0645604ef72c539e6395a05276ea2a45473263c10669180c91b8ca45aa5dac000665eb578d3c73a58e2361e9714c7caf3477ddffdafc5901921415226e87b372b1018c282113afc63460f02c778f8a38abb96a6d054376d72b93e9a031084753c0c3dda944e49f83805405262fec416f44821065bc7132c83f6829a7dd1c8f80348e78dd88a3fc7d9224db5a29b1596670ecd58483cdbc6a97569e6c2be002c3bb5ef734b1aa50dae3c3e0a644bf75913aa97540c4b6c1267d919c9dc7314a875ba8e820bcf6884cd193adebca3ac36e95830f39a5d1e938264d72eab351277314f8d19bd09cc1f2aa7bac521122f55d58a93182b638ea8ccee1cd69511125455c83078d62a2aae16da6f330aba824a4ee41e219f79bcd5847f55be624903fd979bcfe053a525caea75f8b9c6e19dc16eddbae92d1e2bad6c6bbe72830bf70c13bc4e041b1cd309243a9b5d85d38832cbfaee8d86590a5605b7c2a07a0ba68f406fd02a5e5bf4697c86303ac52aafaf8a734d09f79cad11de6c2b9bc5923e45ba57e7f11854df9363de0594aba056952bb32e48678ddf11f7eb7e5e93c9ae6a743a4cb0873035c30df757fad5031801780d09f747ea2fcad8a0364a4a11baa7eb4e35f0b6a8bea5764518c95c3e4bddd289f51bad87bd6d42d08b4c841068723b"}) mkdir(&(0x7f0000000400)='./file0\x00', 0x0) mkdir(&(0x7f0000000300)='./bus\x00', 0x0) openat(0xffffffffffffffff, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) open(0x0, 0x14da42, 0x0) chown(&(0x7f0000000100)='./bus\x00', 0x0, 0xee01) [ 238.573463][ T3941] REISERFS (device loop0): checking transaction log (loop0) [ 238.588453][ T3854] BTRFS warning: duplicate device /dev/loop3 devid 1 generation 8 scanned by udevd (3854) [ 238.595514][ T3941] REISERFS (device loop0): Using rupasov hash to sort names [ 238.616424][ T3943] BTRFS info (device loop5): using free space tree [ 238.632183][ T3941] REISERFS (device loop0): Created .reiserfs_priv - reserved for xattr storage. 19:51:22 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) [ 238.827902][ T3958] loop1: detected capacity change from 0 to 4096 [ 238.854354][ T3974] loop2: detected capacity change from 0 to 1 19:51:22 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) [ 238.916981][ T3974] loop2: [ICS] p1 p2 [ 238.921425][ T3974] loop2: partition table partially beyond EOD, truncated [ 238.928807][ T3974] loop2: p1 start 4188764746 is beyond EOD, truncated [ 238.946098][ T3974] loop2: p2 start 444464470 is beyond EOD, truncated [ 238.992111][ T3943] BTRFS info (device loop5): enabling ssd optimizations 19:51:22 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:22 executing program 1: syz_mount_image$btrfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x1000000, 0x4f, &(0x7f0000000200)=[{&(0x7f0000010000)="d2eacf4f98a4345f0000000000000800000000000000000003000000000000008ff932b8f4e44b03aed6d7e5736fd60a000001000000000001000000000000005f42485266535f4d08000000000000000060510000000000001010000000000000000000000000000000000000000000000000010000000000e0000000000000060000000000000001000000000000000010000000100000001000000010000061000000050000000000000000000000000000000300000000000000450300000000000001000000000100000000000000000000010000000000007200000000000010000000100000001000000000000000000000000000000000000000000000000000000000000000007981baa6901349f18e09e692cd2866218ff932b8f4e44b03aed6d7e5736fd60a00"/320, 0x140, 0x10000}, {&(0x7f0000010140)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00'/32, 0x20, 0x10220}, {&(0x7f0000010160)="00000000000000000000000001000000000000e40000100000000000000040000000000002000000000000000000010000000000020000000000000000100000001000000010000001000000010000000000000000001000000000007981baa6901349f18e09e692cd28662100"/128, 0x80, 0x10320}, {&(0x7f00000101e0)="0000000000000000000000003050000000000005000000000000000010100000000000050000000000000000805000000000000500000000000000001050000000000005000000000000000040500000000000050000000000000000905000000000000500000000000000000000010000000000900000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000000000006000000000000000010100000000000050000000000000000205000000000000600000000000000001050000000000005000000000000000040500000000000050000000000000000905000000000000500000000000000000000010000000000900000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004051000000000007000000000000000010100000000000050000000000000000205100000000000700000000000000003050000000000007000000000000000050510000000000070000000000000000105100000000000700000000000000000000010000000000e00000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000006051000000000008000000000000000010100000000000050000000000000000705100000000000800000000000000003050000000000007000000000000000050510000000000070000000000000000105100000000000700000000000000000000010000000000e0000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000100", 0x2a0, 0x10b20}, {&(0x7f0000010480)="2ac4149354208c3b0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a000010000000000001000000000000017dcc36ce39a74d90af96db8bae0806720300000000000000030000000000000004000000000100000000000000d80100000000000000390f0000620000000001000000000000e40000100000000000e90e0000500000000001000000000000e40000500000000000990e0000500000000001000000000000e40000690000000000490e00005000"/224, 0xe0, 0x100000}, {&(0x7f0000010560)="0000000000000000000000000000000019000000000002000000000000000000010000000000050000000000000000000100000001000010000001000100010000000000000000006900000000007981baa6901349f18e09e692cd286621000019000000000002000000000000000000010000000000050000000000000000000100000001000010000001000100010000000000000000005000000000007981baa6901349f18e09e692cd286621000040000000000002000000000000000000010000000000020000000000000000100000001000000010000001000000010000000000000000001000000000007981baa6901349f18e09e692cd2866210100000000000000000000010000000000007200000000000010000000100000001000000000000000000000000000000000000000000000000000000000000000007981baa6901349f18e09e692cd2866218ff932b8f4e44b03aed6d7e5736fd60a272f3e00707ea5880000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a001010000000000001000000000000017dcc36ce39a74d90af96db8bae0806720500000000000000030000000000000004000000000100000000000000d80100000000000000390f0000620000000001000000000000e40000100000000000e90e0000500000000001000000000000e40000500000000000990e0000500000000001000000000000e40000690000000000490e00005000"/576, 0x240, 0x100ea0}, {&(0x7f00000107a0)="0000000000000000000000000000000019000000000002000000000000000000010000000000050000000000000000000100000001000010000001000100010000000000000000006900000000007981baa6901349f18e09e692cd286621000019000000000002000000000000000000010000000000050000000000000000000100000001000010000001000100010000000000000000005000000000007981baa6901349f18e09e692cd286621000040000000000002000000000000000000010000000000020000000000000000100000001000000010000001000000010000000000000000001000000000007981baa6901349f18e09e692cd2866210100000000000000000000010000000000007200000000000010000000100000001000000000000000000000000000000000000000000000000000000000000000007981baa6901349f18e09e692cd2866218ff932b8f4e44b03aed6d7e5736fd60ac5e886221dbd54bb0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a002010000000000000000000000000017dcc36ce39a74d90af96db8bae0806720100000000000000030000000000000002000000000100000000000000d80100000000000000390f0000620000000001000000000000e40000100000000000e90e00005000"/512, 0x200, 0x101ea0}, {&(0x7f00000109a0)="0000000000000000000000000000000040000000000002000000000000000000010000000000020000000000000000100000001000000010000001000000010000000000000000001000000000007981baa6901349f18e09e692cd2866210100000000000000000000010000000000004000000000000010000000100000001000000000000000000000000000000000000000000000000000000000000000007981baa6901349f18e09e692cd2866218ff932b8f4e44b03aed6d7e5736fd60a71ef875904a1ca660000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a003010000000000000000000000000017dcc36ce39a74d90af96db8bae0806720100000000000000040000000000000001000000000100000000000000cc00001000000000006b0f0000300000000000", 0x140, 0x102f40}, {&(0x7f0000010ae0)="0000000000000000000000000000000003000000000000000001000000000000000010000000000000004000000000007dcc36ce39a74d90af96db8bae0806725490e3d81cd63c0f0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a004010000000000000000000000000017dcc36ce39a74d90af96db8bae08067201000000000000000500000000000000", 0xa0, 0x103fc0}, {&(0x7f0000010b80)="cb0d168929f3f7d40000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a005010000000000000000000000000017dcc36ce39a74d90af96db8bae08067201000000000000000700000000000000", 0x60, 0x105000}, {&(0x7f0000010be0)="ef3392afacf603fb0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a006010000000000000000000000000017dcc36ce39a74d90af96db8bae08067201000000000000000a0000000000000002000000000000100000000000c60000400000000000930f0000080000000070100000000000c700903f0000000000930f00"/160, 0xa0, 0x106000}, {&(0x7f0000010c80)="0000000000000000000000000000000000000000000000000100000000000000036d53e20cf6870c0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a007010000000000001000000000000017dcc36ce39a74d90af96db8bae0806720200000000000000040000000000000002000000000100000000000000cc00001000000000006b0f0000300000000100000000000000cc00005000000000003b0f00003000"/192, 0xc0, 0x106fe0}, {&(0x7f0000010d40)="03000000000000000001000000000000000050000000000000001900000000007dcc36ce39a74d90af96db8bae08067203000000000000000001000000000000000010000000000000004000000000007dcc36ce39a74d90af96db8bae08067261bd69a63561c6770000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a008010000000000001000000000000017dcc36ce39a74d90af96db8bae0806720200000000000000030000000000000003000000000100000000000000d80100000000000000390f0000620000000001000000000000e40000100000000000e90e0000500000000001000000000000e40000500000000000990e00005000"/288, 0x120, 0x107fa0}, {&(0x7f0000010e60)="19000000000002000000000000000000010000000000050000000000000000000100000001000010000001000100010000000000000000005000000000007981baa6901349f18e09e692cd286621000040000000000002000000000000000000010000000000020000000000000000100000001000000010000001000000010000000000000000001000000000007981baa6901349f18e09e692cd2866210100000000000000000000010000000000005900000000000010000000100000001000000000000000000000000000000000000000000000000000000000000000007981baa6901349f18e09e692cd2866218ff932b8f4e44b03aed6d7e5736fd60abbe4da89cc7169bb0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a009010000000000001000000000000017dcc36ce39a74d90af96db8bae080672020000000000000002000000000000000b000000000000100000000000c00000400000000000830f0000180000000040100000000000a900000000000000006b0f0000180000000040100000000000b005000000000000006b0f0000000000000050100000000000a90000000000000000530f0000180000000050100000000000b00700000000000000530f0000000000000070100000000000a90000000000000000320f0000210000000080100000000000a90000000000000000110f0000210000000090100000000000a90000000000000000f00e00002100000000a0100000000000a90000000000000000cf0e0000210000000000500000000000a90000000000000000ae0e0000210000000000500000000000c00000190000000000960e0000180000000000500000000000c00000190000000000b70e0000180000000060100000000000b00a000000000000000b0f0000000000000000500000000000c00000190000000000f30e0000180000000060100000000000b00a00000000000000f30e0000000000000000500000000000c00000190000000000db0e00001800"/768, 0x300, 0x108f00}, {&(0x7f0000011160)="000000000000000000000000000000000000000000000000000000001000000000000000010000000000000500000000000000010000000000000002000000000000000200000000000000b00100000000000000010000000000000002000000000000000200000000000000b00a00000000000000010000000000000002000000000000000200000000000000b00200000000000000010000000000000002000000000000000200000000000000b00300000000000000010000000000000002000000000000000200000000000000b004000000000000000100000000000000010000000000000002000000000000000100000000000000010000000000000002000000000000000060000000000000000100000000000002000000000000001bc0f432deb6a4810000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a00a010000000000001000000000000017dcc36ce39a74d90af96db8bae08067202000000000000000a0000000000000006000000000000100000000000c60000400000000000930f0000080000000000100000000000c70040000000000000930f0000000000000060100000000000c70010000000000000930f00000000000000b0100000000000c700503f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000010500000000000c700f01800000000008b0f00"/544, 0x220, 0x109ee0}, {&(0x7f0000011380)="0000000000000000000000000000000001000000000000000300000000000000", 0x20, 0x10afe0}, {&(0x7f00000113a0)="a566b5eb15642b400000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a000050000000000001000000000000017dcc36ce39a74d90af96db8bae080672060000000000000001000000000000000b000000000200000000000000840000000000000000e40d0000b701000004000000000000008400000000000000002d0c0000b701000005000000000000000c06000000000000001c0c0000110000000500000000000000840000000000000000650a0000b70100000600000000000000010000000000000000c5090000a000000006000000000000000c0600000000000000b90900000c000000060000000000000054d2c2bf8d0000000094090000250000000700000000000000840000000000000000dd070000b7010000090000000000000084000000000000000026060000b70100000a000000000000008400000000000000006f040000b7010000f7ffffffffffffff840000000000000000b8020000b70100"/384, 0x180, 0x500000}, {&(0x7f0000011520)="00000000000000000000000000000000000000000000000000000000000500000000000000000100000000000000b0500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500"/128, 0x80, 0x5003a0}, {&(0x7f00000115a0)="000000000000000000000000000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x5004c0}, {&(0x7f0000011600)="0000000000000000000000000000000000000000060000000000000000000000000000000050500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600"/128, 0x80, 0x500560}, {&(0x7f0000011680)="00000000000000000000000500000000000000000000000000000000c050000000000000000000000000000010000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000050000000000", 0x60, 0x500720}, {&(0x7f00000116e0)="000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed410000000000000000", 0x40, 0x500840}, {&(0x7f0000011720)="0000050000000000000000000000000000000090500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500"/96, 0x60, 0x5008e0}, {&(0x7f0000011780)="00000000000000000000000000000000000000000000000000050000000000000084ffffffffffffffff0000000000000000000007000264656661756c74000000000000000002002e2e03000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000691f1f63000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed41", 0x120, 0x5009e0}, {&(0x7f00000118a0)="000000000000000000000500000000000000000100000000000000105000000000000000000000000000001000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000005000000000000005b77423558504acfa5895733d2a197e200"/128, 0x80, 0x500b60}, {&(0x7f0000011920)="0000000000000000000000000000000000691f1f630000000000000000691f1f6300"/64, 0x40, 0x500c00}, {&(0x7f0000011960)="000000000000000000070064656661756c7401000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x500c80}, {&(0x7f00000119c0)="000000000000000000000000000000000000050000000000000000000000000000000040500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500"/128, 0x80, 0x500d20}, {&(0x7f0000011a40)="00000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100", 0x40, 0x500e40}, {&(0x7f0000011a80)="000000000000000000060000000000000000000000000000000020500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600000000000000", 0x60, 0x500ee0}, {&(0x7f0000011ae0)="ffa75718c036c1b30000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a001050000000000001000000000000017dcc36ce39a74d90af96db8bae0806720500000000000000050000000000000002000000000001000000000000010000000000000000fb0e0000a000000000010000000000000c0001000000000000ef0e00000c00"/160, 0xa0, 0x501000}, {&(0x7f0000011b80)="0000000000000000000000000000000000000000000000000000000002002e2e03000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000d166d354650390dd0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a002050000000000001000000000000017dcc36ce39a74d90af96db8bae080672060000000000000002000000000000000c000000000000100000000000c00000400000000000830f0000180000000010100000000000a90000000000000000620f0000210000000000500000000000a90000000000000000410f0000210000000000500000000000c00000190000000000290f0000180000000010500000000000a90000000000000000080f0000210000000020500000000000a90000000000000000e70e0000210000000040500000000000a90000000000000000c60e0000210000000050500000000000a90000000000000000a50e0000210000000090500000000000a90000000000000000840e00002100000000b0500000000000a90000000000000000630e00002100000000c0500000000000a90000000000000000420e0000210000000000690000000000c000001900000000002a0e0000180000000000690000000000c000001900000000002a0e0000180000000000690000000000c00000190000000000090e0000180000000060100000000000b00a00000000000000f30e0000000000000000500000000000c00000190000000000db0e00001800"/704, 0x2c0, 0x501f40}, {&(0x7f0000011e40)="00000000000000000000000000000000000000000000010000000000000500000000000000010000000000000005000000000000000000010000000000000500000000000000010000000000000005000000000000000000010000000000000500000000000000010000000000000005000000000000000200000000000000b00900000000000000010000000000000005000000000000000200000000000000b0f7ffffffffffffff010000000000000005000000000000000200000000000000b00700000000000000010000000000000006000000000000000200000000000000b00a00000000000000010000000000000005000000000000000200000000000000b00400000000000000010000000000000006000000000000000200000000000000b00200000000000000010000000000000005000000000000000200000000000000b00500000000000000008000000000000000010000000000000500000000000000010000000000000006000000000000000200000000000000b00100000000000000010000000000000005000000000000000200000000000000b00300000000000000001000000000000000010000000000000200000000000000561ffdbba2c02c6f0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a003050000000000001000000000000017dcc36ce39a74d90af96db8bae08067207000000000000000500000000000000020000000100010000000000000100000000000000000000510000000000070000000000000002010000000000006c0000000000000000006050000000000007", 0x260, 0x502e40}, {&(0x7f00000120a0)="09f0093dd1c52aff0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a004050000000000001000000000000017dcc36ce39a74d90af96db8bae0806720500000000000000040000000000000003000000000100000000000000cc00001000000000006b0f0000300000000100000000000000cc00005000000000003b0f0000300000000100000000000000cc00006900000000000b0f00003000"/192, 0xc0, 0x504000}, {&(0x7f0000012160)="0000000000000000000000000000000003000000000000000001000000000000000069000000000000001900000000007dcc36ce39a74d90af96db8bae08067203000000000000000001000000000000000050000000000000001900000000007dcc36ce39a74d90af96db8bae08067203000000000000000001000000000000000010000000000000004000000000007dcc36ce39a74d90af96db8bae080672b48545bd355ae8ff0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a005050000000000001000000000000017dcc36ce39a74d90af96db8bae08067206000000000000000a000000000000000a000000000000100000000000c60000400000000000930f0000080000000000100000000000c70010000000000000930f0000000000000020100000000000c700e03f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000030500000000000c700100000000000008b0f0000000000000060500000000000c700300000000000008b0f00000000000000a0500000000000c700100000000000008b0f00000000000000d0500000000000c700301800000000008b0f0000000000000000690000000000c60000190000000000830f0000080000000000690000000000c70000190000000000830f00000000000000", 0x200, 0x504f60}, {&(0x7f0000012360)="0000000000000000010000000000000004000000000000000200000000000000a22ac3de03de158c0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a006050000000000001000000000000017dcc36ce39a74d90af96db8bae080672070000000000000005000000000000000f0000000002010000000000006c00000000000000006c0b00002f0400000301000000000000010000000000000000cc0a0000a000000003010000000000000c0101000000000000bd0a00000f00000003010000000000006c0000000000000000820a00003b0000000401000000000000010000000000000000e2090000a000000004010000000000000c0001000000000000d30900000f00000004010000000000001822a8f12600000000a40900002f000000040100000000000018d65ba13500000000750900002f00000004010000000000006c0000000000000000560900001f0000000501000000000000010000000000000000b6080000a000000005010000000000000c0001000000000000980800001e00000005010000000000006c000000000000000063080000350000000601000000000000010000000000000000c3070000a000000006010000000000000c0001000000000000b00700001300000006010000000000006c0000000000000000370700007900000000000000", 0x200, 0x505fe0}, {&(0x7f0000012560)="0000000000000000000000000000000000000000000000000000000007000000000000006400000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c6572730600000000000000090066696c652e636f6c6407000000000000000700000000000000640000000000000064000000000000000000000000000000010000000000000000000000ed810000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700607000000000000000030000000000000000000000100d05000000000000030000000000000000000000000000000300000000000000400000000000000050066696c65320500000000000000050066696c653307000000000000000700000000000000282300000000000000300000000000000000000000000000020000000000000000000000ed810000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700607000000000000000a00000000000000000000000073797a6b616c6c6572730000000000000000000000000000000000070000000000000006000b0008757365722e7861747472317861747472310000000000000000000000000000000000070000000000000006000b0008757365722e7861747472327861747472320300000000000000050066696c6531070000000000000007000000000000000a000000000000000a000000000000000000000000000000010000000000000000000000ed810000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70060700000000000000260000000000000000000000002f746d702f73797a2d696d61676567656e3539333133373236362f66696c65302f66696c65300300000000000000050066696c653107000000000000000700000000000000260000000000000026000000000000000000000000000000010000000000000000000000ffa10000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700607000000000000001a04000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616ce6ae64ec68e90fd00000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a007050000000000001000000000000017dcc36ce39a74d90af96db8bae08067204000000000000000a0000000000000009000000000000100000000000c60000400000000000930f0000080000000010100000000000c70040000000000000930f0000000000000060100000000000c700a03f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000010500000000000c700100000000000008b0f0000000000000030500000000000c700200000000000008b0f0000000000000080500000000000c700801800000000008b0f0000000000000000690000000000c60000190000000000830f0000080000000000690000000000c70000190000000000830f", 0x9c0, 0x506780}, {&(0x7f0000012f20)="0000000000000000010000000000000003000000000000000200000000000000730a5c124a77ed4f0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a008050000000000001000000000000017dcc36ce39a74d90af96db8bae080672050000000000000002000000000000000c000000000000100000000000c00000400000000000830f0000180000000010100000000000a90000000000000000620f0000210000000000500000000000c000001900000000004a0f0000180000000010500000000000a90000000000000000290f0000210000000030500000000000a90000000000000000080f0000210000000040500000000000a90000000000000000e70e0000210000000080500000000000a90000000000000000c60e0000210000000090500000000000a90000000000000000a50e00002100000000a0500000000000a90000000000000000840e00002100000000b0500000000000a90000000000000000630e00002100000000c0500000000000a90000000000000000420e0000210000000000690000000000c000001900000000002a0e0000180000000000690000000000c00000190000000000750e0000180000000000500000000000c00000190000000000f30e0000180000000060100000000000b00a00000000000000f30e0000000000000000500000000000c00000190000000000db0e00001800"/544, 0x220, 0x507fe0}, {&(0x7f0000013140)="000000000000000000000000000000000000000000000000010000000000000500000000000000010000000000000005000000000000000200000000000000b00900000000000000010000000000000005000000000000000200000000000000b0f7ffffffffffffff010000000000000005000000000000000200000000000000b00a00000000000000010000000000000005000000000000000200000000000000b00700000000000000010000000000000005000000000000000200000000000000b00200000000000000010000000000000005000000000000000200000000000000b00400000000000000010000000000000005000000000000000200000000000000b00100000000000000010000000000000005000000000000000200000000000000b00500000000000000008000000000000000010000000000000500000000000000010000000000000005000000000000000200000000000000b0030000000000000000100000000000000001000000000000020000000000000069a42bc7cd72dc6c0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a009050000000000001000000000000017dcc36ce39a74d90af96db8bae08067205000000000000000700000000000000", 0x1e0, 0x508e80}, {&(0x7f0000013320)="13676510faaea18a0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a00a050000000000001000000000000017dcc36ce39a74d90af96db8bae08067205000000000000000a000000000000000a000000000000100000000000c60000400000000000930f0000080000000000100000000000c70010000000000000930f0000000000000020100000000000c700e03f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000000500000000000c700100000000000008b0f0000000000000020500000000000c700100000000000008b0f0000000000000050500000000000c700300000000000008b0f00000000000000d0500000000000c700301800000000008b0f0000000000000000690000000000c60000190000000000830f0000080000000000690000000000c70000190000000000830f00000000000000", 0x160, 0x50a000}, {&(0x7f0000013480)="00000000000000000100000000000000040000000000000002000000000000004d7158f29a373c800000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a00b050000000000001000000000000017dcc36ce39a74d90af96db8bae0806720500000000000000f7ffffffffffffff02000000000001000000000000010000000000000000fb0e0000a000000000010000000000000c0001000000000000ef0e00000c00"/192, 0xc0, 0x50afe0}, {&(0x7f0000013540)="0000000000000000000000000000000000000000000000000000000002002e2e05000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f6300000000000000000000000000000000000000004fd788e81142d8d80000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a00c050000000000001000000000000017dcc36ce39a74d90af96db8bae0806720500000000000000090000000000000001000000005b77423558504acffba5895733d2a197e2930f0000080000000000", 0x140, 0x50bf40}, {&(0x7f0000013680)="0000000000000000000000000000000000000000000000000500000000000000", 0x20, 0x50cfe0}, {&(0x7f00000136a0)="f1ba4edecf6842a30000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a000051000000000001000000000000017dcc36ce39a74d90af96db8bae0806720700000000000000050000000000000014000000000001000000000000010000000000000000fb0e0000a000000000010000000000000c0001000000000000ef0e00000c0000000001000000000000544bae790400000000cc0e0000230000000001000000000000546b826b1100000000a50e000027000000000100000000000054bf5d291700000000820e000023000000000100000000000054bcde42e5000000005f0e000023000000000100000000000054482d12f6000000003c0e0000230000000001000000000000600200000000000000190e0000230000000001000000000000600300000000000000f60d0000230000000001000000000000600400000000000000d30d0000230000000001000000000000600500000000000000b00d0000230000000001000000000000600600000000000000890d0000270000000101000000000000010000000000000000e90c0000a000000001010000000000000c0001000000000000da0c00000f0000000101000000000000544bae790400000000b70c000023000000010100000000000054482d12f600000000940c0000230000000101000000000000600200000000000000710c00002300000001010000000000006003000000000000004e0c0000230000000201000000000000010000000000000000ae0b0000a000000002010000000000000c01010000000000009f0b00000f00"/608, 0x260, 0x510000}, {&(0x7f0000013900)="000000000200000000000000050066696c6530070000000000000007000000000000001a040000000000001a040000000000000000000000000000010000000000000000000000ed81000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700603010000000000000100000000000000000700000000000000000005000766696c653102010000000000000100000000000000000700000000000000000005000166696c653003010000000000000100000000000000000700000000000000000005000766696c653102010000000000000100000000000000000700000000000000000005000166696c65300200000000000000050066696c653007000000000000000700000000000000140000000000000000000000000000000000000000000000010000000000000000000000ed41000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f6300000000cd4f33066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f6300000000cd4f330606010000000000000100000000000000000700000000000000000009000166696c652e636f6c6405010000000000000100000000000000000700000000000000000005000166696c653305010000000000000100000000000000000700000000000000000005000166696c653204010000000000000100000000000000000700000000000000000005000166696c653101010000000000000100000000000000000700000000000000000005000266696c653004010000000000000100000000000000000700000000000000000005000166696c653105010000000000000100000000000000000700000000000000000005000166696c653205010000000000000100000000000000000700000000000000000005000166696c653306010000000000000100000000000000000700000000000000000009000166696c652e636f6c6401010000000000000100000000000000000700000000000000000005000266696c6530000000000000000002002e2e030000000000000007000000000000003a0000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f6300000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a7006691f1f630000000000000000781939a88dcc1e6f0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a001051000000000001000000000000017dcc36ce39a74d90af96db8bae080672070000000000000007000000000000000100000000f6ffffffffffffff8000d0500000000000830f0000180000000000", 0x480, 0x510c00}, {&(0x7f0000013d80)="0000000000000000dbbbd8326f9b86acdbbbd8326f9b86acdbbbd8326f9b86ac71ab2ad96ec669570000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a002051000000000001000000000000017dcc36ce39a74d90af96db8bae080672070000000000000002000000000000000f000000000000100000000000c00000400000000000830f0000180000000010100000000000a90000000000000000620f0000210000000000500000000000c000001900000000004a0f0000180000000030500000000000a90100000000000000290f0000210000000060500000000000a90000000000000000080f00002100000000b0500000000000a90000000000000000e70e00002100000000c0500000000000a90000000000000000c60e00002100000000d0500000000000a80030000000000000910e0000350000000000510000000000a90000000000000000700e0000210000000010510000000000a900000000000000004f0e0000210000000020510000000000a900000000000000002e0e0000210000000030510000000000a900000000000000000d0e0000210000000040510000000000a90000000000000000ec0d0000210000000050510000000000a90000000000000000cb0d0000210000000000690000000000c00000190000000000b30d00001800000000000000", 0x200, 0x511fe0}, {&(0x7f0000013f80)="00010000000000000500000000000000010000000000000007000000000000000200000000000000b00400000000000000010000000000000007000000000000000200000000000000b00100000000000000010000000000000007000000000000000200000000000000b00a00000000000000010000000000000007000000000000000200000000000000b00200000000000000010000000000000007000000000000000200000000000000b00700000000000000010000000000000007000000000000000200000000000000b00500000000000000010000000000000007000000000000000100000000000000b205000000000000000501000000000000000000000000000001000000010000000000000005000000000000000200000000000000b00900000000000000010000000000000005000000000000000200000000000000b0f7ffffffffffffff010000000000000007000000000000000200000000000000b00500000000000000010000000000000007000000000000000200000000000000b0050000000000000000d000000000000000010000000000000500000000000000010000000000000005000000000000000200000000000000b003000000000000000010000000000000000100000000000002000000000000007c1325170fc092c70000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a003051000000000001000000000000017dcc36ce39a74d90af96db8bae08067207000000000000000a000000000000000a000000000000100000000000c60000400000000000930f0000080000000000100000000000c70010000000000000930f0000000000000020100000000000c700e03f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000000500000000000c700300000000000008b0f0000000000000040500000000000c700200000000000008b0f0000000000000070500000000000c700400000000000008b0f0000000000000060510000000000c700a01700000000008b0f0000000000000000690000000000c60000190000000000830f0000080000000000690000000000c70000190000000000830f00000000000000", 0x340, 0x512e20}, {&(0x7f00000142c0)="0000000000000000010000000000000004000000000000000200000000000000779814fddb45739a0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a004051000000000001000000000000017dcc36ce39a74d90af96db8bae080672070000000000000001000000000000000b000000000200000000000000840000000000000000e40d0000b701000004000000000000008400000000000000002d0c0000b701000005000000000000000c06000000000000001c0c0000110000000500000000000000840000000000000000650a0000b70100000600000000000000010000000000000000c5090000a000000006000000000000000c0600000000000000b90900000c000000060000000000000054d2c2bf8d0000000094090000250000000700000000000000840000000000000000dd070000b7010000090000000000000084000000000000000026060000b70100000a000000000000008400000000000000006f040000b7010000f7ffffffffffffff840000000000000000b8020000b70100"/416, 0x1a0, 0x513fe0}, {&(0x7f0000014460)="00000000000000000000000000000000000000000000000000000000000500000000000000000100000000000000b0500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500"/128, 0x80, 0x5143a0}, {&(0x7f00000144e0)="000000000000000000000000000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x5144c0}, {&(0x7f0000014540)="0000000000000000000000000000000000000000070000000000000000000000000000000030510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700"/128, 0x80, 0x514560}, {&(0x7f00000145c0)="00000000000000000000000500000000000000000000000000000000c050000000000000000000000000000010000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000050000000000", 0x60, 0x514720}, {&(0x7f0000014620)="000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed410000000000000000", 0x40, 0x514840}, {&(0x7f0000014660)="0000070000000000000000000000000000000010510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700"/96, 0x60, 0x5148e0}, {&(0x7f00000146c0)="00000000000000000000000000000000000000000000000000050000000000000084ffffffffffffffff0000000000000000000007000264656661756c74000000000000000002002e2e03000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000691f1f63000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed41000000000000000000000000008000"/320, 0x140, 0x5149e0}, {&(0x7f0000014800)="000000000000000000000700000000000000000100000000000000305000000000000000000000000000003000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000107000000000000005b77423558504acfa5895733d2a197e2000000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000006b1f1f6300000000cef1f706691f1f6300"/224, 0xe0, 0x514b60}, {&(0x7f00000148e0)="000000000000000000070064656661756c7401000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x514c80}, {&(0x7f0000014940)="000000000000000000000000000000000000070000000000000000000000000000000050510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700"/128, 0x80, 0x514d20}, {&(0x7f00000149c0)="00000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100", 0x40, 0x514e40}, {&(0x7f0000014a00)="000000000000000000070000000000000000000000000000000020510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700000000000000", 0x60, 0x514ee0}, {&(0x7f0000014a60)="c71be4756a41863c0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a005051000000000001000000000000017dcc36ce39a74d90af96db8bae0806720700000000000000040000000000000004000000000000000000000000f90100000000000000730f0000280000000100000000000000cc0000100000000000430f0000300000000100000000000000cc0000500000000000130f0000300000000100000000000000cc0000690000000000e30e00003000"/224, 0xe0, 0x515000}, {&(0x7f0000014b40)="000000000000000003000000000000000001000000000000000069000000000000001900000000007dcc36ce39a74d90af96db8bae08067203000000000000000001000000000000000050000000000000001900000000007dcc36ce39a74d90af96db8bae08067203000000000000000001000000000000000010000000000000004000000000007dcc36ce39a74d90af96db8bae08067200000000000000000000000000000000000000000000000000000000000000000000000000000000bf7b323f686969450000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a006051000000000001000000000000017dcc36ce39a74d90af96db8bae080672080000000000000001000000000000000b000000000200000000000000840000000000000000e40d0000b701000004000000000000008400000000000000002d0c0000b701000005000000000000000c06000000000000001c0c0000110000000500000000000000840000000000000000650a0000b70100000600000000000000010000000000000000c5090000a000000006000000000000000c0600000000000000b90900000c000000060000000000000054d2c2bf8d0000000094090000250000000700000000000000840000000000000000dd070000b7010000090000000000000084000000000000000026060000b70100000a000000000000008400000000000000006f040000b7010000f7ffffffffffffff840000000000000000b8020000b70100"/576, 0x240, 0x515f40}, {&(0x7f0000014d80)="00000000000000000000000000000000000000000000000000000000000500000000000000000100000000000000b0500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500"/128, 0x80, 0x5163a0}, {&(0x7f0000014e00)="000000000000000000000000000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x5164c0}, {&(0x7f0000014e60)="0000000000000000000000000000000000000000080000000000000000000000000000000080510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000800"/128, 0x80, 0x516560}, {&(0x7f0000014ee0)="00000000000000000000000500000000000000000000000000000000c050000000000000000000000000000010000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000050000000000", 0x60, 0x516720}, {&(0x7f0000014f40)="000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed410000000000000000", 0x40, 0x516840}, {&(0x7f0000014f80)="0000070000000000000000000000000000000010510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700"/96, 0x60, 0x5168e0}, {&(0x7f0000014fe0)="00000000000000000000000000000000000000000000000000050000000000000084ffffffffffffffff0000000000000000000007000264656661756c74000000000000000002002e2e03000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000691f1f63000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed41000000000000000000000000008000"/320, 0x140, 0x5169e0}, {&(0x7f0000015120)="000000000000000000000700000000000000000100000000000000305000000000000000000000000000003000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000107000000000000005b77423558504acfa5895733d2a197e2000000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000006b1f1f6300000000cef1f706691f1f6300"/224, 0xe0, 0x516b60}, {&(0x7f0000015200)="000000000000000000070064656661756c7401000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x516c80}, {&(0x7f0000015260)="000000000000000000000000000000000000070000000000000000000000000000000050510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700"/128, 0x80, 0x516d20}, {&(0x7f00000152e0)="00000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100", 0x40, 0x516e40}, {&(0x7f0000015320)="000000000000000000080000000000000000000000000000000070510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000800000000000000", 0x60, 0x516ee0}, {&(0x7f0000015380)="133fe4c02499850c0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a007051000000000001000000000000017dcc36ce39a74d90af96db8bae080672080000000000000002000000000000000f000000000000100000000000c00000400000000000830f0000180000000010100000000000a90000000000000000620f0000210000000000500000000000c000001900000000004a0f0000180000000030500000000000a90100000000000000290f0000210000000060500000000000a90000000000000000080f00002100000000b0500000000000a90000000000000000e70e00002100000000c0500000000000a90000000000000000c60e00002100000000d0500000000000a80030000000000000910e0000350000000000510000000000a90000000000000000700e0000210000000010510000000000a900000000000000004f0e0000210000000050510000000000a900000000000000002e0e0000210000000060510000000000a900000000000000000d0e0000210000000070510000000000a90000000000000000ec0d0000210000000080510000000000a90000000000000000cb0d0000210000000000690000000000c00000190000000000b30d00001800000000000000", 0x1e0, 0x517000}, {&(0x7f0000015560)="00010000000000000500000000000000010000000000000008000000000000000200000000000000b00a00000000000000010000000000000008000000000000000200000000000000b00200000000000000010000000000000008000000000000000200000000000000b00100000000000000010000000000000007000000000000000200000000000000b00400000000000000010000000000000007000000000000000200000000000000b00700000000000000010000000000000007000000000000000200000000000000b00500000000000000010000000000000007000000000000000100000000000000b205000000000000000501000000000000000000000000000001000000010000000000000005000000000000000200000000000000b00900000000000000010000000000000005000000000000000200000000000000b0f7ffffffffffffff010000000000000007000000000000000200000000000000b00500000000000000010000000000000007000000000000000200000000000000b0050000000000000000d000000000000000010000000000000500000000000000010000000000000005000000000000000200000000000000b00300000000000000001000000000000000010000000000000200000000000000fd311dc77d4d84f50000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a008051000000000001000000000000017dcc36ce39a74d90af96db8bae08067208000000000000000a000000000000000b000000000000100000000000c60000400000000000930f0000080000000000100000000000c70010000000000000930f0000000000000020100000000000c700e03f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000000500000000000c700300000000000008b0f0000000000000040500000000000c700200000000000008b0f0000000000000070500000000000c700400000000000008b0f0000000000000020510000000000c700300000000000008b0f0000000000000090510000000000c700701700000000008b0f0000000000000000690000000000c60000190000000000830f0000080000000000690000000000c70000190000000000830f00"/864, 0x360, 0x517e20}, {&(0x7f00000158c0)="0000000000000000010000000000000005000000000000000200000000000000", 0x20, 0x518fe0}, {&(0x7f00000158e0)="e61215b2f291d0200000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a000069000000000001000000000000017dcc36ce39a74d90af96db8bae080672070000000000000005000000000000001b000000000001000000000000010000000000000000fb0e0000a000000000010000000000000c0001000000000000ef0e00000c0000000001000000000000544bae790400000000cc0e0000230000000001000000000000546b826b1100000000a50e000027000000000100000000000054bf5d291700000000820e000023000000000100000000000054bcde42e5000000005f0e000023000000000100000000000054482d12f6000000003c0e00002300000001010000000000000100000000000000009c0d0000a000000001010000000000000c00010000000000008d0d00000f0000000101000000000000544bae7904000000006a0d000023000000010100000000000054482d12f600000000470d0000230000000201000000000000010000000000000000a70c0000a000000002010000000000000c0101000000000000980c00000f00000002010000000000006c0000000000000000690800002f0400000301000000000000010000000000000000c9070000a000000003010000000000000c0101000000000000ba0700000f00000003010000000000006c00000000000000007f0700003b0000000401000000000000010000000000000000df060000a000000004010000000000000c0001000000000000d00600000f00000004010000000000001822a8f12600000000a10600002f000000040100000000000018d65ba13500000000720600002f00000004010000000000006c0000000000000000530600001f0000000501000000000000010000000000000000b3050000a000000005010000000000000c0001000000000000950500001e0000000601000000000000010000000000000000f5040000a000000006010000000000000c0001000000000000e20400001300000006010000000000006c0000000000000000690400007900"/800, 0x320, 0x690000}, {&(0x7f0000015c00)="000000000000000000000000000007000000000000006400000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c6572730600000000000000090066696c652e636f6c6407000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff810000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70060400000000000000050066696c65320500000000000000050066696c653307000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff81000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700607000000000000000a00000000000000000000000073797a6b616c6c6572730000000000000000000000000000000000070000000000000006000b0008757365722e7861747472317861747472310000000000000000000000000000000000070000000000000006000b0008757365722e7861747472327861747472320300000000000000050066696c653107000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff81000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70060700000000000000260000000000000000000000002f746d702f73797a2d696d61676567656e3539333133373236362f66696c65302f66696c65300300000000000000050066696c653107000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ffa10000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700607000000000000001a04000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c0200000000000000050066696c653007000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff81000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700603010000000000000100000000000000000700000000000000000005000766696c653102010000000000000100000000000000000700000000000000000005000166696c65300200000000000000050066696c653007000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff41000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f6300000000cd4f33066b1f1f6300000000cd4f33066b1f1f6300000000cd4f33066b1f1f6300000000cd4f330604010000000000000100000000000000000700000000000000000005000166696c653105010000000000000100000000000000000700000000000000000005000166696c653205010000000000000100000000000000000700000000000000000005000166696c653306010000000000000100000000000000000700000000000000000009000166696c652e636f6c6401010000000000000100000000000000000700000000000000000005000266696c6530000000000000000002002e2e03000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000", 0xb40, 0x6904c0}], 0x0, &(0x7f0000016740), 0x1) sync() ioctl$EXT4_IOC_PRECACHE_EXTENTS(0xffffffffffffffff, 0x6612) sync() sync() sync() sync() sync() r0 = open(&(0x7f0000000a40)='./bus\x00', 0x141a42, 0x0) r1 = openat(0xffffffffffffffff, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) open(0x0, 0x0, 0x0) sync() sendfile(r0, r1, 0x0, 0x80001d00c0d0) rename(&(0x7f0000000040)='./bus\x00', &(0x7f0000000080)='./file0/file0\x00') sync() open(0x0, 0x14d27e, 0x0) ioctl$AUTOFS_DEV_IOCTL_OPENMOUNT(0xffffffffffffffff, 0xc0189374, &(0x7f0000000ac0)=ANY=[@ANYBLOB="f4006e3e"]) sync() mmap(&(0x7f0000000000/0x600000)=nil, 0x600000, 0x27fffff, 0x4002011, 0xffffffffffffffff, 0x0) [ 239.124634][ T3997] loop2: detected capacity change from 0 to 1 [ 239.164990][ T3854] I/O error, dev loop2, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2 [ 239.183493][ T4000] loop1: detected capacity change from 0 to 32768 [ 239.219877][ T3997] loop2: [ICS] p1 p2 [ 239.229399][ T4000] BTRFS warning: duplicate device /dev/loop1 devid 1 generation 8 scanned by syz-executor.1 (4000) [ 239.250048][ T3997] loop2: partition table partially beyond EOD, truncated [ 239.282243][ T3691] BTRFS warning: duplicate device /dev/loop1 devid 1 generation 8 scanned by udevd (3691) [ 239.284330][ T3997] loop2: p1 start 4188764746 is beyond EOD, truncated [ 239.396979][ T3997] loop2: p2 start 444464470 is beyond EOD, truncated 19:51:23 executing program 0: syz_mount_image$btrfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x1000000, 0x4f, &(0x7f0000000200)=[{&(0x7f0000010000)="d2eacf4f98a4345f0000000000000800000000000000000003000000000000008ff932b8f4e44b03aed6d7e5736fd60a000001000000000001000000000000005f42485266535f4d08000000000000000060510000000000001010000000000000000000000000000000000000000000000000010000000000e0000000000000060000000000000001000000000000000010000000100000001000000010000061000000050000000000000000000000000000000300000000000000450300000000000001000000000100000000000000000000010000000000007200000000000010000000100000001000000000000000000000000000000000000000000000000000000000000000007981baa6901349f18e09e692cd2866218ff932b8f4e44b03aed6d7e5736fd60a00"/320, 0x140, 0x10000}, {&(0x7f0000010140)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00'/32, 0x20, 0x10220}, {&(0x7f0000010160)="00000000000000000000000001000000000000e40000100000000000000040000000000002000000000000000000010000000000020000000000000000100000001000000010000001000000010000000000000000001000000000007981baa6901349f18e09e692cd28662100"/128, 0x80, 0x10320}, {&(0x7f00000101e0)="0000000000000000000000003050000000000005000000000000000010100000000000050000000000000000805000000000000500000000000000001050000000000005000000000000000040500000000000050000000000000000905000000000000500000000000000000000010000000000900000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000000000006000000000000000010100000000000050000000000000000205000000000000600000000000000001050000000000005000000000000000040500000000000050000000000000000905000000000000500000000000000000000010000000000900000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004051000000000007000000000000000010100000000000050000000000000000205100000000000700000000000000003050000000000007000000000000000050510000000000070000000000000000105100000000000700000000000000000000010000000000e00000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000006051000000000008000000000000000010100000000000050000000000000000705100000000000800000000000000003050000000000007000000000000000050510000000000070000000000000000105100000000000700000000000000000000010000000000e0000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000100", 0x2a0, 0x10b20}, {&(0x7f0000010480)="2ac4149354208c3b0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a000010000000000001000000000000017dcc36ce39a74d90af96db8bae0806720300000000000000030000000000000004000000000100000000000000d80100000000000000390f0000620000000001000000000000e40000100000000000e90e0000500000000001000000000000e40000500000000000990e0000500000000001000000000000e40000690000000000490e00005000"/224, 0xe0, 0x100000}, {&(0x7f0000010560)="0000000000000000000000000000000019000000000002000000000000000000010000000000050000000000000000000100000001000010000001000100010000000000000000006900000000007981baa6901349f18e09e692cd286621000019000000000002000000000000000000010000000000050000000000000000000100000001000010000001000100010000000000000000005000000000007981baa6901349f18e09e692cd286621000040000000000002000000000000000000010000000000020000000000000000100000001000000010000001000000010000000000000000001000000000007981baa6901349f18e09e692cd2866210100000000000000000000010000000000007200000000000010000000100000001000000000000000000000000000000000000000000000000000000000000000007981baa6901349f18e09e692cd2866218ff932b8f4e44b03aed6d7e5736fd60a272f3e00707ea5880000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a001010000000000001000000000000017dcc36ce39a74d90af96db8bae0806720500000000000000030000000000000004000000000100000000000000d80100000000000000390f0000620000000001000000000000e40000100000000000e90e0000500000000001000000000000e40000500000000000990e0000500000000001000000000000e40000690000000000490e00005000"/576, 0x240, 0x100ea0}, {&(0x7f00000107a0)="0000000000000000000000000000000019000000000002000000000000000000010000000000050000000000000000000100000001000010000001000100010000000000000000006900000000007981baa6901349f18e09e692cd286621000019000000000002000000000000000000010000000000050000000000000000000100000001000010000001000100010000000000000000005000000000007981baa6901349f18e09e692cd286621000040000000000002000000000000000000010000000000020000000000000000100000001000000010000001000000010000000000000000001000000000007981baa6901349f18e09e692cd2866210100000000000000000000010000000000007200000000000010000000100000001000000000000000000000000000000000000000000000000000000000000000007981baa6901349f18e09e692cd2866218ff932b8f4e44b03aed6d7e5736fd60ac5e886221dbd54bb0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a002010000000000000000000000000017dcc36ce39a74d90af96db8bae0806720100000000000000030000000000000002000000000100000000000000d80100000000000000390f0000620000000001000000000000e40000100000000000e90e00005000"/512, 0x200, 0x101ea0}, {&(0x7f00000109a0)="0000000000000000000000000000000040000000000002000000000000000000010000000000020000000000000000100000001000000010000001000000010000000000000000001000000000007981baa6901349f18e09e692cd2866210100000000000000000000010000000000004000000000000010000000100000001000000000000000000000000000000000000000000000000000000000000000007981baa6901349f18e09e692cd2866218ff932b8f4e44b03aed6d7e5736fd60a71ef875904a1ca660000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a003010000000000000000000000000017dcc36ce39a74d90af96db8bae0806720100000000000000040000000000000001000000000100000000000000cc00001000000000006b0f0000300000000000", 0x140, 0x102f40}, {&(0x7f0000010ae0)="0000000000000000000000000000000003000000000000000001000000000000000010000000000000004000000000007dcc36ce39a74d90af96db8bae0806725490e3d81cd63c0f0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a004010000000000000000000000000017dcc36ce39a74d90af96db8bae08067201000000000000000500000000000000", 0xa0, 0x103fc0}, {&(0x7f0000010b80)="cb0d168929f3f7d40000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a005010000000000000000000000000017dcc36ce39a74d90af96db8bae08067201000000000000000700000000000000", 0x60, 0x105000}, {&(0x7f0000010be0)="ef3392afacf603fb0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a006010000000000000000000000000017dcc36ce39a74d90af96db8bae08067201000000000000000a0000000000000002000000000000100000000000c60000400000000000930f0000080000000070100000000000c700903f0000000000930f00"/160, 0xa0, 0x106000}, {&(0x7f0000010c80)="0000000000000000000000000000000000000000000000000100000000000000036d53e20cf6870c0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a007010000000000001000000000000017dcc36ce39a74d90af96db8bae0806720200000000000000040000000000000002000000000100000000000000cc00001000000000006b0f0000300000000100000000000000cc00005000000000003b0f00003000"/192, 0xc0, 0x106fe0}, {&(0x7f0000010d40)="03000000000000000001000000000000000050000000000000001900000000007dcc36ce39a74d90af96db8bae08067203000000000000000001000000000000000010000000000000004000000000007dcc36ce39a74d90af96db8bae08067261bd69a63561c6770000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a008010000000000001000000000000017dcc36ce39a74d90af96db8bae0806720200000000000000030000000000000003000000000100000000000000d80100000000000000390f0000620000000001000000000000e40000100000000000e90e0000500000000001000000000000e40000500000000000990e00005000"/288, 0x120, 0x107fa0}, {&(0x7f0000010e60)="19000000000002000000000000000000010000000000050000000000000000000100000001000010000001000100010000000000000000005000000000007981baa6901349f18e09e692cd286621000040000000000002000000000000000000010000000000020000000000000000100000001000000010000001000000010000000000000000001000000000007981baa6901349f18e09e692cd2866210100000000000000000000010000000000005900000000000010000000100000001000000000000000000000000000000000000000000000000000000000000000007981baa6901349f18e09e692cd2866218ff932b8f4e44b03aed6d7e5736fd60abbe4da89cc7169bb0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a009010000000000001000000000000017dcc36ce39a74d90af96db8bae080672020000000000000002000000000000000b000000000000100000000000c00000400000000000830f0000180000000040100000000000a900000000000000006b0f0000180000000040100000000000b005000000000000006b0f0000000000000050100000000000a90000000000000000530f0000180000000050100000000000b00700000000000000530f0000000000000070100000000000a90000000000000000320f0000210000000080100000000000a90000000000000000110f0000210000000090100000000000a90000000000000000f00e00002100000000a0100000000000a90000000000000000cf0e0000210000000000500000000000a90000000000000000ae0e0000210000000000500000000000c00000190000000000960e0000180000000000500000000000c00000190000000000b70e0000180000000060100000000000b00a000000000000000b0f0000000000000000500000000000c00000190000000000f30e0000180000000060100000000000b00a00000000000000f30e0000000000000000500000000000c00000190000000000db0e00001800"/768, 0x300, 0x108f00}, {&(0x7f0000011160)="000000000000000000000000000000000000000000000000000000001000000000000000010000000000000500000000000000010000000000000002000000000000000200000000000000b00100000000000000010000000000000002000000000000000200000000000000b00a00000000000000010000000000000002000000000000000200000000000000b00200000000000000010000000000000002000000000000000200000000000000b00300000000000000010000000000000002000000000000000200000000000000b004000000000000000100000000000000010000000000000002000000000000000100000000000000010000000000000002000000000000000060000000000000000100000000000002000000000000001bc0f432deb6a4810000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a00a010000000000001000000000000017dcc36ce39a74d90af96db8bae08067202000000000000000a0000000000000006000000000000100000000000c60000400000000000930f0000080000000000100000000000c70040000000000000930f0000000000000060100000000000c70010000000000000930f00000000000000b0100000000000c700503f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000010500000000000c700f01800000000008b0f00"/544, 0x220, 0x109ee0}, {&(0x7f0000011380)="0000000000000000000000000000000001000000000000000300000000000000", 0x20, 0x10afe0}, {&(0x7f00000113a0)="a566b5eb15642b400000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a000050000000000001000000000000017dcc36ce39a74d90af96db8bae080672060000000000000001000000000000000b000000000200000000000000840000000000000000e40d0000b701000004000000000000008400000000000000002d0c0000b701000005000000000000000c06000000000000001c0c0000110000000500000000000000840000000000000000650a0000b70100000600000000000000010000000000000000c5090000a000000006000000000000000c0600000000000000b90900000c000000060000000000000054d2c2bf8d0000000094090000250000000700000000000000840000000000000000dd070000b7010000090000000000000084000000000000000026060000b70100000a000000000000008400000000000000006f040000b7010000f7ffffffffffffff840000000000000000b8020000b70100"/384, 0x180, 0x500000}, {&(0x7f0000011520)="00000000000000000000000000000000000000000000000000000000000500000000000000000100000000000000b0500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500"/128, 0x80, 0x5003a0}, {&(0x7f00000115a0)="000000000000000000000000000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x5004c0}, {&(0x7f0000011600)="0000000000000000000000000000000000000000060000000000000000000000000000000050500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600"/128, 0x80, 0x500560}, {&(0x7f0000011680)="00000000000000000000000500000000000000000000000000000000c050000000000000000000000000000010000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000050000000000", 0x60, 0x500720}, {&(0x7f00000116e0)="000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed410000000000000000", 0x40, 0x500840}, {&(0x7f0000011720)="0000050000000000000000000000000000000090500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500"/96, 0x60, 0x5008e0}, {&(0x7f0000011780)="00000000000000000000000000000000000000000000000000050000000000000084ffffffffffffffff0000000000000000000007000264656661756c74000000000000000002002e2e03000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000691f1f63000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed41", 0x120, 0x5009e0}, {&(0x7f00000118a0)="000000000000000000000500000000000000000100000000000000105000000000000000000000000000001000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000005000000000000005b77423558504acfa5895733d2a197e200"/128, 0x80, 0x500b60}, {&(0x7f0000011920)="0000000000000000000000000000000000691f1f630000000000000000691f1f6300"/64, 0x40, 0x500c00}, {&(0x7f0000011960)="000000000000000000070064656661756c7401000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x500c80}, {&(0x7f00000119c0)="000000000000000000000000000000000000050000000000000000000000000000000040500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500"/128, 0x80, 0x500d20}, {&(0x7f0000011a40)="00000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100", 0x40, 0x500e40}, {&(0x7f0000011a80)="000000000000000000060000000000000000000000000000000020500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600000000000000", 0x60, 0x500ee0}, {&(0x7f0000011ae0)="ffa75718c036c1b30000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a001050000000000001000000000000017dcc36ce39a74d90af96db8bae0806720500000000000000050000000000000002000000000001000000000000010000000000000000fb0e0000a000000000010000000000000c0001000000000000ef0e00000c00"/160, 0xa0, 0x501000}, {&(0x7f0000011b80)="0000000000000000000000000000000000000000000000000000000002002e2e03000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000d166d354650390dd0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a002050000000000001000000000000017dcc36ce39a74d90af96db8bae080672060000000000000002000000000000000c000000000000100000000000c00000400000000000830f0000180000000010100000000000a90000000000000000620f0000210000000000500000000000a90000000000000000410f0000210000000000500000000000c00000190000000000290f0000180000000010500000000000a90000000000000000080f0000210000000020500000000000a90000000000000000e70e0000210000000040500000000000a90000000000000000c60e0000210000000050500000000000a90000000000000000a50e0000210000000090500000000000a90000000000000000840e00002100000000b0500000000000a90000000000000000630e00002100000000c0500000000000a90000000000000000420e0000210000000000690000000000c000001900000000002a0e0000180000000000690000000000c000001900000000002a0e0000180000000000690000000000c00000190000000000090e0000180000000060100000000000b00a00000000000000f30e0000000000000000500000000000c00000190000000000db0e00001800"/704, 0x2c0, 0x501f40}, {&(0x7f0000011e40)="00000000000000000000000000000000000000000000010000000000000500000000000000010000000000000005000000000000000000010000000000000500000000000000010000000000000005000000000000000000010000000000000500000000000000010000000000000005000000000000000200000000000000b00900000000000000010000000000000005000000000000000200000000000000b0f7ffffffffffffff010000000000000005000000000000000200000000000000b00700000000000000010000000000000006000000000000000200000000000000b00a00000000000000010000000000000005000000000000000200000000000000b00400000000000000010000000000000006000000000000000200000000000000b00200000000000000010000000000000005000000000000000200000000000000b00500000000000000008000000000000000010000000000000500000000000000010000000000000006000000000000000200000000000000b00100000000000000010000000000000005000000000000000200000000000000b00300000000000000001000000000000000010000000000000200000000000000561ffdbba2c02c6f0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a003050000000000001000000000000017dcc36ce39a74d90af96db8bae08067207000000000000000500000000000000020000000100010000000000000100000000000000000000510000000000070000000000000002010000000000006c0000000000000000006050000000000007", 0x260, 0x502e40}, {&(0x7f00000120a0)="09f0093dd1c52aff0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a004050000000000001000000000000017dcc36ce39a74d90af96db8bae0806720500000000000000040000000000000003000000000100000000000000cc00001000000000006b0f0000300000000100000000000000cc00005000000000003b0f0000300000000100000000000000cc00006900000000000b0f00003000"/192, 0xc0, 0x504000}, {&(0x7f0000012160)="0000000000000000000000000000000003000000000000000001000000000000000069000000000000001900000000007dcc36ce39a74d90af96db8bae08067203000000000000000001000000000000000050000000000000001900000000007dcc36ce39a74d90af96db8bae08067203000000000000000001000000000000000010000000000000004000000000007dcc36ce39a74d90af96db8bae080672b48545bd355ae8ff0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a005050000000000001000000000000017dcc36ce39a74d90af96db8bae08067206000000000000000a000000000000000a000000000000100000000000c60000400000000000930f0000080000000000100000000000c70010000000000000930f0000000000000020100000000000c700e03f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000030500000000000c700100000000000008b0f0000000000000060500000000000c700300000000000008b0f00000000000000a0500000000000c700100000000000008b0f00000000000000d0500000000000c700301800000000008b0f0000000000000000690000000000c60000190000000000830f0000080000000000690000000000c70000190000000000830f00000000000000", 0x200, 0x504f60}, {&(0x7f0000012360)="0000000000000000010000000000000004000000000000000200000000000000a22ac3de03de158c0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a006050000000000001000000000000017dcc36ce39a74d90af96db8bae080672070000000000000005000000000000000f0000000002010000000000006c00000000000000006c0b00002f0400000301000000000000010000000000000000cc0a0000a000000003010000000000000c0101000000000000bd0a00000f00000003010000000000006c0000000000000000820a00003b0000000401000000000000010000000000000000e2090000a000000004010000000000000c0001000000000000d30900000f00000004010000000000001822a8f12600000000a40900002f000000040100000000000018d65ba13500000000750900002f00000004010000000000006c0000000000000000560900001f0000000501000000000000010000000000000000b6080000a000000005010000000000000c0001000000000000980800001e00000005010000000000006c000000000000000063080000350000000601000000000000010000000000000000c3070000a000000006010000000000000c0001000000000000b00700001300000006010000000000006c0000000000000000370700007900000000000000", 0x200, 0x505fe0}, {&(0x7f0000012560)="0000000000000000000000000000000000000000000000000000000007000000000000006400000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c6572730600000000000000090066696c652e636f6c6407000000000000000700000000000000640000000000000064000000000000000000000000000000010000000000000000000000ed810000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700607000000000000000030000000000000000000000100d05000000000000030000000000000000000000000000000300000000000000400000000000000050066696c65320500000000000000050066696c653307000000000000000700000000000000282300000000000000300000000000000000000000000000020000000000000000000000ed810000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700607000000000000000a00000000000000000000000073797a6b616c6c6572730000000000000000000000000000000000070000000000000006000b0008757365722e7861747472317861747472310000000000000000000000000000000000070000000000000006000b0008757365722e7861747472327861747472320300000000000000050066696c6531070000000000000007000000000000000a000000000000000a000000000000000000000000000000010000000000000000000000ed810000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70060700000000000000260000000000000000000000002f746d702f73797a2d696d61676567656e3539333133373236362f66696c65302f66696c65300300000000000000050066696c653107000000000000000700000000000000260000000000000026000000000000000000000000000000010000000000000000000000ffa10000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700607000000000000001a04000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616ce6ae64ec68e90fd00000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a007050000000000001000000000000017dcc36ce39a74d90af96db8bae08067204000000000000000a0000000000000009000000000000100000000000c60000400000000000930f0000080000000010100000000000c70040000000000000930f0000000000000060100000000000c700a03f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000010500000000000c700100000000000008b0f0000000000000030500000000000c700200000000000008b0f0000000000000080500000000000c700801800000000008b0f0000000000000000690000000000c60000190000000000830f0000080000000000690000000000c70000190000000000830f", 0x9c0, 0x506780}, {&(0x7f0000012f20)="0000000000000000010000000000000003000000000000000200000000000000730a5c124a77ed4f0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a008050000000000001000000000000017dcc36ce39a74d90af96db8bae080672050000000000000002000000000000000c000000000000100000000000c00000400000000000830f0000180000000010100000000000a90000000000000000620f0000210000000000500000000000c000001900000000004a0f0000180000000010500000000000a90000000000000000290f0000210000000030500000000000a90000000000000000080f0000210000000040500000000000a90000000000000000e70e0000210000000080500000000000a90000000000000000c60e0000210000000090500000000000a90000000000000000a50e00002100000000a0500000000000a90000000000000000840e00002100000000b0500000000000a90000000000000000630e00002100000000c0500000000000a90000000000000000420e0000210000000000690000000000c000001900000000002a0e0000180000000000690000000000c00000190000000000750e0000180000000000500000000000c00000190000000000f30e0000180000000060100000000000b00a00000000000000f30e0000000000000000500000000000c00000190000000000db0e00001800"/544, 0x220, 0x507fe0}, {&(0x7f0000013140)="000000000000000000000000000000000000000000000000010000000000000500000000000000010000000000000005000000000000000200000000000000b00900000000000000010000000000000005000000000000000200000000000000b0f7ffffffffffffff010000000000000005000000000000000200000000000000b00a00000000000000010000000000000005000000000000000200000000000000b00700000000000000010000000000000005000000000000000200000000000000b00200000000000000010000000000000005000000000000000200000000000000b00400000000000000010000000000000005000000000000000200000000000000b00100000000000000010000000000000005000000000000000200000000000000b00500000000000000008000000000000000010000000000000500000000000000010000000000000005000000000000000200000000000000b0030000000000000000100000000000000001000000000000020000000000000069a42bc7cd72dc6c0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a009050000000000001000000000000017dcc36ce39a74d90af96db8bae08067205000000000000000700000000000000", 0x1e0, 0x508e80}, {&(0x7f0000013320)="13676510faaea18a0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a00a050000000000001000000000000017dcc36ce39a74d90af96db8bae08067205000000000000000a000000000000000a000000000000100000000000c60000400000000000930f0000080000000000100000000000c70010000000000000930f0000000000000020100000000000c700e03f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000000500000000000c700100000000000008b0f0000000000000020500000000000c700100000000000008b0f0000000000000050500000000000c700300000000000008b0f00000000000000d0500000000000c700301800000000008b0f0000000000000000690000000000c60000190000000000830f0000080000000000690000000000c70000190000000000830f00000000000000", 0x160, 0x50a000}, {&(0x7f0000013480)="00000000000000000100000000000000040000000000000002000000000000004d7158f29a373c800000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a00b050000000000001000000000000017dcc36ce39a74d90af96db8bae0806720500000000000000f7ffffffffffffff02000000000001000000000000010000000000000000fb0e0000a000000000010000000000000c0001000000000000ef0e00000c00"/192, 0xc0, 0x50afe0}, {&(0x7f0000013540)="0000000000000000000000000000000000000000000000000000000002002e2e05000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f6300000000000000000000000000000000000000004fd788e81142d8d80000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a00c050000000000001000000000000017dcc36ce39a74d90af96db8bae0806720500000000000000090000000000000001000000005b77423558504acffba5895733d2a197e2930f0000080000000000", 0x140, 0x50bf40}, {&(0x7f0000013680)="0000000000000000000000000000000000000000000000000500000000000000", 0x20, 0x50cfe0}, {&(0x7f00000136a0)="f1ba4edecf6842a30000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a000051000000000001000000000000017dcc36ce39a74d90af96db8bae0806720700000000000000050000000000000014000000000001000000000000010000000000000000fb0e0000a000000000010000000000000c0001000000000000ef0e00000c0000000001000000000000544bae790400000000cc0e0000230000000001000000000000546b826b1100000000a50e000027000000000100000000000054bf5d291700000000820e000023000000000100000000000054bcde42e5000000005f0e000023000000000100000000000054482d12f6000000003c0e0000230000000001000000000000600200000000000000190e0000230000000001000000000000600300000000000000f60d0000230000000001000000000000600400000000000000d30d0000230000000001000000000000600500000000000000b00d0000230000000001000000000000600600000000000000890d0000270000000101000000000000010000000000000000e90c0000a000000001010000000000000c0001000000000000da0c00000f0000000101000000000000544bae790400000000b70c000023000000010100000000000054482d12f600000000940c0000230000000101000000000000600200000000000000710c00002300000001010000000000006003000000000000004e0c0000230000000201000000000000010000000000000000ae0b0000a000000002010000000000000c01010000000000009f0b00000f00"/608, 0x260, 0x510000}, {&(0x7f0000013900)="000000000200000000000000050066696c6530070000000000000007000000000000001a040000000000001a040000000000000000000000000000010000000000000000000000ed81000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700603010000000000000100000000000000000700000000000000000005000766696c653102010000000000000100000000000000000700000000000000000005000166696c653003010000000000000100000000000000000700000000000000000005000766696c653102010000000000000100000000000000000700000000000000000005000166696c65300200000000000000050066696c653007000000000000000700000000000000140000000000000000000000000000000000000000000000010000000000000000000000ed41000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f6300000000cd4f33066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f6300000000cd4f330606010000000000000100000000000000000700000000000000000009000166696c652e636f6c6405010000000000000100000000000000000700000000000000000005000166696c653305010000000000000100000000000000000700000000000000000005000166696c653204010000000000000100000000000000000700000000000000000005000166696c653101010000000000000100000000000000000700000000000000000005000266696c653004010000000000000100000000000000000700000000000000000005000166696c653105010000000000000100000000000000000700000000000000000005000166696c653205010000000000000100000000000000000700000000000000000005000166696c653306010000000000000100000000000000000700000000000000000009000166696c652e636f6c6401010000000000000100000000000000000700000000000000000005000266696c6530000000000000000002002e2e030000000000000007000000000000003a0000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f6300000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a7006691f1f630000000000000000781939a88dcc1e6f0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a001051000000000001000000000000017dcc36ce39a74d90af96db8bae080672070000000000000007000000000000000100000000f6ffffffffffffff8000d0500000000000830f0000180000000000", 0x480, 0x510c00}, {&(0x7f0000013d80)="0000000000000000dbbbd8326f9b86acdbbbd8326f9b86acdbbbd8326f9b86ac71ab2ad96ec669570000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a002051000000000001000000000000017dcc36ce39a74d90af96db8bae080672070000000000000002000000000000000f000000000000100000000000c00000400000000000830f0000180000000010100000000000a90000000000000000620f0000210000000000500000000000c000001900000000004a0f0000180000000030500000000000a90100000000000000290f0000210000000060500000000000a90000000000000000080f00002100000000b0500000000000a90000000000000000e70e00002100000000c0500000000000a90000000000000000c60e00002100000000d0500000000000a80030000000000000910e0000350000000000510000000000a90000000000000000700e0000210000000010510000000000a900000000000000004f0e0000210000000020510000000000a900000000000000002e0e0000210000000030510000000000a900000000000000000d0e0000210000000040510000000000a90000000000000000ec0d0000210000000050510000000000a90000000000000000cb0d0000210000000000690000000000c00000190000000000b30d00001800000000000000", 0x200, 0x511fe0}, {&(0x7f0000013f80)="00010000000000000500000000000000010000000000000007000000000000000200000000000000b00400000000000000010000000000000007000000000000000200000000000000b00100000000000000010000000000000007000000000000000200000000000000b00a00000000000000010000000000000007000000000000000200000000000000b00200000000000000010000000000000007000000000000000200000000000000b00700000000000000010000000000000007000000000000000200000000000000b00500000000000000010000000000000007000000000000000100000000000000b205000000000000000501000000000000000000000000000001000000010000000000000005000000000000000200000000000000b00900000000000000010000000000000005000000000000000200000000000000b0f7ffffffffffffff010000000000000007000000000000000200000000000000b00500000000000000010000000000000007000000000000000200000000000000b0050000000000000000d000000000000000010000000000000500000000000000010000000000000005000000000000000200000000000000b003000000000000000010000000000000000100000000000002000000000000007c1325170fc092c70000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a003051000000000001000000000000017dcc36ce39a74d90af96db8bae08067207000000000000000a000000000000000a000000000000100000000000c60000400000000000930f0000080000000000100000000000c70010000000000000930f0000000000000020100000000000c700e03f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000000500000000000c700300000000000008b0f0000000000000040500000000000c700200000000000008b0f0000000000000070500000000000c700400000000000008b0f0000000000000060510000000000c700a01700000000008b0f0000000000000000690000000000c60000190000000000830f0000080000000000690000000000c70000190000000000830f00000000000000", 0x340, 0x512e20}, {&(0x7f00000142c0)="0000000000000000010000000000000004000000000000000200000000000000779814fddb45739a0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a004051000000000001000000000000017dcc36ce39a74d90af96db8bae080672070000000000000001000000000000000b000000000200000000000000840000000000000000e40d0000b701000004000000000000008400000000000000002d0c0000b701000005000000000000000c06000000000000001c0c0000110000000500000000000000840000000000000000650a0000b70100000600000000000000010000000000000000c5090000a000000006000000000000000c0600000000000000b90900000c000000060000000000000054d2c2bf8d0000000094090000250000000700000000000000840000000000000000dd070000b7010000090000000000000084000000000000000026060000b70100000a000000000000008400000000000000006f040000b7010000f7ffffffffffffff840000000000000000b8020000b70100"/416, 0x1a0, 0x513fe0}, {&(0x7f0000014460)="00000000000000000000000000000000000000000000000000000000000500000000000000000100000000000000b0500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500"/128, 0x80, 0x5143a0}, {&(0x7f00000144e0)="000000000000000000000000000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x5144c0}, {&(0x7f0000014540)="0000000000000000000000000000000000000000070000000000000000000000000000000030510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700"/128, 0x80, 0x514560}, {&(0x7f00000145c0)="00000000000000000000000500000000000000000000000000000000c050000000000000000000000000000010000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000050000000000", 0x60, 0x514720}, {&(0x7f0000014620)="000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed410000000000000000", 0x40, 0x514840}, {&(0x7f0000014660)="0000070000000000000000000000000000000010510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700"/96, 0x60, 0x5148e0}, {&(0x7f00000146c0)="00000000000000000000000000000000000000000000000000050000000000000084ffffffffffffffff0000000000000000000007000264656661756c74000000000000000002002e2e03000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000691f1f63000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed41000000000000000000000000008000"/320, 0x140, 0x5149e0}, {&(0x7f0000014800)="000000000000000000000700000000000000000100000000000000305000000000000000000000000000003000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000107000000000000005b77423558504acfa5895733d2a197e2000000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000006b1f1f6300000000cef1f706691f1f6300"/224, 0xe0, 0x514b60}, {&(0x7f00000148e0)="000000000000000000070064656661756c7401000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x514c80}, {&(0x7f0000014940)="000000000000000000000000000000000000070000000000000000000000000000000050510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700"/128, 0x80, 0x514d20}, {&(0x7f00000149c0)="00000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100", 0x40, 0x514e40}, {&(0x7f0000014a00)="000000000000000000070000000000000000000000000000000020510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700000000000000", 0x60, 0x514ee0}, {&(0x7f0000014a60)="c71be4756a41863c0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a005051000000000001000000000000017dcc36ce39a74d90af96db8bae0806720700000000000000040000000000000004000000000000000000000000f90100000000000000730f0000280000000100000000000000cc0000100000000000430f0000300000000100000000000000cc0000500000000000130f0000300000000100000000000000cc0000690000000000e30e00003000"/224, 0xe0, 0x515000}, {&(0x7f0000014b40)="000000000000000003000000000000000001000000000000000069000000000000001900000000007dcc36ce39a74d90af96db8bae08067203000000000000000001000000000000000050000000000000001900000000007dcc36ce39a74d90af96db8bae08067203000000000000000001000000000000000010000000000000004000000000007dcc36ce39a74d90af96db8bae08067200000000000000000000000000000000000000000000000000000000000000000000000000000000bf7b323f686969450000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a006051000000000001000000000000017dcc36ce39a74d90af96db8bae080672080000000000000001000000000000000b000000000200000000000000840000000000000000e40d0000b701000004000000000000008400000000000000002d0c0000b701000005000000000000000c06000000000000001c0c0000110000000500000000000000840000000000000000650a0000b70100000600000000000000010000000000000000c5090000a000000006000000000000000c0600000000000000b90900000c000000060000000000000054d2c2bf8d0000000094090000250000000700000000000000840000000000000000dd070000b7010000090000000000000084000000000000000026060000b70100000a000000000000008400000000000000006f040000b7010000f7ffffffffffffff840000000000000000b8020000b70100"/576, 0x240, 0x515f40}, {&(0x7f0000014d80)="00000000000000000000000000000000000000000000000000000000000500000000000000000100000000000000b0500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500"/128, 0x80, 0x5163a0}, {&(0x7f0000014e00)="000000000000000000000000000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x5164c0}, {&(0x7f0000014e60)="0000000000000000000000000000000000000000080000000000000000000000000000000080510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000800"/128, 0x80, 0x516560}, {&(0x7f0000014ee0)="00000000000000000000000500000000000000000000000000000000c050000000000000000000000000000010000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000050000000000", 0x60, 0x516720}, {&(0x7f0000014f40)="000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed410000000000000000", 0x40, 0x516840}, {&(0x7f0000014f80)="0000070000000000000000000000000000000010510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700"/96, 0x60, 0x5168e0}, {&(0x7f0000014fe0)="00000000000000000000000000000000000000000000000000050000000000000084ffffffffffffffff0000000000000000000007000264656661756c74000000000000000002002e2e03000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000691f1f63000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed41000000000000000000000000008000"/320, 0x140, 0x5169e0}, {&(0x7f0000015120)="000000000000000000000700000000000000000100000000000000305000000000000000000000000000003000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000107000000000000005b77423558504acfa5895733d2a197e2000000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000006b1f1f6300000000cef1f706691f1f6300"/224, 0xe0, 0x516b60}, {&(0x7f0000015200)="000000000000000000070064656661756c7401000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x516c80}, {&(0x7f0000015260)="000000000000000000000000000000000000070000000000000000000000000000000050510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700"/128, 0x80, 0x516d20}, {&(0x7f00000152e0)="00000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100", 0x40, 0x516e40}, {&(0x7f0000015320)="000000000000000000080000000000000000000000000000000070510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000800000000000000", 0x60, 0x516ee0}, {&(0x7f0000015380)="133fe4c02499850c0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a007051000000000001000000000000017dcc36ce39a74d90af96db8bae080672080000000000000002000000000000000f000000000000100000000000c00000400000000000830f0000180000000010100000000000a90000000000000000620f0000210000000000500000000000c000001900000000004a0f0000180000000030500000000000a90100000000000000290f0000210000000060500000000000a90000000000000000080f00002100000000b0500000000000a90000000000000000e70e00002100000000c0500000000000a90000000000000000c60e00002100000000d0500000000000a80030000000000000910e0000350000000000510000000000a90000000000000000700e0000210000000010510000000000a900000000000000004f0e0000210000000050510000000000a900000000000000002e0e0000210000000060510000000000a900000000000000000d0e0000210000000070510000000000a90000000000000000ec0d0000210000000080510000000000a90000000000000000cb0d0000210000000000690000000000c00000190000000000b30d00001800000000000000", 0x1e0, 0x517000}, {&(0x7f0000015560)="00010000000000000500000000000000010000000000000008000000000000000200000000000000b00a00000000000000010000000000000008000000000000000200000000000000b00200000000000000010000000000000008000000000000000200000000000000b00100000000000000010000000000000007000000000000000200000000000000b00400000000000000010000000000000007000000000000000200000000000000b00700000000000000010000000000000007000000000000000200000000000000b00500000000000000010000000000000007000000000000000100000000000000b205000000000000000501000000000000000000000000000001000000010000000000000005000000000000000200000000000000b00900000000000000010000000000000005000000000000000200000000000000b0f7ffffffffffffff010000000000000007000000000000000200000000000000b00500000000000000010000000000000007000000000000000200000000000000b0050000000000000000d000000000000000010000000000000500000000000000010000000000000005000000000000000200000000000000b00300000000000000001000000000000000010000000000000200000000000000fd311dc77d4d84f50000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a008051000000000001000000000000017dcc36ce39a74d90af96db8bae08067208000000000000000a000000000000000b000000000000100000000000c60000400000000000930f0000080000000000100000000000c70010000000000000930f0000000000000020100000000000c700e03f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000000500000000000c700300000000000008b0f0000000000000040500000000000c700200000000000008b0f0000000000000070500000000000c700400000000000008b0f0000000000000020510000000000c700300000000000008b0f0000000000000090510000000000c700701700000000008b0f0000000000000000690000000000c60000190000000000830f0000080000000000690000000000c70000190000000000830f00"/864, 0x360, 0x517e20}, {&(0x7f00000158c0)="0000000000000000010000000000000005000000000000000200000000000000", 0x20, 0x518fe0}, {&(0x7f00000158e0)="e61215b2f291d0200000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a000069000000000001000000000000017dcc36ce39a74d90af96db8bae080672070000000000000005000000000000001b000000000001000000000000010000000000000000fb0e0000a000000000010000000000000c0001000000000000ef0e00000c0000000001000000000000544bae790400000000cc0e0000230000000001000000000000546b826b1100000000a50e000027000000000100000000000054bf5d291700000000820e000023000000000100000000000054bcde42e5000000005f0e000023000000000100000000000054482d12f6000000003c0e00002300000001010000000000000100000000000000009c0d0000a000000001010000000000000c00010000000000008d0d00000f0000000101000000000000544bae7904000000006a0d000023000000010100000000000054482d12f600000000470d0000230000000201000000000000010000000000000000a70c0000a000000002010000000000000c0101000000000000980c00000f00000002010000000000006c0000000000000000690800002f0400000301000000000000010000000000000000c9070000a000000003010000000000000c0101000000000000ba0700000f00000003010000000000006c00000000000000007f0700003b0000000401000000000000010000000000000000df060000a000000004010000000000000c0001000000000000d00600000f00000004010000000000001822a8f12600000000a10600002f000000040100000000000018d65ba13500000000720600002f00000004010000000000006c0000000000000000530600001f0000000501000000000000010000000000000000b3050000a000000005010000000000000c0001000000000000950500001e0000000601000000000000010000000000000000f5040000a000000006010000000000000c0001000000000000e20400001300000006010000000000006c0000000000000000690400007900"/800, 0x320, 0x690000}, {&(0x7f0000015c00)="000000000000000000000000000007000000000000006400000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c6572730600000000000000090066696c652e636f6c6407000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff810000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70060400000000000000050066696c65320500000000000000050066696c653307000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff81000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700607000000000000000a00000000000000000000000073797a6b616c6c6572730000000000000000000000000000000000070000000000000006000b0008757365722e7861747472317861747472310000000000000000000000000000000000070000000000000006000b0008757365722e7861747472327861747472320300000000000000050066696c653107000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff81000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70060700000000000000260000000000000000000000002f746d702f73797a2d696d61676567656e3539333133373236362f66696c65302f66696c65300300000000000000050066696c653107000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ffa10000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700607000000000000001a04000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c0200000000000000050066696c653007000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff81000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700603010000000000000100000000000000000700000000000000000005000766696c653102010000000000000100000000000000000700000000000000000005000166696c65300200000000000000050066696c653007000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff41000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f6300000000cd4f33066b1f1f6300000000cd4f33066b1f1f6300000000cd4f33066b1f1f6300000000cd4f330604010000000000000100000000000000000700000000000000000005000166696c653105010000000000000100000000000000000700000000000000000005000166696c653205010000000000000100000000000000000700000000000000000005000166696c653306010000000000000100000000000000000700000000000000000009000166696c652e636f6c6401010000000000000100000000000000000700000000000000000005000266696c6530000000000000000002002e2e03000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000", 0xb40, 0x6904c0}], 0x0, &(0x7f0000016740), 0x1) sync() ioctl$EXT4_IOC_PRECACHE_EXTENTS(0xffffffffffffffff, 0x6612) sync() sync() sync() sync() sync() r0 = open(&(0x7f0000000a40)='./bus\x00', 0x141a42, 0x0) r1 = openat(0xffffffffffffffff, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) open(0x0, 0x0, 0x0) sync() sendfile(r0, r1, 0x0, 0x80001d00c0d0) rename(&(0x7f0000000040)='./bus\x00', &(0x7f0000000080)='./file0/file0\x00') sync() open(0x0, 0x14d27e, 0x0) ioctl$AUTOFS_DEV_IOCTL_OPENMOUNT(0xffffffffffffffff, 0xc0189374, &(0x7f0000000ac0)=ANY=[@ANYBLOB="f4006e3e"]) sync() mmap(&(0x7f0000000000/0x600000)=nil, 0x600000, 0x27fffff, 0x4002011, 0xffffffffffffffff, 0x0) 19:51:23 executing program 3: syz_mount_image$btrfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x1000000, 0x4f, &(0x7f0000000200)=[{&(0x7f0000010000)="d2eacf4f98a4345f0000000000000800000000000000000003000000000000008ff932b8f4e44b03aed6d7e5736fd60a000001000000000001000000000000005f42485266535f4d08000000000000000060510000000000001010000000000000000000000000000000000000000000000000010000000000e0000000000000060000000000000001000000000000000010000000100000001000000010000061000000050000000000000000000000000000000300000000000000450300000000000001000000000100000000000000000000010000000000007200000000000010000000100000001000000000000000000000000000000000000000000000000000000000000000007981baa6901349f18e09e692cd2866218ff932b8f4e44b03aed6d7e5736fd60a00"/320, 0x140, 0x10000}, {&(0x7f0000010140)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00'/32, 0x20, 0x10220}, {&(0x7f0000010160)="00000000000000000000000001000000000000e40000100000000000000040000000000002000000000000000000010000000000020000000000000000100000001000000010000001000000010000000000000000001000000000007981baa6901349f18e09e692cd28662100"/128, 0x80, 0x10320}, {&(0x7f00000101e0)="0000000000000000000000003050000000000005000000000000000010100000000000050000000000000000805000000000000500000000000000001050000000000005000000000000000040500000000000050000000000000000905000000000000500000000000000000000010000000000900000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000000000006000000000000000010100000000000050000000000000000205000000000000600000000000000001050000000000005000000000000000040500000000000050000000000000000905000000000000500000000000000000000010000000000900000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004051000000000007000000000000000010100000000000050000000000000000205100000000000700000000000000003050000000000007000000000000000050510000000000070000000000000000105100000000000700000000000000000000010000000000e00000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000006051000000000008000000000000000010100000000000050000000000000000705100000000000800000000000000003050000000000007000000000000000050510000000000070000000000000000105100000000000700000000000000000000010000000000e0000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000100", 0x2a0, 0x10b20}, {&(0x7f0000010480)="2ac4149354208c3b0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a000010000000000001000000000000017dcc36ce39a74d90af96db8bae0806720300000000000000030000000000000004000000000100000000000000d80100000000000000390f0000620000000001000000000000e40000100000000000e90e0000500000000001000000000000e40000500000000000990e0000500000000001000000000000e40000690000000000490e00005000"/224, 0xe0, 0x100000}, {&(0x7f0000010560)="0000000000000000000000000000000019000000000002000000000000000000010000000000050000000000000000000100000001000010000001000100010000000000000000006900000000007981baa6901349f18e09e692cd286621000019000000000002000000000000000000010000000000050000000000000000000100000001000010000001000100010000000000000000005000000000007981baa6901349f18e09e692cd286621000040000000000002000000000000000000010000000000020000000000000000100000001000000010000001000000010000000000000000001000000000007981baa6901349f18e09e692cd2866210100000000000000000000010000000000007200000000000010000000100000001000000000000000000000000000000000000000000000000000000000000000007981baa6901349f18e09e692cd2866218ff932b8f4e44b03aed6d7e5736fd60a272f3e00707ea5880000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a001010000000000001000000000000017dcc36ce39a74d90af96db8bae0806720500000000000000030000000000000004000000000100000000000000d80100000000000000390f0000620000000001000000000000e40000100000000000e90e0000500000000001000000000000e40000500000000000990e0000500000000001000000000000e40000690000000000490e00005000"/576, 0x240, 0x100ea0}, {&(0x7f00000107a0)="0000000000000000000000000000000019000000000002000000000000000000010000000000050000000000000000000100000001000010000001000100010000000000000000006900000000007981baa6901349f18e09e692cd286621000019000000000002000000000000000000010000000000050000000000000000000100000001000010000001000100010000000000000000005000000000007981baa6901349f18e09e692cd286621000040000000000002000000000000000000010000000000020000000000000000100000001000000010000001000000010000000000000000001000000000007981baa6901349f18e09e692cd2866210100000000000000000000010000000000007200000000000010000000100000001000000000000000000000000000000000000000000000000000000000000000007981baa6901349f18e09e692cd2866218ff932b8f4e44b03aed6d7e5736fd60ac5e886221dbd54bb0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a002010000000000000000000000000017dcc36ce39a74d90af96db8bae0806720100000000000000030000000000000002000000000100000000000000d80100000000000000390f0000620000000001000000000000e40000100000000000e90e00005000"/512, 0x200, 0x101ea0}, {&(0x7f00000109a0)="0000000000000000000000000000000040000000000002000000000000000000010000000000020000000000000000100000001000000010000001000000010000000000000000001000000000007981baa6901349f18e09e692cd2866210100000000000000000000010000000000004000000000000010000000100000001000000000000000000000000000000000000000000000000000000000000000007981baa6901349f18e09e692cd2866218ff932b8f4e44b03aed6d7e5736fd60a71ef875904a1ca660000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a003010000000000000000000000000017dcc36ce39a74d90af96db8bae0806720100000000000000040000000000000001000000000100000000000000cc00001000000000006b0f0000300000000000", 0x140, 0x102f40}, {&(0x7f0000010ae0)="0000000000000000000000000000000003000000000000000001000000000000000010000000000000004000000000007dcc36ce39a74d90af96db8bae0806725490e3d81cd63c0f0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a004010000000000000000000000000017dcc36ce39a74d90af96db8bae08067201000000000000000500000000000000", 0xa0, 0x103fc0}, {&(0x7f0000010b80)="cb0d168929f3f7d40000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a005010000000000000000000000000017dcc36ce39a74d90af96db8bae08067201000000000000000700000000000000", 0x60, 0x105000}, {&(0x7f0000010be0)="ef3392afacf603fb0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a006010000000000000000000000000017dcc36ce39a74d90af96db8bae08067201000000000000000a0000000000000002000000000000100000000000c60000400000000000930f0000080000000070100000000000c700903f0000000000930f00"/160, 0xa0, 0x106000}, {&(0x7f0000010c80)="0000000000000000000000000000000000000000000000000100000000000000036d53e20cf6870c0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a007010000000000001000000000000017dcc36ce39a74d90af96db8bae0806720200000000000000040000000000000002000000000100000000000000cc00001000000000006b0f0000300000000100000000000000cc00005000000000003b0f00003000"/192, 0xc0, 0x106fe0}, {&(0x7f0000010d40)="03000000000000000001000000000000000050000000000000001900000000007dcc36ce39a74d90af96db8bae08067203000000000000000001000000000000000010000000000000004000000000007dcc36ce39a74d90af96db8bae08067261bd69a63561c6770000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a008010000000000001000000000000017dcc36ce39a74d90af96db8bae0806720200000000000000030000000000000003000000000100000000000000d80100000000000000390f0000620000000001000000000000e40000100000000000e90e0000500000000001000000000000e40000500000000000990e00005000"/288, 0x120, 0x107fa0}, {&(0x7f0000010e60)="19000000000002000000000000000000010000000000050000000000000000000100000001000010000001000100010000000000000000005000000000007981baa6901349f18e09e692cd286621000040000000000002000000000000000000010000000000020000000000000000100000001000000010000001000000010000000000000000001000000000007981baa6901349f18e09e692cd2866210100000000000000000000010000000000005900000000000010000000100000001000000000000000000000000000000000000000000000000000000000000000007981baa6901349f18e09e692cd2866218ff932b8f4e44b03aed6d7e5736fd60abbe4da89cc7169bb0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a009010000000000001000000000000017dcc36ce39a74d90af96db8bae080672020000000000000002000000000000000b000000000000100000000000c00000400000000000830f0000180000000040100000000000a900000000000000006b0f0000180000000040100000000000b005000000000000006b0f0000000000000050100000000000a90000000000000000530f0000180000000050100000000000b00700000000000000530f0000000000000070100000000000a90000000000000000320f0000210000000080100000000000a90000000000000000110f0000210000000090100000000000a90000000000000000f00e00002100000000a0100000000000a90000000000000000cf0e0000210000000000500000000000a90000000000000000ae0e0000210000000000500000000000c00000190000000000960e0000180000000000500000000000c00000190000000000b70e0000180000000060100000000000b00a000000000000000b0f0000000000000000500000000000c00000190000000000f30e0000180000000060100000000000b00a00000000000000f30e0000000000000000500000000000c00000190000000000db0e00001800"/768, 0x300, 0x108f00}, {&(0x7f0000011160)="000000000000000000000000000000000000000000000000000000001000000000000000010000000000000500000000000000010000000000000002000000000000000200000000000000b00100000000000000010000000000000002000000000000000200000000000000b00a00000000000000010000000000000002000000000000000200000000000000b00200000000000000010000000000000002000000000000000200000000000000b00300000000000000010000000000000002000000000000000200000000000000b004000000000000000100000000000000010000000000000002000000000000000100000000000000010000000000000002000000000000000060000000000000000100000000000002000000000000001bc0f432deb6a4810000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a00a010000000000001000000000000017dcc36ce39a74d90af96db8bae08067202000000000000000a0000000000000006000000000000100000000000c60000400000000000930f0000080000000000100000000000c70040000000000000930f0000000000000060100000000000c70010000000000000930f00000000000000b0100000000000c700503f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000010500000000000c700f01800000000008b0f00"/544, 0x220, 0x109ee0}, {&(0x7f0000011380)="0000000000000000000000000000000001000000000000000300000000000000", 0x20, 0x10afe0}, {&(0x7f00000113a0)="a566b5eb15642b400000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a000050000000000001000000000000017dcc36ce39a74d90af96db8bae080672060000000000000001000000000000000b000000000200000000000000840000000000000000e40d0000b701000004000000000000008400000000000000002d0c0000b701000005000000000000000c06000000000000001c0c0000110000000500000000000000840000000000000000650a0000b70100000600000000000000010000000000000000c5090000a000000006000000000000000c0600000000000000b90900000c000000060000000000000054d2c2bf8d0000000094090000250000000700000000000000840000000000000000dd070000b7010000090000000000000084000000000000000026060000b70100000a000000000000008400000000000000006f040000b7010000f7ffffffffffffff840000000000000000b8020000b70100"/384, 0x180, 0x500000}, {&(0x7f0000011520)="00000000000000000000000000000000000000000000000000000000000500000000000000000100000000000000b0500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500"/128, 0x80, 0x5003a0}, {&(0x7f00000115a0)="000000000000000000000000000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x5004c0}, {&(0x7f0000011600)="0000000000000000000000000000000000000000060000000000000000000000000000000050500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600"/128, 0x80, 0x500560}, {&(0x7f0000011680)="00000000000000000000000500000000000000000000000000000000c050000000000000000000000000000010000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000050000000000", 0x60, 0x500720}, {&(0x7f00000116e0)="000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed410000000000000000", 0x40, 0x500840}, {&(0x7f0000011720)="0000050000000000000000000000000000000090500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500"/96, 0x60, 0x5008e0}, {&(0x7f0000011780)="00000000000000000000000000000000000000000000000000050000000000000084ffffffffffffffff0000000000000000000007000264656661756c74000000000000000002002e2e03000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000691f1f63000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed41", 0x120, 0x5009e0}, {&(0x7f00000118a0)="000000000000000000000500000000000000000100000000000000105000000000000000000000000000001000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000005000000000000005b77423558504acfa5895733d2a197e200"/128, 0x80, 0x500b60}, {&(0x7f0000011920)="0000000000000000000000000000000000691f1f630000000000000000691f1f6300"/64, 0x40, 0x500c00}, {&(0x7f0000011960)="000000000000000000070064656661756c7401000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x500c80}, {&(0x7f00000119c0)="000000000000000000000000000000000000050000000000000000000000000000000040500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500"/128, 0x80, 0x500d20}, {&(0x7f0000011a40)="00000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100", 0x40, 0x500e40}, {&(0x7f0000011a80)="000000000000000000060000000000000000000000000000000020500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000600000000000000", 0x60, 0x500ee0}, {&(0x7f0000011ae0)="ffa75718c036c1b30000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a001050000000000001000000000000017dcc36ce39a74d90af96db8bae0806720500000000000000050000000000000002000000000001000000000000010000000000000000fb0e0000a000000000010000000000000c0001000000000000ef0e00000c00"/160, 0xa0, 0x501000}, {&(0x7f0000011b80)="0000000000000000000000000000000000000000000000000000000002002e2e03000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000d166d354650390dd0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a002050000000000001000000000000017dcc36ce39a74d90af96db8bae080672060000000000000002000000000000000c000000000000100000000000c00000400000000000830f0000180000000010100000000000a90000000000000000620f0000210000000000500000000000a90000000000000000410f0000210000000000500000000000c00000190000000000290f0000180000000010500000000000a90000000000000000080f0000210000000020500000000000a90000000000000000e70e0000210000000040500000000000a90000000000000000c60e0000210000000050500000000000a90000000000000000a50e0000210000000090500000000000a90000000000000000840e00002100000000b0500000000000a90000000000000000630e00002100000000c0500000000000a90000000000000000420e0000210000000000690000000000c000001900000000002a0e0000180000000000690000000000c000001900000000002a0e0000180000000000690000000000c00000190000000000090e0000180000000060100000000000b00a00000000000000f30e0000000000000000500000000000c00000190000000000db0e00001800"/704, 0x2c0, 0x501f40}, {&(0x7f0000011e40)="00000000000000000000000000000000000000000000010000000000000500000000000000010000000000000005000000000000000000010000000000000500000000000000010000000000000005000000000000000000010000000000000500000000000000010000000000000005000000000000000200000000000000b00900000000000000010000000000000005000000000000000200000000000000b0f7ffffffffffffff010000000000000005000000000000000200000000000000b00700000000000000010000000000000006000000000000000200000000000000b00a00000000000000010000000000000005000000000000000200000000000000b00400000000000000010000000000000006000000000000000200000000000000b00200000000000000010000000000000005000000000000000200000000000000b00500000000000000008000000000000000010000000000000500000000000000010000000000000006000000000000000200000000000000b00100000000000000010000000000000005000000000000000200000000000000b00300000000000000001000000000000000010000000000000200000000000000561ffdbba2c02c6f0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a003050000000000001000000000000017dcc36ce39a74d90af96db8bae08067207000000000000000500000000000000020000000100010000000000000100000000000000000000510000000000070000000000000002010000000000006c0000000000000000006050000000000007", 0x260, 0x502e40}, {&(0x7f00000120a0)="09f0093dd1c52aff0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a004050000000000001000000000000017dcc36ce39a74d90af96db8bae0806720500000000000000040000000000000003000000000100000000000000cc00001000000000006b0f0000300000000100000000000000cc00005000000000003b0f0000300000000100000000000000cc00006900000000000b0f00003000"/192, 0xc0, 0x504000}, {&(0x7f0000012160)="0000000000000000000000000000000003000000000000000001000000000000000069000000000000001900000000007dcc36ce39a74d90af96db8bae08067203000000000000000001000000000000000050000000000000001900000000007dcc36ce39a74d90af96db8bae08067203000000000000000001000000000000000010000000000000004000000000007dcc36ce39a74d90af96db8bae080672b48545bd355ae8ff0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a005050000000000001000000000000017dcc36ce39a74d90af96db8bae08067206000000000000000a000000000000000a000000000000100000000000c60000400000000000930f0000080000000000100000000000c70010000000000000930f0000000000000020100000000000c700e03f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000030500000000000c700100000000000008b0f0000000000000060500000000000c700300000000000008b0f00000000000000a0500000000000c700100000000000008b0f00000000000000d0500000000000c700301800000000008b0f0000000000000000690000000000c60000190000000000830f0000080000000000690000000000c70000190000000000830f00000000000000", 0x200, 0x504f60}, {&(0x7f0000012360)="0000000000000000010000000000000004000000000000000200000000000000a22ac3de03de158c0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a006050000000000001000000000000017dcc36ce39a74d90af96db8bae080672070000000000000005000000000000000f0000000002010000000000006c00000000000000006c0b00002f0400000301000000000000010000000000000000cc0a0000a000000003010000000000000c0101000000000000bd0a00000f00000003010000000000006c0000000000000000820a00003b0000000401000000000000010000000000000000e2090000a000000004010000000000000c0001000000000000d30900000f00000004010000000000001822a8f12600000000a40900002f000000040100000000000018d65ba13500000000750900002f00000004010000000000006c0000000000000000560900001f0000000501000000000000010000000000000000b6080000a000000005010000000000000c0001000000000000980800001e00000005010000000000006c000000000000000063080000350000000601000000000000010000000000000000c3070000a000000006010000000000000c0001000000000000b00700001300000006010000000000006c0000000000000000370700007900000000000000", 0x200, 0x505fe0}, {&(0x7f0000012560)="0000000000000000000000000000000000000000000000000000000007000000000000006400000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c6572730600000000000000090066696c652e636f6c6407000000000000000700000000000000640000000000000064000000000000000000000000000000010000000000000000000000ed810000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700607000000000000000030000000000000000000000100d05000000000000030000000000000000000000000000000300000000000000400000000000000050066696c65320500000000000000050066696c653307000000000000000700000000000000282300000000000000300000000000000000000000000000020000000000000000000000ed810000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700607000000000000000a00000000000000000000000073797a6b616c6c6572730000000000000000000000000000000000070000000000000006000b0008757365722e7861747472317861747472310000000000000000000000000000000000070000000000000006000b0008757365722e7861747472327861747472320300000000000000050066696c6531070000000000000007000000000000000a000000000000000a000000000000000000000000000000010000000000000000000000ed810000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70060700000000000000260000000000000000000000002f746d702f73797a2d696d61676567656e3539333133373236362f66696c65302f66696c65300300000000000000050066696c653107000000000000000700000000000000260000000000000026000000000000000000000000000000010000000000000000000000ffa10000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700607000000000000001a04000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616ce6ae64ec68e90fd00000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a007050000000000001000000000000017dcc36ce39a74d90af96db8bae08067204000000000000000a0000000000000009000000000000100000000000c60000400000000000930f0000080000000010100000000000c70040000000000000930f0000000000000060100000000000c700a03f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000010500000000000c700100000000000008b0f0000000000000030500000000000c700200000000000008b0f0000000000000080500000000000c700801800000000008b0f0000000000000000690000000000c60000190000000000830f0000080000000000690000000000c70000190000000000830f", 0x9c0, 0x506780}, {&(0x7f0000012f20)="0000000000000000010000000000000003000000000000000200000000000000730a5c124a77ed4f0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a008050000000000001000000000000017dcc36ce39a74d90af96db8bae080672050000000000000002000000000000000c000000000000100000000000c00000400000000000830f0000180000000010100000000000a90000000000000000620f0000210000000000500000000000c000001900000000004a0f0000180000000010500000000000a90000000000000000290f0000210000000030500000000000a90000000000000000080f0000210000000040500000000000a90000000000000000e70e0000210000000080500000000000a90000000000000000c60e0000210000000090500000000000a90000000000000000a50e00002100000000a0500000000000a90000000000000000840e00002100000000b0500000000000a90000000000000000630e00002100000000c0500000000000a90000000000000000420e0000210000000000690000000000c000001900000000002a0e0000180000000000690000000000c00000190000000000750e0000180000000000500000000000c00000190000000000f30e0000180000000060100000000000b00a00000000000000f30e0000000000000000500000000000c00000190000000000db0e00001800"/544, 0x220, 0x507fe0}, {&(0x7f0000013140)="000000000000000000000000000000000000000000000000010000000000000500000000000000010000000000000005000000000000000200000000000000b00900000000000000010000000000000005000000000000000200000000000000b0f7ffffffffffffff010000000000000005000000000000000200000000000000b00a00000000000000010000000000000005000000000000000200000000000000b00700000000000000010000000000000005000000000000000200000000000000b00200000000000000010000000000000005000000000000000200000000000000b00400000000000000010000000000000005000000000000000200000000000000b00100000000000000010000000000000005000000000000000200000000000000b00500000000000000008000000000000000010000000000000500000000000000010000000000000005000000000000000200000000000000b0030000000000000000100000000000000001000000000000020000000000000069a42bc7cd72dc6c0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a009050000000000001000000000000017dcc36ce39a74d90af96db8bae08067205000000000000000700000000000000", 0x1e0, 0x508e80}, {&(0x7f0000013320)="13676510faaea18a0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a00a050000000000001000000000000017dcc36ce39a74d90af96db8bae08067205000000000000000a000000000000000a000000000000100000000000c60000400000000000930f0000080000000000100000000000c70010000000000000930f0000000000000020100000000000c700e03f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000000500000000000c700100000000000008b0f0000000000000020500000000000c700100000000000008b0f0000000000000050500000000000c700300000000000008b0f00000000000000d0500000000000c700301800000000008b0f0000000000000000690000000000c60000190000000000830f0000080000000000690000000000c70000190000000000830f00000000000000", 0x160, 0x50a000}, {&(0x7f0000013480)="00000000000000000100000000000000040000000000000002000000000000004d7158f29a373c800000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a00b050000000000001000000000000017dcc36ce39a74d90af96db8bae0806720500000000000000f7ffffffffffffff02000000000001000000000000010000000000000000fb0e0000a000000000010000000000000c0001000000000000ef0e00000c00"/192, 0xc0, 0x50afe0}, {&(0x7f0000013540)="0000000000000000000000000000000000000000000000000000000002002e2e05000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f6300000000000000000000000000000000000000004fd788e81142d8d80000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a00c050000000000001000000000000017dcc36ce39a74d90af96db8bae0806720500000000000000090000000000000001000000005b77423558504acffba5895733d2a197e2930f0000080000000000", 0x140, 0x50bf40}, {&(0x7f0000013680)="0000000000000000000000000000000000000000000000000500000000000000", 0x20, 0x50cfe0}, {&(0x7f00000136a0)="f1ba4edecf6842a30000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a000051000000000001000000000000017dcc36ce39a74d90af96db8bae0806720700000000000000050000000000000014000000000001000000000000010000000000000000fb0e0000a000000000010000000000000c0001000000000000ef0e00000c0000000001000000000000544bae790400000000cc0e0000230000000001000000000000546b826b1100000000a50e000027000000000100000000000054bf5d291700000000820e000023000000000100000000000054bcde42e5000000005f0e000023000000000100000000000054482d12f6000000003c0e0000230000000001000000000000600200000000000000190e0000230000000001000000000000600300000000000000f60d0000230000000001000000000000600400000000000000d30d0000230000000001000000000000600500000000000000b00d0000230000000001000000000000600600000000000000890d0000270000000101000000000000010000000000000000e90c0000a000000001010000000000000c0001000000000000da0c00000f0000000101000000000000544bae790400000000b70c000023000000010100000000000054482d12f600000000940c0000230000000101000000000000600200000000000000710c00002300000001010000000000006003000000000000004e0c0000230000000201000000000000010000000000000000ae0b0000a000000002010000000000000c01010000000000009f0b00000f00"/608, 0x260, 0x510000}, {&(0x7f0000013900)="000000000200000000000000050066696c6530070000000000000007000000000000001a040000000000001a040000000000000000000000000000010000000000000000000000ed81000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700603010000000000000100000000000000000700000000000000000005000766696c653102010000000000000100000000000000000700000000000000000005000166696c653003010000000000000100000000000000000700000000000000000005000766696c653102010000000000000100000000000000000700000000000000000005000166696c65300200000000000000050066696c653007000000000000000700000000000000140000000000000000000000000000000000000000000000010000000000000000000000ed41000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f6300000000cd4f33066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f6300000000cd4f330606010000000000000100000000000000000700000000000000000009000166696c652e636f6c6405010000000000000100000000000000000700000000000000000005000166696c653305010000000000000100000000000000000700000000000000000005000166696c653204010000000000000100000000000000000700000000000000000005000166696c653101010000000000000100000000000000000700000000000000000005000266696c653004010000000000000100000000000000000700000000000000000005000166696c653105010000000000000100000000000000000700000000000000000005000166696c653205010000000000000100000000000000000700000000000000000005000166696c653306010000000000000100000000000000000700000000000000000009000166696c652e636f6c6401010000000000000100000000000000000700000000000000000005000266696c6530000000000000000002002e2e030000000000000007000000000000003a0000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f6300000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a7006691f1f630000000000000000781939a88dcc1e6f0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a001051000000000001000000000000017dcc36ce39a74d90af96db8bae080672070000000000000007000000000000000100000000f6ffffffffffffff8000d0500000000000830f0000180000000000", 0x480, 0x510c00}, {&(0x7f0000013d80)="0000000000000000dbbbd8326f9b86acdbbbd8326f9b86acdbbbd8326f9b86ac71ab2ad96ec669570000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a002051000000000001000000000000017dcc36ce39a74d90af96db8bae080672070000000000000002000000000000000f000000000000100000000000c00000400000000000830f0000180000000010100000000000a90000000000000000620f0000210000000000500000000000c000001900000000004a0f0000180000000030500000000000a90100000000000000290f0000210000000060500000000000a90000000000000000080f00002100000000b0500000000000a90000000000000000e70e00002100000000c0500000000000a90000000000000000c60e00002100000000d0500000000000a80030000000000000910e0000350000000000510000000000a90000000000000000700e0000210000000010510000000000a900000000000000004f0e0000210000000020510000000000a900000000000000002e0e0000210000000030510000000000a900000000000000000d0e0000210000000040510000000000a90000000000000000ec0d0000210000000050510000000000a90000000000000000cb0d0000210000000000690000000000c00000190000000000b30d00001800000000000000", 0x200, 0x511fe0}, {&(0x7f0000013f80)="00010000000000000500000000000000010000000000000007000000000000000200000000000000b00400000000000000010000000000000007000000000000000200000000000000b00100000000000000010000000000000007000000000000000200000000000000b00a00000000000000010000000000000007000000000000000200000000000000b00200000000000000010000000000000007000000000000000200000000000000b00700000000000000010000000000000007000000000000000200000000000000b00500000000000000010000000000000007000000000000000100000000000000b205000000000000000501000000000000000000000000000001000000010000000000000005000000000000000200000000000000b00900000000000000010000000000000005000000000000000200000000000000b0f7ffffffffffffff010000000000000007000000000000000200000000000000b00500000000000000010000000000000007000000000000000200000000000000b0050000000000000000d000000000000000010000000000000500000000000000010000000000000005000000000000000200000000000000b003000000000000000010000000000000000100000000000002000000000000007c1325170fc092c70000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a003051000000000001000000000000017dcc36ce39a74d90af96db8bae08067207000000000000000a000000000000000a000000000000100000000000c60000400000000000930f0000080000000000100000000000c70010000000000000930f0000000000000020100000000000c700e03f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000000500000000000c700300000000000008b0f0000000000000040500000000000c700200000000000008b0f0000000000000070500000000000c700400000000000008b0f0000000000000060510000000000c700a01700000000008b0f0000000000000000690000000000c60000190000000000830f0000080000000000690000000000c70000190000000000830f00000000000000", 0x340, 0x512e20}, {&(0x7f00000142c0)="0000000000000000010000000000000004000000000000000200000000000000779814fddb45739a0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a004051000000000001000000000000017dcc36ce39a74d90af96db8bae080672070000000000000001000000000000000b000000000200000000000000840000000000000000e40d0000b701000004000000000000008400000000000000002d0c0000b701000005000000000000000c06000000000000001c0c0000110000000500000000000000840000000000000000650a0000b70100000600000000000000010000000000000000c5090000a000000006000000000000000c0600000000000000b90900000c000000060000000000000054d2c2bf8d0000000094090000250000000700000000000000840000000000000000dd070000b7010000090000000000000084000000000000000026060000b70100000a000000000000008400000000000000006f040000b7010000f7ffffffffffffff840000000000000000b8020000b70100"/416, 0x1a0, 0x513fe0}, {&(0x7f0000014460)="00000000000000000000000000000000000000000000000000000000000500000000000000000100000000000000b0500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500"/128, 0x80, 0x5143a0}, {&(0x7f00000144e0)="000000000000000000000000000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x5144c0}, {&(0x7f0000014540)="0000000000000000000000000000000000000000070000000000000000000000000000000030510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700"/128, 0x80, 0x514560}, {&(0x7f00000145c0)="00000000000000000000000500000000000000000000000000000000c050000000000000000000000000000010000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000050000000000", 0x60, 0x514720}, {&(0x7f0000014620)="000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed410000000000000000", 0x40, 0x514840}, {&(0x7f0000014660)="0000070000000000000000000000000000000010510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700"/96, 0x60, 0x5148e0}, {&(0x7f00000146c0)="00000000000000000000000000000000000000000000000000050000000000000084ffffffffffffffff0000000000000000000007000264656661756c74000000000000000002002e2e03000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000691f1f63000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed41000000000000000000000000008000"/320, 0x140, 0x5149e0}, {&(0x7f0000014800)="000000000000000000000700000000000000000100000000000000305000000000000000000000000000003000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000107000000000000005b77423558504acfa5895733d2a197e2000000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000006b1f1f6300000000cef1f706691f1f6300"/224, 0xe0, 0x514b60}, {&(0x7f00000148e0)="000000000000000000070064656661756c7401000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x514c80}, {&(0x7f0000014940)="000000000000000000000000000000000000070000000000000000000000000000000050510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700"/128, 0x80, 0x514d20}, {&(0x7f00000149c0)="00000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100", 0x40, 0x514e40}, {&(0x7f0000014a00)="000000000000000000070000000000000000000000000000000020510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700000000000000", 0x60, 0x514ee0}, {&(0x7f0000014a60)="c71be4756a41863c0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a005051000000000001000000000000017dcc36ce39a74d90af96db8bae0806720700000000000000040000000000000004000000000000000000000000f90100000000000000730f0000280000000100000000000000cc0000100000000000430f0000300000000100000000000000cc0000500000000000130f0000300000000100000000000000cc0000690000000000e30e00003000"/224, 0xe0, 0x515000}, {&(0x7f0000014b40)="000000000000000003000000000000000001000000000000000069000000000000001900000000007dcc36ce39a74d90af96db8bae08067203000000000000000001000000000000000050000000000000001900000000007dcc36ce39a74d90af96db8bae08067203000000000000000001000000000000000010000000000000004000000000007dcc36ce39a74d90af96db8bae08067200000000000000000000000000000000000000000000000000000000000000000000000000000000bf7b323f686969450000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a006051000000000001000000000000017dcc36ce39a74d90af96db8bae080672080000000000000001000000000000000b000000000200000000000000840000000000000000e40d0000b701000004000000000000008400000000000000002d0c0000b701000005000000000000000c06000000000000001c0c0000110000000500000000000000840000000000000000650a0000b70100000600000000000000010000000000000000c5090000a000000006000000000000000c0600000000000000b90900000c000000060000000000000054d2c2bf8d0000000094090000250000000700000000000000840000000000000000dd070000b7010000090000000000000084000000000000000026060000b70100000a000000000000008400000000000000006f040000b7010000f7ffffffffffffff840000000000000000b8020000b70100"/576, 0x240, 0x515f40}, {&(0x7f0000014d80)="00000000000000000000000000000000000000000000000000000000000500000000000000000100000000000000b0500000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000500"/128, 0x80, 0x5163a0}, {&(0x7f0000014e00)="000000000000000000000000000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x5164c0}, {&(0x7f0000014e60)="0000000000000000000000000000000000000000080000000000000000000000000000000080510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000800"/128, 0x80, 0x516560}, {&(0x7f0000014ee0)="00000000000000000000000500000000000000000000000000000000c050000000000000000000000000000010000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000050000000000", 0x60, 0x516720}, {&(0x7f0000014f40)="000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed410000000000000000", 0x40, 0x516840}, {&(0x7f0000014f80)="0000070000000000000000000000000000000010510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700"/96, 0x60, 0x5168e0}, {&(0x7f0000014fe0)="00000000000000000000000000000000000000000000000000050000000000000084ffffffffffffffff0000000000000000000007000264656661756c74000000000000000002002e2e03000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000691f1f63000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed41000000000000000000000000008000"/320, 0x140, 0x5169e0}, {&(0x7f0000015120)="000000000000000000000700000000000000000100000000000000305000000000000000000000000000003000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000107000000000000005b77423558504acfa5895733d2a197e2000000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000006b1f1f6300000000cef1f706691f1f6300"/224, 0xe0, 0x516b60}, {&(0x7f0000015200)="000000000000000000070064656661756c7401000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100"/96, 0x60, 0x516c80}, {&(0x7f0000015260)="000000000000000000000000000000000000070000000000000000000000000000000050510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000700"/128, 0x80, 0x516d20}, {&(0x7f00000152e0)="00000000000000000001000000000000000000000000000000030000000000000000100000000000000000000000000000010000000000000000000000ed4100", 0x40, 0x516e40}, {&(0x7f0000015320)="000000000000000000080000000000000000000000000000000070510000000000000000000000000000100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000800000000000000", 0x60, 0x516ee0}, {&(0x7f0000015380)="133fe4c02499850c0000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a007051000000000001000000000000017dcc36ce39a74d90af96db8bae080672080000000000000002000000000000000f000000000000100000000000c00000400000000000830f0000180000000010100000000000a90000000000000000620f0000210000000000500000000000c000001900000000004a0f0000180000000030500000000000a90100000000000000290f0000210000000060500000000000a90000000000000000080f00002100000000b0500000000000a90000000000000000e70e00002100000000c0500000000000a90000000000000000c60e00002100000000d0500000000000a80030000000000000910e0000350000000000510000000000a90000000000000000700e0000210000000010510000000000a900000000000000004f0e0000210000000050510000000000a900000000000000002e0e0000210000000060510000000000a900000000000000000d0e0000210000000070510000000000a90000000000000000ec0d0000210000000080510000000000a90000000000000000cb0d0000210000000000690000000000c00000190000000000b30d00001800000000000000", 0x1e0, 0x517000}, {&(0x7f0000015560)="00010000000000000500000000000000010000000000000008000000000000000200000000000000b00a00000000000000010000000000000008000000000000000200000000000000b00200000000000000010000000000000008000000000000000200000000000000b00100000000000000010000000000000007000000000000000200000000000000b00400000000000000010000000000000007000000000000000200000000000000b00700000000000000010000000000000007000000000000000200000000000000b00500000000000000010000000000000007000000000000000100000000000000b205000000000000000501000000000000000000000000000001000000010000000000000005000000000000000200000000000000b00900000000000000010000000000000005000000000000000200000000000000b0f7ffffffffffffff010000000000000007000000000000000200000000000000b00500000000000000010000000000000007000000000000000200000000000000b0050000000000000000d000000000000000010000000000000500000000000000010000000000000005000000000000000200000000000000b00300000000000000001000000000000000010000000000000200000000000000fd311dc77d4d84f50000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a008051000000000001000000000000017dcc36ce39a74d90af96db8bae08067208000000000000000a000000000000000b000000000000100000000000c60000400000000000930f0000080000000000100000000000c70010000000000000930f0000000000000020100000000000c700e03f0000000000930f0000000000000000500000000000c600001900000000008b0f0000080000000000500000000000c700300000000000008b0f0000000000000040500000000000c700200000000000008b0f0000000000000070500000000000c700400000000000008b0f0000000000000020510000000000c700300000000000008b0f0000000000000090510000000000c700701700000000008b0f0000000000000000690000000000c60000190000000000830f0000080000000000690000000000c70000190000000000830f00"/864, 0x360, 0x517e20}, {&(0x7f00000158c0)="0000000000000000010000000000000005000000000000000200000000000000", 0x20, 0x518fe0}, {&(0x7f00000158e0)="e61215b2f291d0200000000000000000000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a000069000000000001000000000000017dcc36ce39a74d90af96db8bae080672070000000000000005000000000000001b000000000001000000000000010000000000000000fb0e0000a000000000010000000000000c0001000000000000ef0e00000c0000000001000000000000544bae790400000000cc0e0000230000000001000000000000546b826b1100000000a50e000027000000000100000000000054bf5d291700000000820e000023000000000100000000000054bcde42e5000000005f0e000023000000000100000000000054482d12f6000000003c0e00002300000001010000000000000100000000000000009c0d0000a000000001010000000000000c00010000000000008d0d00000f0000000101000000000000544bae7904000000006a0d000023000000010100000000000054482d12f600000000470d0000230000000201000000000000010000000000000000a70c0000a000000002010000000000000c0101000000000000980c00000f00000002010000000000006c0000000000000000690800002f0400000301000000000000010000000000000000c9070000a000000003010000000000000c0101000000000000ba0700000f00000003010000000000006c00000000000000007f0700003b0000000401000000000000010000000000000000df060000a000000004010000000000000c0001000000000000d00600000f00000004010000000000001822a8f12600000000a10600002f000000040100000000000018d65ba13500000000720600002f00000004010000000000006c0000000000000000530600001f0000000501000000000000010000000000000000b3050000a000000005010000000000000c0001000000000000950500001e0000000601000000000000010000000000000000f5040000a000000006010000000000000c0001000000000000e20400001300000006010000000000006c0000000000000000690400007900"/800, 0x320, 0x690000}, {&(0x7f0000015c00)="000000000000000000000000000007000000000000006400000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c6572730600000000000000090066696c652e636f6c6407000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff810000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70060400000000000000050066696c65320500000000000000050066696c653307000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff81000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700607000000000000000a00000000000000000000000073797a6b616c6c6572730000000000000000000000000000000000070000000000000006000b0008757365722e7861747472317861747472310000000000000000000000000000000000070000000000000006000b0008757365722e7861747472327861747472320300000000000000050066696c653107000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff81000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70060700000000000000260000000000000000000000002f746d702f73797a2d696d61676567656e3539333133373236362f66696c65302f66696c65300300000000000000050066696c653107000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ffa10000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700607000000000000001a04000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c0200000000000000050066696c653007000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff81000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a70066b1f1f63000000002f5a700603010000000000000100000000000000000700000000000000000005000766696c653102010000000000000100000000000000000700000000000000000005000166696c65300200000000000000050066696c653007000000000000000700000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff41000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000006b1f1f6300000000cd4f33066b1f1f6300000000cd4f33066b1f1f6300000000cd4f33066b1f1f6300000000cd4f330604010000000000000100000000000000000700000000000000000005000166696c653105010000000000000100000000000000000700000000000000000005000166696c653205010000000000000100000000000000000700000000000000000005000166696c653306010000000000000100000000000000000700000000000000000009000166696c652e636f6c6401010000000000000100000000000000000700000000000000000005000266696c6530000000000000000002002e2e03000000000000000000000000000000000000000000000000100000000000000000000000000000010000000000000000000000ed4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000691f1f630000000000000000", 0xb40, 0x6904c0}], 0x0, &(0x7f0000016740), 0x1) sync() ioctl$EXT4_IOC_PRECACHE_EXTENTS(0xffffffffffffffff, 0x6612) sync() sync() sync() sync() sync() r0 = open(&(0x7f0000000a40)='./bus\x00', 0x141a42, 0x0) r1 = openat(0xffffffffffffffff, &(0x7f0000000040)='/proc/self/exe\x00', 0x0, 0x0) open(0x0, 0x0, 0x0) sync() sendfile(r0, r1, 0x0, 0x80001d00c0d0) rename(&(0x7f0000000040)='./bus\x00', &(0x7f0000000080)='./file0/file0\x00') sync() open(0x0, 0x14d27e, 0x0) ioctl$AUTOFS_DEV_IOCTL_OPENMOUNT(0xffffffffffffffff, 0xc0189374, &(0x7f0000000ac0)=ANY=[@ANYBLOB="f4006e3e"]) sync() mmap(&(0x7f0000000000/0x600000)=nil, 0x600000, 0x27fffff, 0x4002011, 0xffffffffffffffff, 0x0) 19:51:23 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:23 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) [ 239.719880][ T4010] loop2: detected capacity change from 0 to 1 [ 239.771069][ T3854] I/O error, dev loop2, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2 [ 239.771534][ T4012] loop0: detected capacity change from 0 to 32768 [ 239.823641][ T4014] loop3: detected capacity change from 0 to 32768 [ 239.827768][ T3854] I/O error, dev loop2, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 [ 239.863641][ T4014] BTRFS warning: duplicate device /dev/loop3 devid 1 generation 8 scanned by syz-executor.3 (4014) [ 239.904926][ T4012] BTRFS warning: duplicate device /dev/loop0 devid 1 generation 8 scanned by syz-executor.0 (4012) [ 239.909609][ T3854] Buffer I/O error on dev loop2, logical block 0, async page read [ 240.008378][ T4010] loop2: [ICS] p1 p2 [ 240.012419][ T4010] loop2: partition table partially beyond EOD, truncated [ 240.066378][ T4010] loop2: p1 start 4188764746 is beyond EOD, truncated [ 240.083221][ T4010] loop2: p2 start 444464470 is beyond EOD, truncated 19:51:23 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) 19:51:23 executing program 2: syz_read_part_table(0x0, 0x0, 0x0) 19:51:23 executing program 5: syz_mount_image$reiserfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x400010, 0x8, &(0x7f0000000540)=[{&(0x7f00000003c0)="cf58", 0x2, 0x6}, {&(0x7f0000000140)="8cb637", 0x3, 0x24}, {&(0x7f0000000080)="00f5001dfd68df5ec5cc2e7f55906b1ee0950eae3a563de99471908f2ba771f2093c51d01de6e705ae01000000cd1ad02b54a4e7fc8b", 0x36, 0x40}, {&(0x7f0000010000)="00040000ec0100001302000012000000000000000002000000010000611cad49e10000001e000000000000000010cc0310000100526549734572334673000000020000000200010002000102000000000100000012312a231212331233123112341341241273797a6b616c6c65720000000000000001001e003ac1655f004eed", 0x80, 0x10000}, {&(0x7f0000000040)="0000000000000500080000000110000003100048b25607818b96e27ea580195600000000000000000000009e08", 0x2d, 0x100c0}, {&(0x7f0000000300)="00040000000000000000000012000000000000000002000000010000611cad49e10000001e00"/64, 0x40, 0x212000}, {&(0x7f0000011300)="010002005c0f0000000000000000000000000000000000000100000002000000000000000000000000002c00d40f0100010000000200000001000000f401000002003000a40f00"/96, 0x60, 0x213000}, {&(0x7f0000000600)="0000000001000000010000000200000028000400020000000000000001000000200004002e2e0000000000002e00e2ff00000000ed4100000300003ac1655f3ac1655f3ac165eaff681dff7b5a40014c8cf4e712f4d5862623831c45f03b61762560c684e8cdecf50d6dbed87b7e98ed1fafaaf89febcc1d257e3c27d13feda4df4a3b6efbf751f0956a2984971aaf1e82ecf78e9d7ee3e6eba6ffa6ae0e58745a6074ad5de693950c848e6d1d280915e053a126e5ab66119ad40a28a1bbab7e086e5ec35feb04b3b7026b71a9ea75936708f4ff1577a37750a042bfa7ca16e3c2783c1667490f02605c3b4611f48808de553d99b7b4cfa060121f1163d83f02dd0397e0a6f8e7db3abd4a2cd116108a3c66abe145341c08df6dcdd692fe1e3b7ddeb7c94c2455446c00"/307, 0x133, 0x213fa0}], 0x20040a, &(0x7f0000000180)=ANY=[@ANYRES64=0x0], 0x0) sync() sync() lchown(&(0x7f0000002a40)='./file0\x00', 0x0, 0x0) mount$fuse(0x0, &(0x7f00000000c0)='./file0\x00', 0x0, 0x38840a1, 0x0) 19:51:23 executing program 1: syz_mount_image$reiserfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x400010, 0x8, &(0x7f0000000540)=[{&(0x7f00000003c0)="cf58", 0x2, 0x6}, {&(0x7f0000000140)="8cb637", 0x3, 0x24}, {&(0x7f0000000080)="00f5001dfd68df5ec5cc2e7f55906b1ee0950eae3a563de99471908f2ba771f2093c51d01de6e705ae01000000cd1ad02b54a4e7fc8b", 0x36, 0x40}, {&(0x7f0000010000)="00040000ec0100001302000012000000000000000002000000010000611cad49e10000001e000000000000000010cc0310000100526549734572334673000000020000000200010002000102000000000100000012312a231212331233123112341341241273797a6b616c6c65720000000000000001001e003ac1655f004eed", 0x80, 0x10000}, {&(0x7f0000000040)="0000000000000500080000000110000003100048b25607818b96e27ea580195600000000000000000000009e08", 0x2d, 0x100c0}, {&(0x7f0000000300)="00040000000000000000000012000000000000000002000000010000611cad49e10000001e00"/64, 0x40, 0x212000}, {&(0x7f0000011300)="010002005c0f0000000000000000000000000000000000000100000002000000000000000000000000002c00d40f0100010000000200000001000000f401000002003000a40f00"/96, 0x60, 0x213000}, {&(0x7f0000000600)="0000000001000000010000000200000028000400020000000000000001000000200004002e2e0000000000002e00e2ff00000000ed4100000300003ac1655f3ac1655f3ac165eaff681dff7b5a40014c8cf4e712f4d5862623831c45f03b61762560c684e8cdecf50d6dbed87b7e98ed1fafaaf89febcc1d257e3c27d13feda4df4a3b6efbf751f0956a2984971aaf1e82ecf78e9d7ee3e6eba6ffa6ae0e58745a6074ad5de693950c848e6d1d280915e053a126e5ab66119ad40a28a1bbab7e086e5ec35feb04b3b7026b71a9ea75936708f4ff1577a37750a042bfa7ca16e3c2783c1667490f02605c3b4611f48808de553d99b7b4cfa060121f1163d83f02dd0397e0a6f8e7db3abd4a2cd116108a3c66abe145341c08df6dcdd692fe1e3b7ddeb7c94c2455446c00"/307, 0x133, 0x213fa0}], 0x20040a, &(0x7f0000000180)=ANY=[@ANYRES64=0x0], 0x0) sync() sync() lchown(&(0x7f0000002a40)='./file0\x00', 0x0, 0x0) mount$fuse(0x0, &(0x7f00000000c0)='./file0\x00', 0x0, 0x38840a1, 0x0) [ 240.318965][ T4027] loop5: detected capacity change from 0 to 8192 19:51:23 executing program 2: syz_read_part_table(0x0, 0x0, 0x0) [ 240.357634][ T4027] REISERFS warning: read_super_block: reiserfs filesystem is deprecated and scheduled to be removed from the kernel in 2025 [ 240.472108][ T4027] REISERFS (device loop5): found reiserfs format "3.6" with non-standard journal [ 240.477689][ T4033] loop1: detected capacity change from 0 to 8192 [ 240.518896][ T4027] REISERFS (device loop5): using ordered data mode [ 240.533542][ T4033] REISERFS warning: read_super_block: reiserfs filesystem is deprecated and scheduled to be removed from the kernel in 2025 [ 240.540378][ T4027] reiserfs: using flush barriers [ 240.552952][ T4027] REISERFS (device loop5): journal params: device loop5, size 512, journal first block 18, max trans len 256, max batch 225, max commit age 30, max trans age 30 [ 240.572347][ T4027] REISERFS (device loop5): checking transaction log (loop5) [ 240.583298][ T4027] REISERFS (device loop5): Using rupasov hash to sort names [ 240.609908][ T4027] REISERFS (device loop5): Created .reiserfs_priv - reserved for xattr storage. 19:51:24 executing program 2: syz_read_part_table(0x0, 0x0, 0x0) [ 240.616486][ T4033] REISERFS (device loop1): found reiserfs format "3.6" with non-standard journal [ 240.628342][ T4033] REISERFS (device loop1): using ordered data mode [ 240.634935][ T4033] reiserfs: using flush barriers [ 240.647476][ T4033] REISERFS (device loop1): journal params: device loop1, size 512, journal first block 18, max trans len 256, max batch 225, max commit age 30, max trans age 30 [ 240.664628][ T4033] REISERFS (device loop1): checking transaction log (loop1) [ 240.689528][ T4033] REISERFS (device loop1): Using rupasov hash to sort names [ 240.724007][ T4033] REISERFS (device loop1): Created .reiserfs_priv - reserved for xattr storage. 19:51:24 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:24 executing program 2: syz_read_part_table(0x0, 0x1, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}]) [ 240.887103][ T4044] loop2: detected capacity change from 0 to 1 19:51:24 executing program 0: mkdir(&(0x7f0000000000)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000080)='./file0\x00', &(0x7f00000000c0)='devpts\x00', 0x0, 0x0) mount$bpf(0x0, &(0x7f0000000040)='./file0\x00', 0x0, 0x20, &(0x7f0000000100)={[{}, {}]}) 19:51:24 executing program 1: syz_read_part_table(0x0, 0x1, &(0x7f00000013c0)=[{&(0x7f00000003c0)="45528a1489aec3476edb7474e0ce645c9d33d4736a2b5acd6fe512e2bfb77a9937d8fa9745304aa817b2892a2cd90e3abd893cc3de10087b37ab747e33912882b4764e4eda651edad706772df29e293cc69d190985a152ccdfeb0b7dd4c0a776725648e481dbfc1982c6a5acb34aa28ef2c892e5df1cd97f3dd58bdd015596dec483129b626c4c83876e1ed5fa79c4d939adc84538052d06de40c9847c5423d5fd9beca88895491015a8af166a266958ebeb7f53f9c3b316441ce5cd1d80c6c25074efaa50a26de8b6f258c2883098cd9b3d0403eedd1e897dbb00496a85faaa192f2bc5750c682533393f92119553fc83fae9a88d0c7a04fecafb56078a3b70237c2cb26f62e0195858a8b1b4b35657d5699aef6fa9928b6d310ebead63dcff535e18921bcd6fecfbbdb2cb9f3f47e9bcfe998b5fe7163c9a6895867eaeff80ac1c148be22b2f761e568943108f8acf1e7ea2b3363ccf37cbd4389956db94f5f457e57a92c0411901666b768ee3b6e878beafdba9835b34b578b2000fbbc977871a970a0bf9237be39305d39da150f86eb20793089d9baca4ab4d50868963ace49606911346da6fdcaf6a93c5ade069251f6fc9d987133159f118617e6357e5f057aadc932669a227a6849d5f1d7f6f960cacd2dffba813d0ab2054cabfabe56dd79bc153409af2f510bf10fac48ecea0a4666c2772f10759bbf12894b55f5e", 0x200}]) 19:51:24 executing program 5: mknodat$null(0xffffffffffffff9c, &(0x7f0000000100)='./file0\x00', 0x2000, 0x103) truncate(&(0x7f0000000040)='./file0\x00', 0x0) [ 241.021627][ T4044] Dev loop2: unable to read RDB block 1 [ 241.046079][ T4044] loop2: unable to read partition table [ 241.062262][ T4044] loop2: partition table beyond EOD, truncated [ 241.089349][ T4050] loop1: detected capacity change from 0 to 1 [ 241.104662][ T4044] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:24 executing program 3: syz_mount_image$reiserfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x400010, 0x8, &(0x7f0000000540)=[{&(0x7f00000003c0)="cf58", 0x2, 0x6}, {&(0x7f0000000140)="8cb637", 0x3, 0x24}, {&(0x7f0000000080)="00f5001dfd68df5ec5cc2e7f55906b1ee0950eae3a563de99471908f2ba771f2093c51d01de6e705ae01000000cd1ad02b54a4e7fc8b", 0x36, 0x40}, {&(0x7f0000010000)="00040000ec0100001302000012000000000000000002000000010000611cad49e10000001e000000000000000010cc0310000100526549734572334673000000020000000200010002000102000000000100000012312a231212331233123112341341241273797a6b616c6c65720000000000000001001e003ac1655f004eed", 0x80, 0x10000}, {&(0x7f0000000040)="0000000000000500080000000110000003100048b25607818b96e27ea580195600000000000000000000009e08", 0x2d, 0x100c0}, {&(0x7f0000000300)="00040000000000000000000012000000000000000002000000010000611cad49e10000001e00"/64, 0x40, 0x212000}, {&(0x7f0000011300)="010002005c0f0000000000000000000000000000000000000100000002000000000000000000000000002c00d40f0100010000000200000001000000f401000002003000a40f00"/96, 0x60, 0x213000}, {&(0x7f0000000600)="0000000001000000010000000200000028000400020000000000000001000000200004002e2e0000000000002e00e2ff00000000ed4100000300003ac1655f3ac1655f3ac165eaff681dff7b5a40014c8cf4e712f4d5862623831c45f03b61762560c684e8cdecf50d6dbed87b7e98ed1fafaaf89febcc1d257e3c27d13feda4df4a3b6efbf751f0956a2984971aaf1e82ecf78e9d7ee3e6eba6ffa6ae0e58745a6074ad5de693950c848e6d1d280915e053a126e5ab66119ad40a28a1bbab7e086e5ec35feb04b3b7026b71a9ea75936708f4ff1577a37750a042bfa7ca16e3c2783c1667490f02605c3b4611f48808de553d99b7b4cfa060121f1163d83f02dd0397e0a6f8e7db3abd4a2cd116108a3c66abe145341c08df6dcdd692fe1e3b7ddeb7c94c2455446c00"/307, 0x133, 0x213fa0}], 0x20040a, &(0x7f0000000180)=ANY=[@ANYRES64=0x0], 0x0) sync() sync() lchown(&(0x7f0000002a40)='./file0\x00', 0x0, 0x0) mount$fuse(0x0, &(0x7f00000000c0)='./file0\x00', 0x0, 0x38840a1, 0x0) 19:51:24 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:24 executing program 0: sendmsg$FOU_CMD_DEL(0xffffffffffffffff, &(0x7f00000028c0)={0x0, 0x0, 0x0}, 0x0) r0 = socket$igmp6(0xa, 0x3, 0x2) ioctl$sock_SIOCOUTQ(r0, 0x5421, &(0x7f0000000300)) 19:51:24 executing program 5: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000000)=@in={0x10, 0x2}, 0x10, 0x0, 0x0, &(0x7f0000000040)=ANY=[@ANYBLOB="1000000084000000080000000000000010"], 0x20}, 0x0) [ 241.147632][ T4050] Dev loop1: unable to read RDB block 1 [ 241.153324][ T4050] loop1: unable to read partition table [ 241.182289][ T4056] loop3: detected capacity change from 0 to 8192 19:51:24 executing program 2: syz_read_part_table(0x0, 0x1, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}]) 19:51:24 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendto$inet(r0, 0x0, 0x0, 0x0, &(0x7f00000001c0)={0x10, 0x2}, 0x10) getsockopt$inet_sctp_SCTP_DEFAULT_SNDINFO(r0, 0x84, 0x21, &(0x7f00000003c0), &(0x7f0000000400)=0x10) [ 241.205480][ T4050] loop1: partition table beyond EOD, truncated [ 241.229245][ T4050] loop_reread_partitions: partition scan of loop1 () failed (rc=-5) [ 241.240111][ T4056] REISERFS warning: read_super_block: reiserfs filesystem is deprecated and scheduled to be removed from the kernel in 2025 [ 241.270449][ T4056] REISERFS (device loop3): found reiserfs format "3.6" with non-standard journal [ 241.276161][ T4064] loop2: detected capacity change from 0 to 1 [ 241.287498][ T4056] REISERFS (device loop3): using ordered data mode [ 241.287906][ T3854] I/O error, dev loop2, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2 [ 241.304644][ T3854] I/O error, dev loop2, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 [ 241.314073][ T3854] Buffer I/O error on dev loop2, logical block 0, async page read [ 241.339070][ T4064] Dev loop2: unable to read RDB block 1 [ 241.344676][ T4064] loop2: unable to read partition table [ 241.355998][ T4064] loop2: partition table beyond EOD, truncated [ 241.362383][ T4064] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:24 executing program 5: r0 = socket$inet_sctp(0x2, 0x1, 0x84) getsockopt$inet_sctp_SCTP_PR_SUPPORTED(r0, 0x84, 0x26, &(0x7f0000000000), &(0x7f0000000100)=0x8) 19:51:24 executing program 1: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f00000001c0)={&(0x7f0000000040)=@in6={0x1c, 0x1c, 0x1}, 0x1c, 0x0, 0x0, &(0x7f0000001600)=ANY=[@ANYBLOB="1c000000840000000a000000fe8000000000000000000000000000bb1000000084"], 0x58}, 0x0) [ 241.372217][ T4056] reiserfs: using flush barriers 19:51:25 executing program 1: getresuid(&(0x7f0000001d00), 0x0, 0x0) 19:51:25 executing program 0: r0 = socket(0x1c, 0x3, 0x0) sendmsg$inet_sctp(r0, &(0x7f0000001300)={&(0x7f0000000040)=@in6={0x1c, 0x1c, 0x1}, 0x1c, &(0x7f0000000080)=[{&(0x7f00000001c0)="1b22d34d5b90add92e7d14a5cf5aaebdda6ef98bf6a7c489d72561831f0b66fa1bed23227286b60f1588bc48f08a54b776e364a20dd7378b7ff78540d236a6d5401ab8a1bab5b632b397381c2b1078b2ad2c2ce93bc365b8a83add1e4e92da0ce69ef261f2d9adab6660332ce6caa34c8d6e0afcbade78fbe923c7db83916fe994fda640f2ffd234c5e4932b653180cea0e332c00683c75ce5772fdc5c29d96e4399ccc2991c8540585374f8f812a24919712146865d41ce171fe084f53e9a403f1c0a66b868b52bab8375ab1af2582472b17a64b041955af6", 0xd9}, {&(0x7f00000002c0)="95fe2e1228216243d1701588c7e30dabeb97611d4d89ec896dc675cb661cfd6ade4961a58cb2d62642b1511865c2af16abef3cad64513ae9eb2f963030f9c1ff0142ef613a58c113ee12f0ff68e54e8b4fefbd46b3eea3018c12ab772dab1d26a1d4919627ac7b1e6ed5670d7c22b3bfe4d40ec6960882447c9a568250460befe1c2a37f0d1f7573adf670d7bba7387a769cc08fbd01146925fef371fdaadc30ccefcb9e621e9b3e61da0bb88978e3fc49c43876b54edd6cc925f0af3367eee739d2acdf7d5103f4675c9544c6df6ff9a3b4e42534588c32b10b9b226b8848b698f9da679205149e5c4e5339d8814d79437870e3a8a6763fd468cefb342fbe6ae08678fb3a76aa83a549c333a6876f61837fdcb55a59023c7a765adc2d762d4f5f5e2aabe6f47dce9e815db5846f6475d70c9f2cc9f46ea679c81403b83b8c68f236d72abe8885ee747b371a7d7273d5d0abb745d69b7299074bb03507a9aecb91d515e53dce10764ee7a259505c2932cc702e4054011a74aa647d2b965447144203e074c0b2f5a667ef200c9165cec737d24cf8368303da15bacda7633a9fbdba49d36664fe1ccd0bdfb3aaa3b142144cf80044510f4bc7279d9e717031b3c01a975712839cedd0cebcff9e5b9ac72214209c4f2c0ac00ef0213a0e40af0336d42645530ec8563373a30b6e57306cdbe1fe2b5b3633e8475f63d11b96bef87c559fa14952eb4043016e85543c8d823263d9991b4453e8ccc92ca60501bda74fe678bd77f69a760da232de1007d8faa3fa795082cf59a5f8324ec2f3107b4cbc9dce320d6f1fc54d9a10a0db0df34c1cf3ae61997873503de42ddecd04542109d3febddf6739de430a1dd3771814549a62f2f3636e2a587e3cc4b309764ec6087b2d16bbf22a275c26fb7de3ee466bf3047fb144c6fb9be1d6fd1f51055265d00a26338651f896f2ec05ba358db1c6eead788f865408ffa8dfb756e156c1d8e3e8de8e28f0cc2eb99d8eaa1b9323f09795295eee1b05e1696a243e4fe46789a9e5b79faa6ea17d6e0460f8f6b5782979d395b5025523327b3167140918336139cbad9c8d79d1714a226b1c5a947aba42408e1657972f580a69f21eb8bb2a74bc040fb9166d48474f285e716de570b74a03ca9ef1cf83cd27183e554a984f8e939dd5e1e387e4f7024685879a745df490340db1dab4e55e9ab6690cd40bcb5e2da26caa9b1022f7f686a860855573b6a488b0b41839697559b965f901ee4663b3f88d9eda58ebf8f6ff9a793779dac39e141b5adfaf61d0a1253bff351e7bae5d29dba970cd4be9105d0d189dc37928357bc16b0a22c3919e3d9c3ac1df3b7d57c4c35dcd55657e4d908210a63d7ff3a454171fe2290a40d81e1aba406fdb38339b759e1ea011ab48588b31d0b5b32fc07c31afd62d727c9329d2085b305436e4c3a6fb1a0071f03d5ae511b8ba5b48ae32ccf1ed9dc59999e7c0dc8d8b473ad5d998a199f385ff26c668907952834d88dca15fe5212d563871636cb11ce8a78c70491eacba26b640ca23acac7b052b6f91c8301716702c576618a11e596dd94a30d65604c6f42860083bbd48618efec1063c87efeff8eec0222dad6242fcc29c1d4527aab2af76188b987501d9e9e95e2d48106e33fde42a44c18d89b3c597616c4728c9fe75ae6bb2c5160c296a97a10c8b7421e31e89ce3d3bdb1cf1e582fb3339a0d24301069cbb111453d533d5e04ab726cbf7ade3bb11448b86f504876fd26bd2110d516667d49bfea986dacf3cb24dba65193cf2824678dc37231b8339e6b0b800cec4646899e307950df642e35c522d5022001ad0f4b1c66779923f318cc0f4e1bacb7e362892db70b07cdfcfff3886bd9fd4ee6a4b05b875e1dc2c32407c4cce879f9b5b99695a222946627a21264b73d0eca1e8a7df2cc5e0dc3ef71d2e56aae888ba4ec28272359814af1ad8462dee331efe915226f47873d64a03d1c053f4373647171f939a92d3fa46c667bb37f72d7fd68f56e0e20e51677c86330e2b98522b002ab0cc5c01e6a756cc6e1e22dcae5d0f64d4be9a21d888983a0db6278444db140f769ec0308fa88a0aabe851da3cb95abf01b512029938e7ce6de8917eb7f0a3e3558b7c0461b8a29c8a2c4a8272ddf38ca2d3d11c243538f8185cbd87b0034c508f5e15a0b04b50fffa52bbdbc46062a104d4a4e6d18a4e06a6ba1f82b5a14dab52045803e76d379348aba31eecfba49c51e3d34b4ce9b07a459e5627ce4b1c47f57cd56d28109ca864f05279400333c42da1c58a765f2b25211c404ce5c02afccdb997e721288a71c30e1cf46f8122a20f9f0ffe7cd3ea89b27ae020733244c5fae3a047fbc15e26a531a575228d6fb87b8b44b77b7a86b70f8568f21de4c0a1b3038d5d137dd70e4f642542087f82674351eab56fc0f186a2c522e8d1d7bd18a09107fbafd64a9e7795a5167c339b373d2401032c5244a74fd392048ab3d1e55876b6ebec839614167d57c47c9b1be7a4e3152fcaf8190fe4b3f649f82148a651b8e0fb87bcd745838c7ea1a539d18a8b6b7a0786324684389b25fedccafc1db31828791aa76a98becd85172f995c5fefde8b4d076fdc09fe1bbdb06f526279384f8d5a261b2663c7ff037063c1cd62bfd2b3f889ac4a83591cf1213da46bcda83537d381b94388774f6c634c00901ead93201179605a1731b7f0d6c0eeb84b34eb10c07a5ba2e9c139377ff5629c8fcab258812328f39fa3f1ff2c15bee90822d5ae6efeddf5a7dd5af838debecc6780dfc96e395274f43ca60e0dcbc3cd45e9b58682c91edacacdd0b35607cf69103e940a7bd2fada1b5eca89dd4dc44bbacad7b6d4fd7318ac6387cbc083604328c63a840853680aca224215a9ef7dc6ccb300e4fcd621c4882d0690a4a708851d65ebdab9831ff6e5fcaa11c27cba4948294c9c09af103df26c8a7662b8378afdd3c51bc1b20275d7814f4c3d08d37cb2eb6ce2ec06aa0b6736499d308e63df044d096cb28f5e143ebf8587b374b0125dc1d5736443d9ab45d514f8b582a04670a14c1b085ed0c0ea4297d122049aace2230597087fb0f4a2c3d5d5dcd1648b0a2f07365caa2bd6e787186006ca12a9920c9f208092bfd1578ff66b402f488316a9e86024ce290217c31ea7def908bb992118c6eb97c4c33703599a7e8fed65dde4f9b40355b4a78d44adf126884c9564f4dedc063c30217f4c043fac6bbc7dc6460f8f314f832a2731cc79e8a44402f62c549798852b76592f48841d2972e40a1e9eb653bcc8a8674d50ef617c642025ae6ce78a90cdbe6e7aa2c18df517f1866c2a50c95bf4b88dc6ff8e0016891de27389b1084449168b55d813c9d923ba2195009bade420b9f01a2c939551d70930bd2d04f36e67a498cb3d262ced463b9dc83bdcf9978a5ee3e1fb13d57f7ebef989c9c536afc8697eb7c8ae01bc61fa9cc1ae529f775bbaf3bd8186452e33dec35abc615c78d08e9ee78b88c3c897756964c098a92cdc422a748017a8e49b152b4be1bce2de11b27a663081f4de8a27682d4229404bf1dcf5eff32f5a6c48399ac8f5ba2f5ff89d69c67c2ce68825dc5f174c60ff2e30d0c4714c30556a54c4a09cf47e8d0f442b08822a0557a770ac83d6f6c2d1eaf920b3003e554fe1f6b7cebfa42080729793753700a6f631e6755eb9b8e8b9846ae91c38047f0e5241d2bc5e23fe4e3c74a01c1491bf126159b2e41cf89205704e1339cd6a820347a0ef6e227afd72cfa9a8e7f6aad13a9ed6f46e1c97e78712654ca043dc00a2e7378e64ea65458b09d47dcb6e575dcb0c0a7c91bfa58b773825a0ebce0406b6d43813e508a49b594982c2f03c5bb114a90e382bccc66ef1bb8c0e4d236e3ffd74daf5363ed724dc83d822183e6c3699482b0bb77767e91ab29ffbf5113852858e8a6d4a6dc44aa8f13f939fcac5cf00bff75268a2ff51645a35e025812682f7f832b8e8ff37cdf2bf00875fbadc8c609ded6b6e89fc194cb7115cee262908ff60620acd9b9de15996ae31230c9abce53d47d49cc873a876341a24d72228272f43c64a6a3d95bf25eaa5ea362178b0eacad00719cced544dd1669bd2e88d7a6456634fdf38b4901731e6a842815288ab752baa0d0cd8ceb93b7710f637e50c4d9fbefca3db04217755d0d3c6420469f6bad8befa8e3a2ea180c26144cbfc57735529ecf01b71adcfc14eb0f6c3e1cddfda8f5aa9e6a3517f790372dd1dd0f103ecb23ff559d1b9dc585f25d98b499b2c43af77bd711bd0bb66e2bc03135241b518072494803d9d99e31b1db3bdc0390ee689272ef8c064c104ab325121510afe349dbaad24035bca34e8d4c7b00aea4a8f6d9b1ca897e1facf022bfbe0d28571fbb218b64f45def85e698cc31fa81de78987cb380fc5dd2c4b72a321163bf5292e76e19d9182a3076fd183ea544f0fb0551f2561b79e95ee55ba695b8251cd1a3f8f70a30e4a7b6492fc6e1dfceee521d502e725d5fb857b115199a881d7a26aa22dfa6ab22d584150ceec47f7dedc3d34151db55cc4bea5e13eed0bcbc113bc378d951c1d8d886a1521de75d58b0fb9cc070d09e8ad771d1ed4887e6046e51480cafe7c24e316212921ea6987ee0a8fdae1215b8d4058cc41a4ff68b58bec8264d1136222b6a6da8fe4ae2a5a701d4ec09498e4390bb5d6be8306ecb7c4770e47fa6f2fd2931aae44c79c6fadd366b40c6cc9877392f516574336f735f0075e2484a4daf4cd7365d3f11a6a68166cce9c06698f1e395f91975a5e9efb712eac72f6d139fc596ecf6cdf126ee6e53cb42181df839ce3e6fd3d50f70410d64707e20d082599849055eedc1a24380fb16b08aafef9a028973276efeb954705ed4684dfd082c2b6551b294374a6433dbddfb177c9c2de5ba48c5b75a60f701e0d1f037e7f5b4b1be9a94acb740e847bacdd8c3ea7610a72db5ad1b0f3c6034fef651c1ce746bd79c5a804c61709d0e9f25b402bd80a54f39d51983918224f933ca94ed685fd60aeb7ae9d156b416d1f81a65b22cca29c5158279cf1287927b2e47378ac84b355e6db76256f7acacd85a3529da1a455d3241393b1b7a4b93f9ed652664b6223582c6f4d757c1dc141d11d4a0d9c4216f5c588da478ff42ebcaacc84d5c19aeaccbcd342acb50d1c5f348015359924cafa611b727b9e3133bff1e47152db2e0387f7ad1be61117a80efb21d6757e29b0bc7a7f605719d8faf6bd81ad1d20614e3e7e20f69c02b20a3d65ed76ce4f17df48a0e3a08ecd648be13866eb5693145a448162145ede5ffa5e7fce623f29e036f9e1093f64b427f6605296eb6dfde2b5ac85d76e573fcef0b5e871c4680342bc4143f4d6", 0xedc}], 0x2}, 0x0) 19:51:25 executing program 1: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=[@dstaddrv6={0x1c, 0x84, 0xa, @ipv4={'\x00', '\xff\xff', @multicast1}}, @authinfo={0x10}, @prinfo={0x14}, @init={0x14}, @dstaddrv6={0x1c, 0x84, 0xa, @mcast1}, @prinfo={0x14}, @sndrcv={0x2c}], 0xb0}, 0x0) 19:51:25 executing program 2: syz_read_part_table(0x0, 0x1, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}]) [ 241.400943][ T4056] REISERFS (device loop3): journal params: device loop3, size 512, journal first block 18, max trans len 256, max batch 225, max commit age 30, max trans age 30 [ 241.436842][ T4056] REISERFS (device loop3): checking transaction log (loop3) [ 241.477642][ T4056] REISERFS (device loop3): Using rupasov hash to sort names [ 241.485439][ T4056] REISERFS (device loop3): Created .reiserfs_priv - reserved for xattr storage. [ 241.574184][ T4082] loop2: detected capacity change from 0 to 1 [ 241.638995][ T4082] Dev loop2: unable to read RDB block 1 [ 241.644824][ T4082] loop2: unable to read partition table [ 241.673867][ T4082] loop2: partition table beyond EOD, truncated [ 241.681065][ T4082] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:25 executing program 3: r0 = socket$inet_sctp(0x2, 0x5, 0x84) getsockopt$inet_sctp_SCTP_HMAC_IDENT(r0, 0x84, 0x14, &(0x7f0000000340), &(0x7f0000000380)=0x4) 19:51:25 executing program 5: mincore(&(0x7f0000ffc000/0x4000)=nil, 0x4000, &(0x7f0000000080)=""/143) munlock(&(0x7f0000ffe000/0x2000)=nil, 0x2000) 19:51:25 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:25 executing program 1: r0 = socket$inet6_sctp(0x1c, 0x5, 0x84) r1 = dup(r0) setsockopt$inet_tcp_TCP_CONGESTION(r1, 0x6, 0x40, 0x0, 0x0) 19:51:25 executing program 0: r0 = socket$inet6_sctp(0x1c, 0x1, 0x84) connect$inet6(r0, &(0x7f0000000080)={0x1c, 0x1c, 0x1}, 0x1c) getsockname$inet6(r0, 0x0, &(0x7f0000000040)) 19:51:25 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {0x0}]) 19:51:25 executing program 5: r0 = socket$inet6_sctp(0x1c, 0x1, 0x84) r1 = socket$inet_sctp(0x2, 0x1, 0x84) r2 = dup2(r1, r0) getsockopt$inet_sctp_SCTP_ENABLE_STREAM_RESET(r2, 0x84, 0x900, &(0x7f00000000c0), &(0x7f0000000100)=0x8) [ 241.845066][ T4098] loop2: detected capacity change from 0 to 1 [ 241.855124][ T3854] I/O error, dev loop2, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2 19:51:25 executing program 1: r0 = socket(0x1c, 0x3, 0x0) sendmsg$inet_sctp(r0, &(0x7f0000000180)={&(0x7f0000000040)=@in6={0x1c, 0x1c, 0x2}, 0x1c, 0x0}, 0x0) [ 241.937574][ T4098] Dev loop2: unable to read RDB block 1 [ 241.964419][ T4104] sctp: [Deprecated]: syz-executor.3 (pid 4104) Use of int in max_burst socket option. [ 241.964419][ T4104] Use struct sctp_assoc_value instead 19:51:25 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendto$inet(r0, 0x0, 0x0, 0x0, &(0x7f00000001c0)={0x10, 0x2}, 0x10) getsockopt$inet_sctp_SCTP_MAXSEG(r0, 0x84, 0xe, &(0x7f0000000000), &(0x7f0000000040)=0x8) 19:51:25 executing program 3: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f00000013c0)={&(0x7f0000000000)=@in6={0x1c, 0x1c, 0x1}, 0x1c, 0x0, 0x0, &(0x7f0000000100)=[@prinfo={0x14}], 0x14}, 0x0) [ 241.996091][ T4098] loop2: unable to read partition table [ 242.002284][ T4098] loop2: partition table beyond EOD, truncated [ 242.046373][ T4098] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:25 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {0x0}]) 19:51:25 executing program 0: r0 = socket$inet6_udplite(0x1c, 0x2, 0x88) r1 = dup(r0) sendmsg$unix(r1, &(0x7f0000001a00)={&(0x7f0000000000)=@abs={0x8}, 0x8, &(0x7f0000001180)=[{0x0}, {&(0x7f0000001040)='H', 0x1}], 0x2}, 0x0) 19:51:25 executing program 4: io_uring_enter(0xffffffffffffffff, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(0xffffffffffffffff, 0x15, 0x0, 0x2) io_uring_enter(0xffffffffffffffff, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:25 executing program 5: r0 = socket$inet_sctp(0x2, 0x5, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000240)={&(0x7f0000000040)=@in={0x10, 0x2}, 0x10, 0x0}, 0x0) sendmsg$inet_sctp(r0, &(0x7f0000000280)={&(0x7f0000000000)=@in6={0x1c, 0x1c}, 0x1c, 0x0, 0x0, &(0x7f0000000340)=[@sndinfo={0x1c}], 0x1c}, 0x0) 19:51:25 executing program 3: r0 = socket(0x1b, 0x3, 0x0) sendmsg$unix(r0, &(0x7f0000000280)={0x0, 0x0, 0x0, 0x0, &(0x7f0000000200)=[@cred], 0x68}, 0x1) 19:51:25 executing program 1: r0 = socket$inet_sctp(0x2, 0x5, 0x84) setsockopt$inet_sctp_SCTP_PEER_ADDR_THLDS(r0, 0x84, 0x23, &(0x7f00000000c0), 0x90) 19:51:25 executing program 5: mkdirat(0xffffffffffffff9c, &(0x7f0000000100)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000180)='./file0\x00', 0x0, 0xffffffffffffffff, 0x0) chdir(0x0) writev(0xffffffffffffffff, 0x0, 0x0) 19:51:25 executing program 4: io_uring_enter(0xffffffffffffffff, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(0xffffffffffffffff, 0x15, 0x0, 0x2) io_uring_enter(0xffffffffffffffff, 0x1004, 0x0, 0x0, 0x0, 0x0) [ 242.279571][ T4123] loop2: detected capacity change from 0 to 1 19:51:25 executing program 1: r0 = socket$inet6_udplite(0x1c, 0x2, 0x88) bind(r0, &(0x7f00000009c0)=@in={0x10, 0x2}, 0x10) [ 242.346748][ T4123] Dev loop2: unable to read RDB block 1 [ 242.353169][ T4123] loop2: unable to read partition table [ 242.367366][ T4123] loop2: partition table beyond EOD, truncated [ 242.388254][ T4123] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:26 executing program 3: r0 = socket$inet6_sctp(0x1c, 0x5, 0x84) bind(r0, &(0x7f00000001c0)=@in6={0x1c, 0x1c, 0x1}, 0x1c) 19:51:26 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) setsockopt$inet_sctp_SCTP_DEFAULT_SNDINFO(r0, 0x84, 0x21, &(0x7f0000000000)={0x0, 0x1100}, 0x10) sendmsg$inet_sctp(r0, &(0x7f0000000200)={0x0, 0x0, 0x0, 0x0, 0x0, 0x10}, 0x0) 19:51:26 executing program 4: io_uring_enter(0xffffffffffffffff, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(0xffffffffffffffff, 0x15, 0x0, 0x2) io_uring_enter(0xffffffffffffffff, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:26 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {0x0}]) 19:51:26 executing program 5: mkdirat(0xffffffffffffff9c, &(0x7f0000000100)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000180)='./file0\x00', 0x0, 0xffffffffffffffff, 0x0) chdir(0x0) writev(0xffffffffffffffff, 0x0, 0x0) 19:51:26 executing program 4: r0 = syz_io_uring_setup(0x0, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:26 executing program 0: r0 = socket$inet6_sctp(0x1c, 0x5, 0x84) connect$inet6(r0, &(0x7f00000001c0)={0x1c, 0x1c}, 0x1c) connect$inet6(r0, &(0x7f0000000180)={0x1c, 0x1c}, 0x1c) 19:51:26 executing program 4: r0 = syz_io_uring_setup(0x0, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:26 executing program 5: mkdirat(0xffffffffffffff9c, &(0x7f0000000100)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000180)='./file0\x00', 0x0, 0xffffffffffffffff, 0x0) chdir(0x0) writev(0xffffffffffffffff, 0x0, 0x0) 19:51:26 executing program 1: r0 = socket(0x1c, 0x5, 0x0) bind(r0, &(0x7f0000000000)=@un=@file={0xa}, 0xa) [ 242.583494][ T4150] loop2: detected capacity change from 0 to 1 19:51:26 executing program 3: r0 = socket(0x1b, 0x3, 0x0) sendmsg$inet_sctp(r0, &(0x7f00000002c0)={0x0, 0x0, 0x0}, 0x0) 19:51:26 executing program 4: r0 = syz_io_uring_setup(0x0, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:26 executing program 5: mkdirat(0xffffffffffffff9c, &(0x7f0000000100)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000180)='./file0\x00', 0x0, 0xffffffffffffffff, 0x0) chdir(0x0) writev(0xffffffffffffffff, 0x0, 0x0) [ 242.697790][ T4150] Dev loop2: unable to read RDB block 1 [ 242.718063][ T4150] loop2: unable to read partition table [ 242.749755][ T4150] loop2: partition table beyond EOD, truncated 19:51:26 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000000)=@in={0x10, 0x2}, 0x10, 0x0}, 0x0) setsockopt$inet_sctp_SCTP_AUTH_DELETE_KEY(r0, 0x84, 0x16, &(0x7f0000000140)={0x0, 0xdef}, 0x8) 19:51:26 executing program 4: r0 = syz_io_uring_setup(0x1c16, 0x0, &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) [ 242.791970][ T4150] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:26 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)}]) 19:51:26 executing program 5: r0 = socket$inet_sctp(0x2, 0x5, 0x84) connect$inet(r0, &(0x7f0000000240)={0x10, 0x2}, 0x10) 19:51:26 executing program 1: r0 = socket$inet6_sctp(0x1c, 0x5, 0x84) connect$inet6(r0, &(0x7f0000000400)={0x1c, 0x1c, 0x3}, 0x1b) 19:51:26 executing program 0: r0 = socket$inet_tcp(0x2, 0x1, 0x0) r1 = dup(r0) setsockopt$inet_tcp_buf(r1, 0x6, 0x24, &(0x7f0000000040)="ed", 0x1) 19:51:26 executing program 4: r0 = syz_io_uring_setup(0x1c16, 0x0, &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:26 executing program 5: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000040)=@in6={0x1c, 0x1c, 0x2}, 0x1c, 0x0}, 0x0) 19:51:26 executing program 3: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f00000001c0)={&(0x7f0000000040)=@in6={0x1c, 0x1c, 0x1}, 0x1c, 0x0, 0x0, &(0x7f0000001600)=ANY=[], 0x58}, 0x0) 19:51:26 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) recvmsg(r0, &(0x7f0000000340)={0x0, 0x0, 0x0, 0x0, &(0x7f0000000240)=""/239, 0xef}, 0x2) 19:51:26 executing program 4: r0 = syz_io_uring_setup(0x1c16, 0x0, &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:26 executing program 3: madvise(&(0x7f0000ffc000/0x4000)=nil, 0x4000, 0x0) [ 243.042041][ T4186] loop2: detected capacity change from 0 to 1 19:51:26 executing program 5: socket(0x1b, 0x3, 0x3) 19:51:26 executing program 0: r0 = socket$inet6_udplite(0x1c, 0x2, 0x88) r1 = dup(r0) sendmsg$unix(r1, &(0x7f0000001a00)={0x0, 0x0, 0x0}, 0x0) [ 243.106772][ T4186] Dev loop2: unable to read RDB block 1 [ 243.117271][ T4186] loop2: unable to read partition table [ 243.142126][ T4186] loop2: partition table beyond EOD, truncated [ 243.188410][ T4186] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:26 executing program 1: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000040)=@in6={0x1c, 0x1c, 0x1}, 0x1c, 0x0, 0x0, &(0x7f0000000180)=ANY=[@ANYBLOB="108b"], 0x10}, 0x0) 19:51:26 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, 0x0, &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:26 executing program 3: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000000)=@in={0x10, 0x2}, 0x10, 0x0, 0x0, &(0x7f0000000040)=[@init={0x14}], 0x14}, 0x0) 19:51:26 executing program 0: r0 = socket$inet6_sctp(0x1c, 0x1, 0x84) recvmsg(r0, &(0x7f0000000640)={0x0, 0x0, 0x0, 0x0, &(0x7f0000000600)=""/5, 0x5}, 0x41) 19:51:26 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)}]) 19:51:26 executing program 5: getresgid(0x0, &(0x7f0000000c00), &(0x7f0000000c40)) 19:51:26 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, 0x0, &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:26 executing program 3: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000000)=@in={0x10, 0x2}, 0x9, 0x0}, 0x0) 19:51:26 executing program 1: r0 = socket$inet_sctp(0x2, 0x1, 0x84) getsockopt$inet_sctp_SCTP_GET_PEER_ADDR_INFO(r0, 0x84, 0x101, &(0x7f0000000140), &(0x7f0000000200)=0x98) 19:51:27 executing program 5: r0 = socket$inet_tcp(0x2, 0x1, 0x0) setsockopt$inet_tcp_buf(r0, 0x6, 0x24, &(0x7f0000000000)='F', 0x1) [ 243.363513][ T4216] loop2: detected capacity change from 0 to 1 [ 243.416676][ T4216] Dev loop2: unable to read RDB block 1 [ 243.432284][ T4216] loop2: unable to read partition table 19:51:27 executing program 1: socketpair(0x1, 0x2, 0x0, &(0x7f0000000040)={0xffffffffffffffff}) bind(r0, &(0x7f0000000080)=@un=@abs={0x8}, 0x8) 19:51:27 executing program 3: socket$inet6_sctp(0x1c, 0x800000000000005, 0x84) 19:51:27 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) setsockopt$inet_sctp_SCTP_HMAC_IDENT(r0, 0x84, 0x14, &(0x7f00000000c0)={0x2, [0x1, 0x0]}, 0x8) 19:51:27 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, 0x0, &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:27 executing program 5: r0 = socket$inet_sctp(0x2, 0x5, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000000)=@in={0x10, 0x2}, 0x10, 0x0}, 0x0) [ 243.462323][ T4216] loop2: partition table beyond EOD, truncated [ 243.496001][ T4216] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:27 executing program 1: r0 = socket$inet_sctp(0x2, 0x1, 0x84) r1 = dup(r0) setsockopt$inet_sctp_SCTP_DEFAULT_PRINFO(r1, 0x84, 0x22, &(0x7f0000000000), 0xc) [ 243.568463][ T2995] I/O error, dev loop2, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2 [ 243.595138][ T2995] Buffer I/O error on dev loop2, logical block 0, async page read 19:51:27 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)}]) 19:51:27 executing program 0: r0 = socket(0x1c, 0x3, 0x0) sendmsg$inet_sctp(r0, &(0x7f0000000180)={&(0x7f0000000040)=@in6={0x1c, 0x1c, 0x2}, 0x40, 0x0}, 0x0) 19:51:27 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), 0x0) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:27 executing program 5: r0 = socket$inet_sctp(0x2, 0x1, 0x84) recvmsg(r0, &(0x7f0000000340)={0x0, 0x0, 0x0}, 0x0) 19:51:27 executing program 1: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000140)=@in6={0x1c, 0x1c}, 0x1c, 0x0, 0x0, &(0x7f0000000240)=[@authinfo={0x10}], 0x10}, 0x0) 19:51:27 executing program 3: r0 = socket(0x1c, 0x3, 0x0) sendmsg$inet_sctp(r0, &(0x7f0000000180)={&(0x7f0000000000)=@in6={0x1c, 0x1c, 0x1}, 0x1c, 0x0, 0x0, &(0x7f00000001c0)=[@dstaddrv6={0x1c, 0x84, 0xa, @ipv4={'\x00', '\xff\xff', @local={0xac, 0x14, 0x0}}}, @dstaddrv6={0x1c, 0x84, 0xa, @empty}, @sndinfo={0x1c}, @init={0x14}, @dstaddrv6={0x1c, 0x84, 0xa, @empty}, @sndrcv={0x2c}], 0xb0}, 0x0) [ 243.623683][ T2995] ldm_validate_partition_table(): Disk read failed. [ 243.631068][ T2995] Dev loop2: unable to read RDB block 0 [ 243.637734][ T2995] loop2: unable to read partition table [ 243.643664][ T2995] loop2: partition table beyond EOD, truncated 19:51:27 executing program 5: r0 = socket$inet_sctp(0x2, 0x1, 0x84) bind(r0, &(0x7f0000000000)=@in6={0x1c, 0x1c, 0x1}, 0x1c) 19:51:27 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), 0x0) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:27 executing program 1: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000000)=@in={0x10, 0x2}, 0x10, 0x0}, 0x0) setsockopt$inet_sctp_SCTP_RESET_ASSOC(r0, 0x84, 0x902, &(0x7f0000000040), 0x4) [ 243.739688][ T4250] loop2: detected capacity change from 0 to 1 19:51:27 executing program 5: clock_gettime(0x0, &(0x7f0000000480)) clock_settime(0x0, &(0x7f00000004c0)) [ 243.787407][ T4250] Dev loop2: unable to read RDB block 1 [ 243.809552][ T4250] loop2: unable to read partition table 19:51:27 executing program 1: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=[@dstaddrv6={0x1c, 0x84, 0xa, @ipv4={'\x00', '\xff\xff', @multicast1}}, @prinfo={0x14}], 0x30}, 0x0) 19:51:27 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), 0x0) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) [ 243.839579][ T4250] loop2: partition table beyond EOD, truncated [ 243.871786][ T4250] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:27 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b7", 0x8}]) 19:51:27 executing program 0: r0 = socket(0x1c, 0x3, 0x0) sendmsg$inet_sctp(r0, &(0x7f0000000180)={&(0x7f0000000040)=@in6={0x1c, 0x1c, 0x2}, 0x1c, 0x0}, 0x294) 19:51:27 executing program 5: r0 = socket(0x2, 0x3, 0x0) sendmsg$inet_sctp(r0, &(0x7f0000000180)={&(0x7f0000000040)=@in={0x10, 0x2}, 0x10, 0x0}, 0x0) 19:51:27 executing program 1: r0 = socket(0x1c, 0x10000002, 0x0) sendmsg$inet_sctp(r0, &(0x7f0000000180)={&(0x7f0000000040)=@in6={0x1c, 0x1c, 0x2}, 0x1c, 0x0}, 0x294) 19:51:27 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(0xffffffffffffffff, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:27 executing program 3: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000001240)={&(0x7f0000000000)=@in={0x10, 0x2}, 0x10, 0x0, 0x0, &(0x7f0000001340)=ANY=[@ANYBLOB="1c"], 0x30}, 0x0) 19:51:27 executing program 1: r0 = socket$inet6_sctp(0x1c, 0x1, 0x84) bind(r0, &(0x7f0000000280)=@in6={0x1c, 0x1c, 0x3}, 0x1c) 19:51:27 executing program 3: r0 = socket$inet6_sctp(0x1c, 0x5, 0x84) r1 = socket$inet6_sctp(0x1c, 0x5, 0x84) r2 = dup2(r1, r0) sendmsg$unix(r2, &(0x7f0000001740)={&(0x7f0000000280)=@abs={0x8}, 0x8, 0x0, 0x0, &(0x7f0000001700)=[@rights], 0x10}, 0x0) [ 244.082230][ T4283] loop2: detected capacity change from 0 to 1 [ 244.151531][ T4283] Dev loop2: unable to read RDB block 1 [ 244.166004][ T4283] loop2: unable to read partition table 19:51:27 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000000)=@in={0x10, 0x2}, 0x10, 0x0, 0x0, &(0x7f00000000c0)=[@dstaddrv6={0x1c, 0x84, 0xa, @mcast2}, @dstaddrv4={0x10}, @authinfo={0x10}], 0x3c}, 0x0) 19:51:27 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(0xffffffffffffffff, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) [ 244.196826][ T4283] loop2: partition table beyond EOD, truncated [ 244.255141][ T4283] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:27 executing program 1: r0 = socket$inet6_tcp(0x1c, 0x1, 0x0) setsockopt$inet6_tcp_TCP_CONGESTION(r0, 0x6, 0x40, &(0x7f0000000100)='vegas\x00', 0x6) 19:51:27 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000040)={&(0x7f0000000000)=@in={0x10, 0x2}, 0x10, 0x0}, 0x0) 19:51:28 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b7", 0x8}]) 19:51:28 executing program 3: socket(0x1b, 0x3, 0x0) [ 244.451253][ T4302] loop2: detected capacity change from 0 to 1 19:51:28 executing program 5: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000040)=@in6={0x1c, 0x1c, 0x2}, 0x1c, 0x0, 0x0, &(0x7f00000013c0)=[@init={0x14}], 0x14}, 0x0) 19:51:28 executing program 0: setsockopt$sock_linger(0xffffffffffffffff, 0xffff, 0x80, &(0x7f0000000040), 0xfffffffffffffe7f) 19:51:28 executing program 5: r0 = socket$inet6_sctp(0x1c, 0x5, 0x84) r1 = dup2(r0, r0) connect$inet(r1, &(0x7f0000000080)={0x10, 0x2}, 0x28) [ 244.557752][ T4302] Dev loop2: unable to read RDB block 1 [ 244.574696][ T4302] loop2: unable to read partition table 19:51:28 executing program 1: r0 = socket$inet_sctp(0x2, 0x5, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000280)={&(0x7f0000000040)=@in={0x10, 0x2}, 0x10, 0x0}, 0x0) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000000)=@in={0x10, 0x2}, 0x10, 0x0}, 0x0) 19:51:28 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000040)=@in={0x10, 0x2}, 0x10, 0x0}, 0x100) 19:51:28 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(0xffffffffffffffff, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:28 executing program 1: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000180)={&(0x7f0000000000)=@in6={0x1c, 0x1c, 0x1}, 0x1c, 0x0, 0x0, &(0x7f0000000040)=ANY=[@ANYBLOB=','], 0x2c}, 0x0) [ 244.635341][ T4302] loop2: partition table beyond EOD, truncated [ 244.655704][ T4302] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) [ 244.665538][ T2995] Dev loop2: unable to read RDB block 1 [ 244.676445][ T2995] loop2: unable to read partition table 19:51:28 executing program 1: madvise(&(0x7f0000ffd000/0x1000)=nil, 0x1000, 0x0) madvise(&(0x7f0000ffc000/0x4000)=nil, 0x4000, 0x0) [ 244.694650][ T2995] loop2: partition table beyond EOD, truncated 19:51:28 executing program 3: r0 = socket$inet_sctp(0x2, 0x1, 0x84) setsockopt$inet_sctp_SCTP_DEFAULT_SNDINFO(r0, 0x84, 0x21, &(0x7f00000000c0)={0x0, 0x200}, 0x10) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000000)=@in={0x10, 0x2}, 0x10, 0x0}, 0x0) 19:51:28 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b7", 0x8}]) 19:51:28 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000000)=@in={0x10, 0x2}, 0x10, 0x0, 0x0, &(0x7f0000000180)=[@sndinfo={0x1c}], 0x1c}, 0x0) 19:51:28 executing program 3: r0 = socket$inet_sctp(0x2, 0x1, 0x84) pipe2(&(0x7f0000000240)={0xffffffffffffffff, 0xffffffffffffffff}, 0x0) r2 = socket$inet6_sctp(0x1c, 0x1, 0x84) dup2(r2, r0) r3 = dup2(r0, r1) connect$inet(r3, &(0x7f0000001540)={0x10, 0x2}, 0x10) 19:51:28 executing program 1: open$dir(&(0x7f00000001c0)='./file1\x00', 0x40000400000002c6, 0x0) [ 244.851974][ T4331] loop2: detected capacity change from 0 to 1 19:51:28 executing program 5: r0 = socket$inet6_udplite(0x1c, 0x2, 0x88) recvmsg(r0, &(0x7f0000000300)={0x0, 0x0, &(0x7f0000000200)=[{0x0}, {&(0x7f00000000c0)=""/2, 0x2}, {0x0}], 0x3, &(0x7f0000000240)=""/143, 0x8f}, 0x80) 19:51:28 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000040)=@in6={0x0, 0x1c, 0x1}, 0x28, 0x0, 0x0, &(0x7f0000000180), 0x14}, 0x0) 19:51:28 executing program 1: r0 = socket(0x1c, 0x5, 0x0) sendmsg$inet_sctp(r0, &(0x7f0000000000)={&(0x7f0000000040)=@in6={0x1c, 0x1c, 0x2}, 0x1c, 0x0}, 0x0) [ 244.937115][ T4331] Dev loop2: unable to read RDB block 1 [ 244.945242][ T4331] loop2: unable to read partition table 19:51:28 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000000)=@in={0x10, 0x2}, 0x10, 0x0, 0x0, &(0x7f0000000080)=[@sndrcv={0x2c}], 0x2c}, 0x0) 19:51:28 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x0, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:28 executing program 3: r0 = socket(0x1c, 0x3, 0x0) setsockopt$sock_linger(r0, 0xffff, 0x80, &(0x7f0000000000), 0x8) 19:51:28 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a", 0xc}]) [ 244.978483][ T4331] loop2: partition table beyond EOD, truncated [ 245.006556][ T4331] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) [ 245.015210][ T2995] Dev loop2: unable to read RDB block 1 [ 245.022141][ T2995] loop2: unable to read partition table [ 245.038140][ T2995] loop2: partition table beyond EOD, truncated 19:51:28 executing program 0: r0 = socket$inet_tcp(0x2, 0x1, 0x0) setsockopt$inet_tcp_TCP_CONGESTION(r0, 0x6, 0x40, &(0x7f0000000440)='cubic\x00', 0x4) 19:51:28 executing program 5: r0 = socket$inet_sctp(0x2, 0x1, 0x84) getsockopt$inet_sctp_SCTP_DEFAULT_SNDINFO(r0, 0x84, 0x21, &(0x7f0000000200), &(0x7f0000000180)=0x10) 19:51:28 executing program 0: r0 = socket$inet_sctp(0x2, 0x5, 0x84) getsockopt$inet_sctp_SCTP_HMAC_IDENT(r0, 0x84, 0x14, &(0x7f0000000040)={0x2, [0x0, 0x0]}, &(0x7f0000000080)=0x8) [ 245.185155][ T4356] loop2: detected capacity change from 0 to 1 19:51:28 executing program 1: r0 = socket(0x1c, 0x5, 0x0) sendmsg$inet_sctp(r0, &(0x7f0000000000)={&(0x7f0000000040)=@in6={0x1c, 0x1c, 0x2}, 0x1c, 0x0}, 0x0) 19:51:28 executing program 5: open(&(0x7f0000000000)='./file0\x00', 0x141842, 0x0) fchmodat(0xffffffffffffff9c, &(0x7f0000000040)='./file0\x00', 0x118) 19:51:28 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) setsockopt$inet_sctp_SCTP_PEER_ADDR_PARAMS(r0, 0x84, 0xa, &(0x7f00000001c0)={0x0, @in, 0x0, 0xffff, 0x10}, 0x98) [ 245.277160][ T4356] Dev loop2: unable to read RDB block 1 [ 245.282940][ T4356] loop2: unable to read partition table [ 245.313026][ T4356] loop2: partition table beyond EOD, truncated 19:51:28 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x0, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) [ 245.343941][ T4356] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:29 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) recvmsg(r0, &(0x7f0000000980)={0x0, 0x0, 0x0}, 0xc2) 19:51:29 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a", 0xc}]) 19:51:29 executing program 3: socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000040)={0xffffffffffffffff, 0xffffffffffffffff}) sendmsg$unix(r0, &(0x7f0000001700)={0x0, 0x0, 0x0, 0x0, &(0x7f0000001680)=[@cred], 0x68}, 0x0) 19:51:29 executing program 5: r0 = socket$inet_sctp(0x2, 0x1, 0x84) recvmsg(r0, &(0x7f00000002c0)={0x0, 0x0, 0x0, 0x0, &(0x7f0000000240)=""/100, 0x64}, 0x41) 19:51:29 executing program 0: r0 = socket$inet_sctp(0x2, 0x5, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000280)={&(0x7f0000000040)=@in={0x10, 0x2}, 0x10, &(0x7f0000000240)=[{&(0x7f0000000080)='W', 0x1}], 0x1}, 0x0) 19:51:29 executing program 3: symlink(&(0x7f0000000240)='./file0\x00', &(0x7f0000000280)='./file0\x00') 19:51:29 executing program 1: r0 = socket(0x1c, 0x5, 0x0) sendmsg$inet_sctp(r0, &(0x7f0000000000)={&(0x7f0000000040)=@in6={0x1c, 0x1c, 0x2}, 0x1c, 0x0}, 0x0) [ 245.519690][ T4380] loop2: detected capacity change from 0 to 1 19:51:29 executing program 5: r0 = socket$inet_tcp(0x2, 0x1, 0x0) setsockopt$inet_tcp_TCP_CONGESTION(r0, 0x6, 0x40, &(0x7f0000000200)='cubic\x00', 0x8) 19:51:29 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) getsockopt$inet_sctp_SCTP_PEER_ADDR_PARAMS(r0, 0x84, 0xa, &(0x7f0000000040), &(0x7f0000000100)=0x98) 19:51:29 executing program 3: r0 = socket$inet_sctp(0x2, 0x5, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000480)={&(0x7f0000000040)=@in={0x10, 0x2}, 0x10, 0x0, 0x0, &(0x7f00000004c0)=ANY=[@ANYBLOB="2c000000840000000900000007000000c0a8"], 0x2c}, 0x0) 19:51:29 executing program 5: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f00000003c0)={&(0x7f0000000000)=@in={0x10, 0x2}, 0x10, 0x0, 0x0, &(0x7f0000000480)=ANY=[@ANYBLOB="1c000000840000000a"], 0x94}, 0x0) [ 245.620566][ T4380] Dev loop2: unable to read RDB block 1 [ 245.631237][ T4380] loop2: unable to read partition table [ 245.659042][ T4380] loop2: partition table beyond EOD, truncated [ 245.688759][ T4380] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:29 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x0, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:29 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) setsockopt$inet_sctp_SCTP_PEER_ADDR_PARAMS(r0, 0x84, 0xa, &(0x7f00000000c0)={0x0, @in, 0x0, 0x0, 0x10e}, 0x98) 19:51:29 executing program 3: syz_emit_ethernet(0x2a, &(0x7f0000000040)={@broadcast, @broadcast, @val, {@arp={0x806, @ether_ipv4={0x1, 0x800, 0x6, 0x4, 0x0, @local, @empty, @remote, @remote={0xac, 0x14, 0x0}}}}}, 0x0) 19:51:29 executing program 5: r0 = socket$inet6_sctp(0x1c, 0x5, 0x84) connect$inet6(r0, &(0x7f00000001c0)={0x1c, 0x1c}, 0x1c) connect$inet6(r0, &(0x7f0000000180)={0x1c, 0x1c}, 0x1c) 19:51:29 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a", 0xc}]) 19:51:29 executing program 1: r0 = socket(0x1c, 0x5, 0x0) sendmsg$inet_sctp(r0, &(0x7f0000000000)={&(0x7f0000000040)=@in6={0x1c, 0x1c, 0x2}, 0x1c, 0x0}, 0x0) 19:51:29 executing program 3: r0 = socket$inet6_sctp(0x1c, 0x1, 0x84) connect$inet6(r0, &(0x7f0000000380)={0x1c, 0x1c, 0x3}, 0x1c) 19:51:29 executing program 0: msync(&(0x7f0000ffc000/0x1000)=nil, 0x20000000, 0x0) [ 245.847342][ T4406] loop2: detected capacity change from 0 to 1 19:51:29 executing program 0: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendto$inet(r0, 0x0, 0x0, 0x0, &(0x7f00000001c0)={0x10, 0x2}, 0x10) getsockopt$inet_sctp_SCTP_DELAYED_SACK(r0, 0x84, 0xf, &(0x7f0000000100), &(0x7f0000000140)=0xc) [ 245.927125][ T4406] Dev loop2: unable to read RDB block 1 [ 245.937560][ T4406] loop2: unable to read partition table [ 245.965706][ T4406] loop2: partition table beyond EOD, truncated [ 245.995608][ T4406] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:29 executing program 5: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000000200)={&(0x7f0000000000)=@in={0x10, 0x2}, 0x10, 0x0, 0x0, &(0x7f00000000c0)=[@dstaddrv6={0x1c, 0x84, 0xa, @mcast2}, @dstaddrv4={0x10}], 0x2c}, 0x0) 19:51:29 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1b", 0xe}]) 19:51:29 executing program 1: r0 = socket$inet6_sctp(0x1c, 0x5, 0x84) r1 = dup2(r0, r0) setsockopt$inet_sctp_SCTP_AUTH_KEY(r1, 0x84, 0x13, &(0x7f0000000140)={0x0, 0x100}, 0x8) sendmsg$inet_sctp(r1, &(0x7f0000002580)={&(0x7f0000001140)=@in6={0x1c, 0x1c, 0x3}, 0x1c, &(0x7f00000011c0)=[{&(0x7f0000001380)='W', 0x1}], 0x1}, 0x0) 19:51:29 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(0xffffffffffffffff, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:29 executing program 3: r0 = socket$inet6_sctp(0x1c, 0x5, 0x84) connect$inet6(r0, &(0x7f00000001c0)={0x1c, 0x1c}, 0x1c) sendto$inet6(r0, &(0x7f0000001380)="b8", 0x1, 0x0, &(0x7f0000001140)={0x1c, 0x1c}, 0x1c) 19:51:29 executing program 0: r0 = socket$inet6_udplite(0x1c, 0x2, 0x88) bind(r0, &(0x7f0000000580)=@in6={0x1c, 0x1c, 0x2}, 0x1c) 19:51:29 executing program 5: r0 = socket$inet_tcp(0x2, 0x1, 0x0) setsockopt$inet_tcp_TCP_CONGESTION(r0, 0x6, 0x40, &(0x7f0000000100)='cubic\x00', 0x4) [ 246.163320][ T4426] loop2: detected capacity change from 0 to 1 19:51:29 executing program 5: r0 = socket$inet_sctp(0x2, 0x1, 0x84) bind$inet(r0, &(0x7f0000000280)={0x10, 0x2}, 0x10) connect$inet(r0, &(0x7f0000000000)={0x10, 0x2}, 0x10) sendmsg$inet_sctp(r0, &(0x7f0000000240)={0x0, 0x0, &(0x7f00000000c0)=[{&(0x7f0000001b80)="b3", 0x1}], 0x1}, 0x0) read(r0, &(0x7f0000000b80)=""/4096, 0x1000) [ 246.270108][ T4426] Dev loop2: unable to read RDB block 1 [ 246.277030][ T4426] loop2: unable to read partition table [ 246.296129][ T4426] loop2: partition table beyond EOD, truncated [ 246.333074][ T4426] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:30 executing program 0: r0 = socket$inet6_udplite(0xa, 0x2, 0x88) ioctl$sock_ipv6_tunnel_SIOCDELTUNNEL(r0, 0x89f2, &(0x7f0000000340)={'ip6_vti0\x00', &(0x7f00000002c0)={'ip6gre0\x00', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @mcast2, @rand_addr=' \x01\x00'}}) 19:51:30 executing program 1: syz_emit_ethernet(0x42, &(0x7f0000000200)={@local, @broadcast, @val={@void}, {@ipv6={0x86dd, @generic={0x0, 0x6, "cece06", 0x8, 0x0, 0x0, @private0, @private2, {[@srh]}}}}}, 0x0) 19:51:30 executing program 5: r0 = socket$inet6_sctp(0xa, 0x5, 0x84) setsockopt$inet_sctp6_SCTP_PEER_ADDR_PARAMS(r0, 0x84, 0x9, &(0x7f0000000000)={0x0, @in={{0x2, 0x0, @empty}}, 0x0, 0x0, 0x302, 0x0, 0x32}, 0x9c) bind$inet6(r0, &(0x7f00004b8fe4)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) sendto$inet6(r0, &(0x7f0000847fff)='X', 0x1cfa4, 0x0, &(0x7f000005ffe4)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) 19:51:30 executing program 3: r0 = socket(0xa, 0x1, 0x0) close(r0) r1 = socket$inet_sctp(0x2, 0x5, 0x84) getsockopt$inet_sctp_SCTP_SOCKOPT_CONNECTX3(r1, 0x84, 0x6f, &(0x7f0000002f00)={0x0, 0x10, &(0x7f0000002ec0)=[@in={0x2, 0x0, @initdev={0xac, 0x1e, 0x0, 0x0}}]}, &(0x7f0000002f40)=0x10) getsockopt$inet_sctp_SCTP_GET_ASSOC_ID_LIST(r1, 0x84, 0x1d, &(0x7f0000000000)={0x1, [0x0]}, &(0x7f0000000040)=0x8) setsockopt$inet_sctp_SCTP_DELAYED_SACK(r0, 0x84, 0x7c, &(0x7f0000000040)=@sack_info={r2}, 0xc) 19:51:30 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1b", 0xe}]) 19:51:30 executing program 0: socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) sendmsg$unix(r0, &(0x7f0000000c40)={&(0x7f0000000000)=@file={0xa}, 0xa, 0x0, 0x0, &(0x7f0000000b80)=[@cred, @cred], 0xc0}, 0x0) 19:51:30 executing program 1: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$batadv(&(0x7f0000000080), 0xffffffffffffffff) ioctl$ifreq_SIOCGIFINDEX_batadv_mesh(r0, 0x8933, &(0x7f0000000100)={'batadv0\x00', 0x0}) sendmsg$BATADV_CMD_SET_MESH(r1, &(0x7f00000002c0)={0x0, 0x0, &(0x7f0000000240)={&(0x7f00000001c0)={0x24, r2, 0x1, 0x0, 0x0, {}, [@BATADV_ATTR_MESH_IFINDEX={0x8, 0x3, r3}, @BATADV_ATTR_DISTRIBUTED_ARP_TABLE_ENABLED={0x5}]}, 0x24}}, 0x0) [ 246.502345][ T4454] loop2: detected capacity change from 0 to 1 19:51:30 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(0xffffffffffffffff, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:30 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r1, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r2, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r3}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) r4 = socket$nl_generic(0x10, 0x3, 0x10) r5 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r4, 0x8933, &(0x7f0000000700)={'wlan1\x00', 0x0}) r7 = socket$inet6_udplite(0xa, 0x2, 0x88) sendmmsg$inet(r7, &(0x7f0000000900)=[{{&(0x7f0000000000)={0x2, 0x4e21, @local}, 0x10, 0x0}}, {{&(0x7f0000000040)={0x2, 0x4e22, @empty}, 0x10, 0x0, 0x0, &(0x7f00000009c0)=[@ip_pktinfo={{0x1c, 0x0, 0x8, {0x0, @broadcast, @local}}}, @ip_retopts={{0x28, 0x0, 0x7, {[@timestamp={0x44, 0x14, 0xf, 0x0, 0x0, [0x0, 0x0, 0x0, 0x0]}, @noop]}}}], 0x48}}], 0x2, 0x0) sendmsg$NL80211_CMD_SET_INTERFACE(r4, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r5, 0x5, 0x0, 0x0, {{}, {@val={0x8, 0x3, r6}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) syz_genetlink_get_family_id$nl80211(&(0x7f0000000080), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f00000000c0)={'wlan1\x00'}) 19:51:30 executing program 0: syz_emit_ethernet(0x4a, &(0x7f0000000080)={@local, @random="21455ff28eab", @void, {@ipv6={0x86dd, @tcp={0x0, 0x6, "0a3ff2", 0x14, 0x6, 0x0, @private0, @local, {[], {{0x0, 0x0, 0x41424344, 0x41424344, 0x0, 0x0, 0x5}}}}}}}, 0x0) 19:51:30 executing program 5: r0 = socket$inet6_sctp(0xa, 0x5, 0x84) setsockopt$inet_sctp6_SCTP_PEER_ADDR_PARAMS(r0, 0x84, 0x9, &(0x7f0000000000)={0x0, @in={{0x2, 0x0, @empty}}, 0x0, 0x0, 0x302, 0x0, 0x32}, 0x9c) bind$inet6(r0, &(0x7f00004b8fe4)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) sendto$inet6(r0, &(0x7f0000847fff)='X', 0x1cfa4, 0x0, &(0x7f000005ffe4)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) [ 246.599722][ T4454] Dev loop2: unable to read RDB block 1 [ 246.612448][ T4454] loop2: unable to read partition table [ 246.635380][ T4454] loop2: partition table beyond EOD, truncated 19:51:30 executing program 0: r0 = socket$phonet_pipe(0x23, 0x5, 0x2) setsockopt$PNPIPE_ENCAP(r0, 0x113, 0x1, &(0x7f00000025c0)=0x1, 0x4) [ 246.685917][ T4454] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) [ 246.698133][ T4464] debugfs: Directory 'netdev:wlan1' with parent 'phy8' already present! 19:51:30 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1b", 0xe}]) [ 246.827213][ T4474] loop2: detected capacity change from 0 to 1 19:51:30 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r1, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r2, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r3}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) r4 = socket$nl_generic(0x10, 0x3, 0x10) r5 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r4, 0x8933, &(0x7f0000000700)={'wlan1\x00', 0x0}) r7 = socket$inet6_udplite(0xa, 0x2, 0x88) sendmmsg$inet(r7, &(0x7f0000000900)=[{{&(0x7f0000000000)={0x2, 0x4e21, @local}, 0x10, 0x0}}, {{&(0x7f0000000040)={0x2, 0x4e22, @empty}, 0x10, 0x0, 0x0, &(0x7f00000009c0)=[@ip_pktinfo={{0x1c, 0x0, 0x8, {0x0, @broadcast, @local}}}, @ip_retopts={{0x28, 0x0, 0x7, {[@timestamp={0x44, 0x14, 0xf, 0x0, 0x0, [0x0, 0x0, 0x0, 0x0]}, @noop]}}}], 0x48}}], 0x2, 0x0) sendmsg$NL80211_CMD_SET_INTERFACE(r4, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r5, 0x5, 0x0, 0x0, {{}, {@val={0x8, 0x3, r6}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) syz_genetlink_get_family_id$nl80211(&(0x7f0000000080), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f00000000c0)={'wlan1\x00'}) 19:51:30 executing program 5: syz_emit_ethernet(0x22, &(0x7f0000000400)={@local, @broadcast, @void, {@ipv4={0x800, @generic={{0x5, 0x4, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, @empty, @empty}}}}}, 0x0) [ 246.937895][ T4474] Dev loop2: unable to read RDB block 1 [ 246.950769][ T4474] loop2: unable to read partition table [ 246.980422][ T4474] loop2: partition table beyond EOD, truncated [ 246.981493][ T4477] debugfs: Directory 'netdev:wlan1' with parent 'phy8' already present! [ 247.004673][ T4474] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:30 executing program 3: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$tipc(&(0x7f0000000040), 0xffffffffffffffff) sendmsg$TIPC_CMD_SET_NETID(r0, &(0x7f0000000100)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000080)={0x24, r1, 0x1, 0x0, 0x0, {{}, {}, {0x8, 0x2, 0x5}}}, 0x24}}, 0x0) 19:51:30 executing program 0: r0 = socket$phonet_pipe(0x23, 0x5, 0x2) setsockopt$PNPIPE_ENCAP(r0, 0x113, 0x1, &(0x7f00000025c0)=0x1, 0x4) 19:51:30 executing program 5: r0 = socket$packet(0x11, 0x3, 0x300) setsockopt$packet_tx_ring(r0, 0x107, 0xd, &(0x7f0000000040)=@req3={0x410000, 0x8, 0x210000, 0x8}, 0x1c) 19:51:30 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7", 0xf}]) 19:51:30 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(0xffffffffffffffff, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:30 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r1, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r2, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r3}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) r4 = socket$nl_generic(0x10, 0x3, 0x10) r5 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r4, 0x8933, &(0x7f0000000700)={'wlan1\x00', 0x0}) r7 = socket$inet6_udplite(0xa, 0x2, 0x88) sendmmsg$inet(r7, &(0x7f0000000900)=[{{&(0x7f0000000000)={0x2, 0x4e21, @local}, 0x10, 0x0}}, {{&(0x7f0000000040)={0x2, 0x4e22, @empty}, 0x10, 0x0, 0x0, &(0x7f00000009c0)=[@ip_pktinfo={{0x1c, 0x0, 0x8, {0x0, @broadcast, @local}}}, @ip_retopts={{0x28, 0x0, 0x7, {[@timestamp={0x44, 0x14, 0xf, 0x0, 0x0, [0x0, 0x0, 0x0, 0x0]}, @noop]}}}], 0x48}}], 0x2, 0x0) sendmsg$NL80211_CMD_SET_INTERFACE(r4, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r5, 0x5, 0x0, 0x0, {{}, {@val={0x8, 0x3, r6}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) syz_genetlink_get_family_id$nl80211(&(0x7f0000000080), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f00000000c0)={'wlan1\x00'}) [ 247.381323][ T4485] loop2: detected capacity change from 0 to 1 [ 247.453254][ T4485] Dev loop2: unable to read RDB block 1 [ 247.482763][ T4485] loop2: unable to read partition table [ 247.533815][ T4487] debugfs: Directory 'netdev:wlan1' with parent 'phy8' already present! [ 247.546127][ T4485] loop2: partition table beyond EOD, truncated 19:51:31 executing program 3: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$tipc(&(0x7f0000000040), 0xffffffffffffffff) sendmsg$TIPC_CMD_SET_NETID(r0, &(0x7f0000000100)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000080)={0x24, r1, 0x1, 0x0, 0x0, {{}, {}, {0x8, 0x2, 0x5}}}, 0x24}}, 0x0) 19:51:31 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r1, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r2, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r3}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) r4 = socket$nl_generic(0x10, 0x3, 0x10) r5 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r4, 0x8933, &(0x7f0000000700)={'wlan1\x00', 0x0}) r7 = socket$inet6_udplite(0xa, 0x2, 0x88) sendmmsg$inet(r7, &(0x7f0000000900)=[{{&(0x7f0000000000)={0x2, 0x4e21, @local}, 0x10, 0x0}}, {{&(0x7f0000000040)={0x2, 0x4e22, @empty}, 0x10, 0x0, 0x0, &(0x7f00000009c0)=[@ip_pktinfo={{0x1c, 0x0, 0x8, {0x0, @broadcast, @local}}}, @ip_retopts={{0x28, 0x0, 0x7, {[@timestamp={0x44, 0x14, 0xf, 0x0, 0x0, [0x0, 0x0, 0x0, 0x0]}, @noop]}}}], 0x48}}], 0x2, 0x0) sendmsg$NL80211_CMD_SET_INTERFACE(r4, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r5, 0x5, 0x0, 0x0, {{}, {@val={0x8, 0x3, r6}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) syz_genetlink_get_family_id$nl80211(&(0x7f0000000080), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f00000000c0)={'wlan1\x00'}) 19:51:31 executing program 3: bpf$BPF_BTF_LOAD(0x12, &(0x7f00000011c0)={&(0x7f0000000140)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0xc, 0xc, 0x2, [@func_proto]}}, &(0x7f00000001c0)=""/4096, 0x26, 0x1000, 0x1}, 0x20) 19:51:31 executing program 0: r0 = socket(0x2, 0x2, 0x0) ioctl$sock_ipv4_tunnel_SIOCCHGTUNNEL(r0, 0x89f3, &(0x7f0000000240)={'sit0\x00', &(0x7f0000000800)={'syztnl1\x00', 0x0, 0x0, 0x0, 0x0, 0x0, {{0x15, 0x4, 0x0, 0x0, 0x54, 0x0, 0x0, 0x0, 0x0, 0x0, @initdev={0xac, 0x1e, 0x0, 0x0}, @private, {[@ssrr={0x89, 0x13, 0x0, [@local, @private, @multicast1, @private]}, @lsrr={0x83, 0x27, 0x0, [@private, @initdev={0xac, 0x1e, 0x0, 0x0}, @multicast2, @private, @empty, @remote, @dev, @empty, @local]}, @timestamp_prespec={0x44, 0x4}]}}}}}) 19:51:31 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7", 0xf}]) [ 247.585724][ T4485] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:31 executing program 0: r0 = bpf$PROG_LOAD(0x5, &(0x7f0000000200)={0x4, 0xe, &(0x7f0000001340)=ANY=[@ANYBLOB="b702000008000000bfa300000000000007030000ffffffff7a0af0fff8ffffff79a4f0ff00000000b7060000ffffffff2d6405000000000065040400010000001404000001007d60b7030000000000006a0a00fe00000900850000001f000000b70000000000000095000000000000006623848adf1dc9a764ab51a064e0ff0c9b27a26293fddf0180000071ff31f1622271d5518193e09483c5a020c334f8c76334d8ce8305b01ddaa52e8756ad60a07d6f27c125e16d024098f755d8583da60f27c162dbba0700002ac9170f50f2568836077b7f711a18ebf608d87b885297b6b69819782748b376358c33c9753bfd989b1ca58949a54d5827df14feecea46408a05d572077f1252fbb72c3d099c501bc4ded6fca17a3447222c95edb47b77aafa63b9dd5fa5c53e9c37251709f1061b973ef07bf7f53ce129a9ec93b4dd15100f2b450f98526a0d8cac7c97fcbd7e43fe1ca8345710fb6379b4c53cf55eefb4c0974486a8d25a363adbd83b49e13fbd1757b27020b99b8cff3f48c9411670c34faf7851b290feb3045a1b622f20c438842835e81c3573af41e5b5b924275cb1749289b44e9728e7a73f148ac8206afe120c1437490d9900000011000003971b32fdffffffffffffffaf580278e1342aabd1b623f6c4f128858e4eb6b42f2173184c2b99b645f6ec0e14e5d7c95a0008000000f30f6c0000000000ff0000b8f500d3e021d1cb53aa78302bc23211d3e3b6e6dad65a51e5497a3419cecec38126247b27113ad4c7915c8f82c333a7b350802f0311807010d1ed50c18411aa6900daccc02f4ba4b078f07e41f781eee222c7d071d5a94d82ca9a0846c1af59cee16639b4970f8f0a82c6a712fd5722d677d406160ffaffffffb4e0bde6749aa52c408b74251914c5d3255fd88a42e7ebb69ebcd8eee623e51dbb1f1b548c91a6825c0686fdc16be1cbb72c217fda18bd746253ca66093daf35923300b6000000684886b50000969872556aac376e0a4649a8a84e1d293a6b109c5e59b366bca5cc3d936c53d4a48c05099e6fc37e5aa23bff8cce0600000000000300a568a8532623d12b40b50ac26f2e8255470a04bfbe84cb581b90991d965a010b3c6eb6443870004da10c75723b65f83769ad1f0e4ef6b9ef1cec23264fd8fdac6264af1cb467020bdc12b797b6c156c439105829d2ae1c45f7cfa40df68fd36a03353a55a8a8e176e5d48887d3208e0f77f2c1e68ec7c01bd5a2028a8fc167bc7f5f4c67600a6ade3deb1f200abe9f753b54678dae8b4e3ba3d086d4b95dfc5817e3dafae2d38b522f942cc750399d9029f071fdb1e05882f8a4b8b7d23aef9db5f421985c8a37fbd219ccac3a895828b4f22b6527ce31ceb02b7b2b4492510134552f0b076b168394f8417f25cc82aeb9827193cbe69de8bf35e4be6ae462dd26b2e20ab1f05fc44ae9ae094c1b81d3ef947692b44d2afb09c7498dedf0f87c38bbcaa2357836f03e8a7c392e535694a3ead2de11e6b1781e2a017ac341fda2e563ee95085742f5fee9f95f4741b226e428d20b00bc140000e4b2f5efd0a0b1ceba000830ba8634b5aa26bdbe91614e92fae3c7349531df9bf4c01ebf5d8eb7d53e5f30647661623fbdb3f6c3652c422be6ecc1be5d4e8133fc32f68ea86a2df1e76fe27dfdff1cf9194849c4cc0da9533e5983863e526a7dc0d8728f3b573ca4427bdb44df9341e9b8050e896598a156c9b54cfd6df9b0c1a10f486a312e7ae3c011e46851ac599f04277292b9c55ae0ab4c0000000000000000000000000000c87bcc2ac5aed9467b51d92e0993af4beaf1f3d47dcdfab9165f98155d93e383d6b85158b571c2000000000000000000008213eb79d671a2e58472dc0ee3b7dc8cef70197c79a524f2dfdc3dcd8e67db68f41e5a96e95a223b9e5bc526d34b836ae2a0cf4fd7cc73cb024166c6a33749aace516a364425fd544d506f85c18ae912a7bb5d25a802e0eb017c0bc02ea55882a6668b22b631606c362b6770a581a2fdcceccaf3c1e1ee4736626f0b8f8aeaa52f988c306f5fa8c36de1596780076f4a9b8f6a8eb2e594dcf91e841dab065d12e6e8f2096170206be49b4f12b03190ed621cf51f71d74e34a1e7df6ba82fbd8c181641ed5f12af809085eb032952a098793bdd53e8fa0927d371cab3f41a1ed850a4f823d23cfabf893b4073d5c7bc6504094593cb0135b3c1e197d4124b3673fe757e6b6b73f04b21eba6422d5ae95d71f180e9099f9fff10445d420d700e09772a3c8245fe365ebb459fbb92c9ba9c4665c80510d50e5bbf2a6b0cfe0f9697f662e25275c3aff1fbaf9665f62263f8d344d43fef766f5ac9c4c538b4d281"], &(0x7f0000000340)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, &(0x7f0000000000), 0x0, 0x10, &(0x7f0000000880), 0xfffffffffffffddd}, 0x48) bpf$BPF_PROG_TEST_RUN(0xa, &(0x7f00000002c0)={r0, 0x0, 0xe80, 0x0, &(0x7f0000000140)="3d6ee2e04b91ab10143d9abe86dd", 0x0, 0xe04, 0x0, 0x0, 0x0, 0x0, 0x0}, 0x48) [ 247.797800][ T4502] debugfs: Directory 'netdev:wlan1' with parent 'phy8' already present! 19:51:31 executing program 3: r0 = socket$inet6_udplite(0xa, 0x2, 0x88) sendmmsg$inet6(r0, &(0x7f00000021c0)=[{{&(0x7f0000000000)={0xa, 0x4e20, 0x0, @remote}, 0x1c, 0x0}}, {{0x0, 0x0, &(0x7f0000001b00)=[{&(0x7f0000000800)='l', 0x1}], 0x1, 0x0, 0x900}}], 0x2, 0x0) [ 247.866430][ T4508] loop2: detected capacity change from 0 to 1 [ 247.887881][ T3854] I/O error, dev loop2, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2 19:51:31 executing program 0: r0 = socket$inet_sctp(0x2, 0x5, 0x84) setsockopt$inet_sctp_SCTP_PEER_ADDR_THLDS(r0, 0x84, 0x23, &(0x7f0000000100), 0x90) [ 248.028258][ T4508] Dev loop2: unable to read RDB block 1 [ 248.034013][ T4508] loop2: unable to read partition table [ 248.066099][ T4508] loop2: partition table beyond EOD, truncated [ 248.083098][ T4508] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:32 executing program 3: unshare(0x6c060000) pipe(&(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) r1 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r1, &(0x7f0000000000)={0xa, 0x8000002}, 0x1c) sendto$inet6(r1, 0x0, 0x0, 0x22004001, &(0x7f0000b63fe4)={0xa, 0x2, 0x0, @loopback}, 0x1c) socket(0x10, 0x3, 0x0) socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000080)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$sock_SIOCGIFINDEX(r2, 0x8933, &(0x7f0000000000)={'lo\x00'}) sendmsg$nl_route_sched(0xffffffffffffffff, 0x0, 0x0) sendto$inet6(r1, &(0x7f0000000080)="44f9b108b1cdc885c9c533d21f474bec8bfef1df1e2da71e578dc6b91d09f7ab15378571d8e27546090000006e75436914ab717528ee4b7a9beaf908d11137c11903064e83b4951f4d433a5404970c85d92d7083fd38844cbb0c6c5eb508ddc2dc7a590aa7941b1e9eeb5a688138dea09b776cbfa784cbf550bf3074fb0d775da4df5a3f48bbdf452eeb6b923da9d0e25b80f76a873664b5753444fe05f33e5f91045540836c3cd6af10f0cd018f0c6f57f926ac959a5628c45088fbe0c87fbe6cbcda4662d2a12f6d00"/215, 0xd0d0c2ac, 0x1, 0x0, 0x0) splice(r1, 0x0, r0, 0x0, 0x406f405, 0x0) 19:51:32 executing program 5: bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000002a40)={0x18, 0x2, &(0x7f0000000040)=@raw=[@map_fd={0x18, 0x0, 0x1, 0x0, 0x1}], &(0x7f0000002980)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 19:51:32 executing program 0: r0 = socket$inet6(0x10, 0x3, 0x0) sendto$inet6(r0, &(0x7f00000001c0)="1c0000001200050f0c1000000049b23e9b200a00080001c000000001", 0x1c, 0x0, 0x0, 0x0) recvmsg(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f00000000c0)=[{&(0x7f00000029c0)=""/4100, 0x1004}, {&(0x7f0000000200)=""/4125, 0x101d}, {&(0x7f00000019c0)=""/4085, 0xff5}], 0x3}, 0x0) recvfrom$inet6(r0, 0x0, 0x0, 0x0, 0x0, 0x0) recvfrom$inet6(r0, &(0x7f0000000000)=""/114, 0xfffffffffffffd1b, 0x0, 0x0, 0x0) sendto$inet6(0xffffffffffffffff, &(0x7f0000000000)="9000000020001f", 0x7, 0x0, 0x0, 0x0) sendto$inet6(0xffffffffffffffff, &(0x7f0000000000)="58ad000011", 0x5, 0x0, 0x0, 0x0) r1 = socket$inet6(0x10, 0x3, 0x0) ioctl$sock_inet6_SIOCDIFADDR(0xffffffffffffffff, 0x8936, &(0x7f0000000040)={@mcast2}) sendto$inet6(r1, &(0x7f0000000000)='k', 0x10a73, 0x800, 0x0, 0x4b6ae4f95a5de35b) 19:51:32 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r0, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r1, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r2}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) r3 = socket$nl_generic(0x10, 0x3, 0x10) r4 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r3, 0x8933, &(0x7f0000000700)={'wlan1\x00', 0x0}) r6 = socket$inet6_udplite(0xa, 0x2, 0x88) sendmmsg$inet(r6, &(0x7f0000000900)=[{{&(0x7f0000000000)={0x2, 0x4e21, @local}, 0x10, 0x0}}, {{&(0x7f0000000040)={0x2, 0x4e22, @empty}, 0x10, 0x0, 0x0, &(0x7f00000009c0)=[@ip_pktinfo={{0x1c, 0x0, 0x8, {0x0, @broadcast, @local}}}, @ip_retopts={{0x28, 0x0, 0x7, {[@timestamp={0x44, 0x14, 0xf, 0x0, 0x0, [0x0, 0x0, 0x0, 0x0]}, @noop]}}}], 0x48}}], 0x2, 0x0) sendmsg$NL80211_CMD_SET_INTERFACE(r3, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r4, 0x5, 0x0, 0x0, {{}, {@val={0x8, 0x3, r5}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) syz_genetlink_get_family_id$nl80211(&(0x7f0000000080), 0xffffffffffffffff) 19:51:32 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7", 0xf}]) 19:51:32 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(0xffffffffffffffff, 0x1004, 0x0, 0x0, 0x0, 0x0) [ 248.474265][ T4524] loop2: detected capacity change from 0 to 1 [ 248.481991][ T3854] I/O error, dev loop2, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2 [ 248.493929][ T4522] netlink: 44327 bytes leftover after parsing attributes in process `syz-executor.0'. 19:51:32 executing program 0: write$binfmt_script(0xffffffffffffffff, 0x0, 0x6db6e559) r0 = socket$packet(0x11, 0x3, 0x300) setsockopt$packet_tx_ring(r0, 0x107, 0xd, &(0x7f0000000040)=@req3={0x410000, 0x8, 0x210000, 0x8}, 0x1c) mmap(&(0x7f0000000000/0x400000)=nil, 0x400000, 0x0, 0x10, 0xffffffffffffffff, 0x0) setsockopt$packet_tx_ring(r0, 0x107, 0xd, &(0x7f00000005c0), 0x10) [ 248.520834][ T4523] debugfs: Directory 'netdev:wlan1' with parent 'phy8' already present! [ 248.565575][ T4524] Dev loop2: unable to read RDB block 1 [ 248.571388][ T4524] loop2: unable to read partition table 19:51:32 executing program 5: bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000002a40)={0x18, 0x2, &(0x7f0000000040)=@raw=[@map_fd={0x18, 0x0, 0x1, 0x0, 0x1}], &(0x7f0000002980)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 19:51:32 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r0, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r1, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r2}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) r3 = socket$nl_generic(0x10, 0x3, 0x10) r4 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r3, 0x8933, &(0x7f0000000700)={'wlan1\x00', 0x0}) r6 = socket$inet6_udplite(0xa, 0x2, 0x88) sendmmsg$inet(r6, &(0x7f0000000900)=[{{&(0x7f0000000000)={0x2, 0x4e21, @local}, 0x10, 0x0}}, {{&(0x7f0000000040)={0x2, 0x4e22, @empty}, 0x10, 0x0, 0x0, &(0x7f00000009c0)=[@ip_pktinfo={{0x1c, 0x0, 0x8, {0x0, @broadcast, @local}}}, @ip_retopts={{0x28, 0x0, 0x7, {[@timestamp={0x44, 0x14, 0xf, 0x0, 0x0, [0x0, 0x0, 0x0, 0x0]}, @noop]}}}], 0x48}}], 0x2, 0x0) sendmsg$NL80211_CMD_SET_INTERFACE(r3, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r4, 0x5, 0x0, 0x0, {{}, {@val={0x8, 0x3, r5}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) [ 248.609890][ T4524] loop2: partition table beyond EOD, truncated [ 248.656156][ T4524] loop_reread_partitions: partition scan of loop2 () failed (rc=-5) 19:51:32 executing program 2: syz_read_part_table(0x0, 0x1, &(0x7f0000000040)=[{&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:32 executing program 5: syz_emit_ethernet(0x76, &(0x7f0000000040)={@broadcast, @remote, @val, {@ipv6}}, 0x0) [ 248.764589][ T4538] debugfs: Directory 'netdev:wlan1' with parent 'phy8' already present! 19:51:32 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r0, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r1, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r2}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) r3 = socket$nl_generic(0x10, 0x3, 0x10) r4 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r3, 0x8933, &(0x7f0000000700)={'wlan1\x00', 0x0}) socket$inet6_udplite(0xa, 0x2, 0x88) sendmsg$NL80211_CMD_SET_INTERFACE(r3, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r4, 0x5, 0x0, 0x0, {{}, {@val={0x8, 0x3, r5}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) [ 248.969155][ T4544] debugfs: Directory 'netdev:wlan1' with parent 'phy8' already present! 19:51:32 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000000c0)=@ipv4_delroute={0x24, 0x19, 0x1, 0x0, 0x0, {}, [@RTA_NH_ID={0x8, 0x1e, 0x1f}]}, 0x24}}, 0x0) 19:51:32 executing program 5: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$NFQNL_MSG_CONFIG(r0, &(0x7f00000000c0)={0x0, 0x48, &(0x7f0000000180)={&(0x7f0000000200)=ANY=[@ANYBLOB="280000000203010400000000ffffffff000000000800010001"], 0x28}}, 0x0) sendmsg$NFQNL_MSG_CONFIG(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000000)={0x20, 0x2, 0x3, 0x5, 0x0, 0x0, {}, [@NFQA_CFG_PARAMS={0x9, 0x2, {0x0, 0x2}}]}, 0x20}}, 0x0) 19:51:32 executing program 2: syz_read_part_table(0x0, 0x1, &(0x7f0000000040)=[{&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:32 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(0xffffffffffffffff, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:32 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r0, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r1, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r2}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) r3 = socket$nl_generic(0x10, 0x3, 0x10) r4 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r3, 0x8933, &(0x7f0000000700)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_SET_INTERFACE(r3, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r4, 0x5, 0x0, 0x0, {{}, {@val={0x8, 0x3, r5}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) [ 249.351548][ T4551] debugfs: Directory 'netdev:wlan1' with parent 'phy8' already present! [ 249.353249][ T4552] netlink: 12 bytes leftover after parsing attributes in process `syz-executor.5'. 19:51:33 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r0, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r1, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r2}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) r3 = socket$nl_generic(0x10, 0x3, 0x10) r4 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r3, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r4, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:33 executing program 0: r0 = socket$inet_sctp(0x2, 0x5, 0x84) recvmsg(r0, &(0x7f0000000240)={0x0, 0x0, 0x0, 0x0, &(0x7f0000000300)=""/155, 0x9b}, 0x40083) 19:51:33 executing program 2: syz_read_part_table(0x0, 0x1, &(0x7f0000000040)=[{&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:33 executing program 3: r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f0000000140)={0x26, 'skcipher\x00', 0x0, 0x0, 'cts(cbc(aes))\x00'}, 0x58) setsockopt$ALG_SET_KEY(r0, 0x117, 0x1, &(0x7f0000c18000)="ad56b6c5820fae9d6dcd3292ea54c7beef915d564c90c200", 0x18) r1 = accept(r0, 0x0, 0x0) syz_genetlink_get_family_id$smc(&(0x7f0000000000), r1) 19:51:33 executing program 5: r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f0000000140)={0x26, 'skcipher\x00', 0x0, 0x0, 'cts(cbc(aes))\x00'}, 0x58) setsockopt$ALG_SET_KEY(r0, 0x117, 0x1, &(0x7f0000c18000)="ad56b6c5820fae9d6dcd3292ea54c7beef915d564c90c200", 0x18) r1 = accept(r0, 0x0, 0x0) recvmmsg(r1, &(0x7f0000004c80)=[{{0x0, 0x0, &(0x7f00000001c0)=[{&(0x7f0000000000)=""/16, 0x10}], 0x1}}], 0x1, 0x0, 0x0) sendmmsg$alg(r1, &(0x7f0000000040)=[{0x0, 0x0, &(0x7f0000000500)=[{&(0x7f0000000200)="de5ecd50231d838bc610061dffc022e4", 0x10}], 0x1}], 0x1, 0x0) 19:51:33 executing program 0: r0 = socket$inet_sctp(0x2, 0x5, 0x84) sendto$inet(r0, 0x0, 0x0, 0x0, &(0x7f0000000080)={0x10, 0x2}, 0x10) r1 = socket$inet_sctp(0x2, 0x1, 0x84) getsockopt$inet_sctp_SCTP_GET_ASSOC_ID_LIST(r1, 0x84, 0x28, &(0x7f0000000280)={0x1, [0x0]}, &(0x7f00000002c0)=0x8) setsockopt$inet_sctp_SCTP_AUTH_KEY(r0, 0x84, 0x13, &(0x7f0000000040)={r2, 0x20}, 0x8) [ 249.542946][ T4558] debugfs: Directory 'netdev:wlan1' with parent 'phy8' already present! 19:51:33 executing program 0: r0 = socket$inet6_sctp(0xa, 0x1, 0x84) sendto$inet6(r0, &(0x7f0000000100)='@', 0x1, 0x0, &(0x7f0000000040)={0xa, 0x0, 0x0, @initdev={0xfe, 0x88, '\x00', 0x0, 0x0}, 0x4}, 0x1c) sendto$inet6(r0, &(0x7f00000000c0)="eb", 0x1, 0x0, &(0x7f0000000240)={0xa, 0x0, 0x0, @loopback}, 0x1c) shutdown(r0, 0x1) setsockopt$inet_sctp6_SCTP_AUTH_ACTIVE_KEY(r0, 0x84, 0x7b, &(0x7f0000000000)={0x0, 0x1}, 0x8) sendto$inet6(r0, &(0x7f00000002c0)="8c", 0x1, 0x0, 0x0, 0x0) 19:51:33 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{0x0, 0x0, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:33 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r0, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r1, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r2}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) r3 = socket$nl_generic(0x10, 0x3, 0x10) sendmsg$NL80211_CMD_SET_INTERFACE(r3, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, 0x0, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:33 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(0xffffffffffffffff, 0x1004, 0x0, 0x0, 0x0, 0x0) 19:51:33 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r0, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r1, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r2}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) r3 = socket$nl_generic(0x10, 0x3, 0x10) sendmsg$NL80211_CMD_SET_INTERFACE(r3, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, 0x0, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) [ 249.749541][ T4580] debugfs: Directory 'netdev:wlan1' with parent 'phy8' already present! 19:51:33 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{0x0, 0x0, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:33 executing program 0: r0 = socket$inet6_sctp(0xa, 0x1, 0x84) sendto$inet6(r0, &(0x7f0000000100)='@', 0x1, 0x0, &(0x7f0000000040)={0xa, 0x0, 0x0, @initdev={0xfe, 0x88, '\x00', 0x0, 0x0}, 0x4}, 0x1c) sendto$inet6(r0, &(0x7f00000000c0)="eb", 0x1, 0x0, &(0x7f0000000240)={0xa, 0x0, 0x0, @loopback}, 0x1c) shutdown(r0, 0x1) setsockopt$inet_sctp6_SCTP_AUTH_ACTIVE_KEY(r0, 0x84, 0x7b, &(0x7f0000000000)={0x0, 0x1}, 0x8) sendto$inet6(r0, &(0x7f00000002c0)="8c", 0x1, 0x0, 0x0, 0x0) 19:51:33 executing program 3: r0 = socket$inet_sctp(0x2, 0x5, 0x84) setsockopt$inet_sctp_SCTP_INITMSG(r0, 0x84, 0x3, &(0x7f0000000000)={0x8, 0x0, 0x1f}, 0x8) [ 249.924887][ T4588] debugfs: Directory 'netdev:wlan1' with parent 'phy8' already present! 19:51:33 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r0, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r1, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r2}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) r3 = socket$nl_generic(0x10, 0x3, 0x10) sendmsg$NL80211_CMD_SET_INTERFACE(r3, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, 0x0, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:33 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{0x0, 0x0, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:33 executing program 5: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r1 = socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r1, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r2, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r3}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) r4 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r4, 0x8933, &(0x7f0000000700)={'wlan1\x00'}) r5 = socket$inet6_udplite(0xa, 0x2, 0x88) sendmmsg$inet(r5, &(0x7f0000000900)=[{{&(0x7f0000000000)={0x2, 0x4e21, @local}, 0x10, 0x0}}, {{&(0x7f0000000040)={0x2, 0x4e22, @empty}, 0x10, 0x0, 0x0, &(0x7f00000009c0)=[@ip_pktinfo={{0x1c, 0x0, 0x8, {0x0, @broadcast, @local}}}, @ip_retopts={{0x28, 0x0, 0x7, {[@timestamp={0x44, 0x14, 0xf, 0x0, 0x0, [0x0, 0x0, 0x0, 0x0]}, @noop]}}}], 0x48}}], 0x2, 0x0) r6 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000080), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f00000000c0)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000100)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000040)={0x24, r6, 0x5, 0x0, 0x0, {{}, {@val={0x8, 0x3, r7}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0xb}]}, 0x24}}, 0x0) 19:51:33 executing program 3: r0 = socket$inet_sctp(0x2, 0x5, 0x84) setsockopt$inet_sctp_SCTP_INITMSG(r0, 0x84, 0x3, &(0x7f0000000000)={0x8, 0x0, 0x1f}, 0x8) [ 250.138514][ T4601] debugfs: Directory 'netdev:wlan1' with parent 'phy8' already present! 19:51:33 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r0, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r1, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r2}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) r3 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(0xffffffffffffffff, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r3, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:33 executing program 3: unshare(0x6c060000) pipe(&(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) r1 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r1, &(0x7f0000000000)={0xa, 0x8000002}, 0x1c) sendto$inet6(r1, 0x0, 0x0, 0x22004001, &(0x7f0000b63fe4)={0xa, 0x2, 0x0, @loopback}, 0x1c) socket(0x10, 0x0, 0x0) socketpair$unix(0x1, 0x0, 0x0, 0x0) ioctl$sock_SIOCGIFINDEX(0xffffffffffffffff, 0x8933, 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, 0x0, 0x0) sendto$inet6(r1, &(0x7f0000000080)="44f9b108b1cdc885c9c533d21f474bec8bfef1df1e2da71e578dc6b91d09f7ab15378571d8e27546090000006e75436914ab717528ee4b7a9beaf908d11137c11903064e83b4951f4d433a5404970c85d92d7083fd38844cbb0c6c5eb508ddc2dc7a590aa7941b1e9eeb5a688138dea09b776cbfa784cbf550bf3074fb0d775da4df5a3f48bbdf452eeb6b923da9d0e25b80f76a873664b5753444fe05f33e5f91045540836c3cd6af10f0cd018f0c6f57f926ac959a5628c45088fbe0c87fbe6cbcda4662d2a12f6d00"/215, 0xd0d0c2ac, 0x1, 0x0, 0x0) splice(r1, 0x0, r0, 0x0, 0x406f405, 0x0) 19:51:33 executing program 0: r0 = socket$inet(0x2, 0x1, 0x0) getsockopt$sock_int(r0, 0xffff, 0x100, 0x0, 0x0) [ 250.272808][ T4608] debugfs: Directory 'netdev:wlan1' with parent 'phy4' already present! [ 250.352826][ T4612] debugfs: Directory 'netdev:wlan1' with parent 'phy8' already present! 19:51:34 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x0, 0x0, 0x0, 0x0, 0x0) 19:51:34 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080), 0x0, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:34 executing program 0: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route(r0, &(0x7f0000000a40)={0x0, 0x0, &(0x7f0000000a00)={&(0x7f0000000640)=@ipv6_newroute={0x30, 0x18, 0x1, 0x0, 0x0, {}, [@RTA_MULTIPATH={0xc}, @RTA_PRIORITY={0x8, 0x6, 0x101}]}, 0x30}}, 0x0) 19:51:34 executing program 5: r0 = socket$inet(0x2, 0x5, 0x0) r1 = socket$inet6_sctp(0x1c, 0x1, 0x84) dup2(r1, r0) getsockopt$inet_sctp_SCTP_GET_ASSOC_ID_LIST(r0, 0x84, 0x105, &(0x7f00000000c0), &(0x7f0000000080)=0x4) 19:51:34 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r0, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r1, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r2}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) r3 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(0xffffffffffffffff, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r3, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:34 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080), 0x0, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:34 executing program 0: syz_emit_ethernet(0x52, &(0x7f0000000340)={@local, @link_local, @val={@void}, {@ipv6={0x86dd, @generic={0x0, 0x6, "0cf94c", 0x18, 0x0, 0x0, @private1, @empty, {[@srh={0x0, 0x2, 0x4, 0x1, 0x0, 0x0, 0xdb0, [@private1]}]}}}}}, 0x0) [ 250.568310][ T4626] debugfs: Directory 'netdev:wlan1' with parent 'phy8' already present! 19:51:34 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r0, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r1, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r2}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) r3 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(0xffffffffffffffff, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r3, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:34 executing program 5: r0 = socket$inet6_udplite(0xa, 0x2, 0x88) sendmmsg$inet6(r0, &(0x7f0000002e00)=[{{&(0x7f0000000100)={0xa, 0x4e22, 0x0, @dev}, 0x1c, 0x0}}], 0x1, 0x0) 19:51:34 executing program 0: r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f0000000140)={0x26, 'skcipher\x00', 0x0, 0x0, 'cts(cbc(aes))\x00'}, 0x58) setsockopt$ALG_SET_KEY(r0, 0x117, 0x1, &(0x7f0000c18000)="ad56b6c5820fae9d6dcd3292ea54c7beef915d564c90c200", 0x18) r1 = accept(r0, 0x0, 0x0) recvmmsg(r1, &(0x7f0000004c80)=[{{0x0, 0x0, &(0x7f00000001c0)=[{&(0x7f0000001780)=""/4096, 0x1000}], 0x1}}], 0x1, 0x0, 0x0) sendmmsg$alg(r1, &(0x7f0000000040)=[{0x0, 0x0, &(0x7f0000000500)=[{&(0x7f0000000200)="de", 0x1}], 0x1}], 0x1, 0x0) [ 250.762519][ T4640] debugfs: Directory 'netdev:wlan1' with parent 'phy8' already present! 19:51:34 executing program 3: unshare(0x6c060000) pipe(&(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) r1 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r1, &(0x7f0000000000)={0xa, 0x8000002}, 0x1c) sendto$inet6(r1, 0x0, 0x0, 0x22004001, &(0x7f0000b63fe4)={0xa, 0x2, 0x0, @loopback}, 0x1c) socket(0x10, 0x0, 0x0) socketpair$unix(0x1, 0x0, 0x0, 0x0) ioctl$sock_SIOCGIFINDEX(0xffffffffffffffff, 0x8933, 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, 0x0, 0x0) sendto$inet6(r1, &(0x7f0000000080)="44f9b108b1cdc885c9c533d21f474bec8bfef1df1e2da71e578dc6b91d09f7ab15378571d8e27546090000006e75436914ab717528ee4b7a9beaf908d11137c11903064e83b4951f4d433a5404970c85d92d7083fd38844cbb0c6c5eb508ddc2dc7a590aa7941b1e9eeb5a688138dea09b776cbfa784cbf550bf3074fb0d775da4df5a3f48bbdf452eeb6b923da9d0e25b80f76a873664b5753444fe05f33e5f91045540836c3cd6af10f0cd018f0c6f57f926ac959a5628c45088fbe0c87fbe6cbcda4662d2a12f6d00"/215, 0xd0d0c2ac, 0x1, 0x0, 0x0) splice(r1, 0x0, r0, 0x0, 0x406f405, 0x0) 19:51:34 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080), 0x0, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:34 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r0, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r1, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r2}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) socket$nl_generic(0x10, 0x3, 0x10) r3 = socket$nl_generic(0x10, 0x3, 0x10) r4 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r3, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r4, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:34 executing program 5: r0 = socket$inet6_udp(0xa, 0x2, 0x0) sendmmsg$inet6(r0, &(0x7f00000006c0)=[{{&(0x7f0000000040)={0xa, 0x4e21, 0x0, @loopback}, 0x1c, 0x0}}], 0x1, 0x0) 19:51:34 executing program 0: syz_emit_ethernet(0x76, &(0x7f0000000200)={@local, @local, @void, {@ipv4={0x800, @tcp={{0x5, 0x4, 0x0, 0x0, 0x68, 0x0, 0x0, 0x0, 0x6, 0x0, @remote, @local}, {{0x0, 0x0, 0x41424344, 0x41424344, 0x0, 0x6, 0x15, 0x0, 0x0, 0x0, 0x0, {[@timestamp={0x8, 0xa}, @sack={0x5, 0xa, [0x0, 0x0]}, @window={0x3, 0x3}, @sack={0x5, 0x16, [0x0, 0x0, 0x0, 0x0, 0x0]}, @md5sig={0x13, 0x12, "47966e0b0edf16502914f1237e18881c"}]}}}}}}}, 0x0) 19:51:34 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x0, 0x0, 0x0, 0x0, 0x0) 19:51:34 executing program 5: unshare(0x6c060000) pipe(&(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) r1 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r1, &(0x7f0000000000)={0xa, 0x8000002}, 0x1c) sendto$inet6(r1, 0x0, 0x0, 0x22004001, &(0x7f0000b63fe4)={0xa, 0x2, 0x0, @loopback}, 0x1c) socket(0x10, 0x0, 0x0) socketpair$unix(0x1, 0x0, 0x0, 0x0) ioctl$sock_SIOCGIFINDEX(0xffffffffffffffff, 0x8933, 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, 0x0, 0x0) sendto$inet6(r1, &(0x7f0000000080)="44f9b108b1cdc885c9c533d21f474bec8bfef1df1e2da71e578dc6b91d09f7ab15378571d8e27546090000006e75436914ab717528ee4b7a9beaf908d11137c11903064e83b4951f4d433a5404970c85d92d7083fd38844cbb0c6c5eb508ddc2dc7a590aa7941b1e9eeb5a688138dea09b776cbfa784cbf550bf3074fb0d775da4df5a3f48bbdf452eeb6b923da9d0e25b80f76a873664b5753444fe05f33e5f91045540836c3cd6af10f0cd018f0c6f57f926ac959a5628c45088fbe0c87fbe6cbcda4662d2a12f6d00"/215, 0xd0d0c2ac, 0x1, 0x0, 0x0) splice(r1, 0x0, r0, 0x0, 0x406f405, 0x0) 19:51:34 executing program 0: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$batadv(&(0x7f0000000080), 0xffffffffffffffff) ioctl$ifreq_SIOCGIFINDEX_batadv_mesh(r0, 0x8933, &(0x7f0000000100)={'batadv0\x00', 0x0}) sendmsg$BATADV_CMD_SET_MESH(r1, &(0x7f00000002c0)={0x0, 0x0, &(0x7f0000000240)={&(0x7f00000001c0)={0x24, r2, 0x1, 0x0, 0x0, {}, [@BATADV_ATTR_MESH_IFINDEX={0x8, 0x3, r3}, @BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED={0x5}]}, 0x24}}, 0x0) [ 251.232412][ T4650] debugfs: Directory 'netdev:wlan1' with parent 'phy8' already present! 19:51:34 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000", 0x21, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:34 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan1\x00', 0x0}) sendmsg$NL80211_CMD_NEW_INTERFACE(r0, &(0x7f0000000140)={0x0, 0x8, &(0x7f0000000100)={&(0x7f0000000080)={0x44, r1, 0x7, 0x0, 0x0, {{0x7, 0x0, 0x4000}, {@void, @val={0x8, 0x3, r2}, @val={0xc}}}, [@NL80211_ATTR_IFNAME={0x14, 0x4, 'wlan1\x00'}, @NL80211_ATTR_IFTYPE={0x8, 0x5, 0xa}]}, 0x44}}, 0x0) r3 = socket$nl_generic(0x10, 0x3, 0x10) r4 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r3, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r4, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:35 executing program 0: r0 = socket$inet6_udp(0xa, 0x2, 0x0) sendmmsg$inet6(r0, &(0x7f0000001840)=[{{&(0x7f00000016c0)={0xa, 0x4e23, 0x0, @empty}, 0x1c, 0x0, 0x0, &(0x7f0000001800)=[@flowinfo={{0x14, 0x29, 0xb, 0x2}}], 0x18}}], 0x1, 0x0) 19:51:35 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000", 0x21, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) [ 251.521898][ T4670] debugfs: Directory 'netdev:wlan1' with parent 'phy8' already present! 19:51:35 executing program 3: r0 = socket$inet_sctp(0x2, 0x5, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000003700)={&(0x7f00000001c0)=@in={0x10, 0x2}, 0x10, &(0x7f0000003600)=[{&(0x7f0000000200)="5fe07e20e70fd59b3b37f59fd93615597ce9dd2768ff6120364784399a402ec8452cd175a675d0a466df0cec84cd8a2f7e53ab56b4a4fb8ab27212011706a5910a525fb8aeea7b7149a8d104929cb6e6590e24a6633cea40c04a305753c9af3155eba23ec0620d34b26df566a33e08675a1a1b8027cecbcea54cb47aa931ae0136730b5e34eaea198e4119d73640cb093413874564d751e00092328a1855cb48473de9c48523322200b9e8d60be89ef26baba1d91911569d33b419bcc734c54f147e350393a7ca7e4781", 0xca}, {&(0x7f0000000540)="ba6631d0e721216792aeacbdbcbdaef784febe15de12e143a50ffc686ebe5516d74e6737e1f04ed631e4f5b67c88202ff9a25c33fedb80bce325f7d32331d17e14eedb9aa1f3cba4924c0430526754654d7557b3a1df33c61fdea33332d2d31d64dfc51459a1989b46ec2a1a60d738bff93ccd472f5e9a0e00ba22d93fc6b8a9e6e7366df27ab85f94e08ee0aedc7e884e8efb79a12f2b0267adf737553e9c959179785b4747d0752dccb02f8de2853a145f750db8e10d0b6a4c5721c35b41a7a997882b1c45e0610377cdbae3c306afa094d587424645642a92236984e34e9c84d30ef5169f66158b0ae35db4d33bc0560fd1e111ed1a65a853d866044e7c10356e500001c351893dee35ef4b47c2ec352b088230bfc5f878990a48424208016f6fc6f32bfbdbd13fa9080b20902f62390c6f8ef09f0b8ced0960089d890598f8a1db90f4da081ec006ef9d54f5f4918a6726951d6107fb4d3e5daab9a8b864b70295233dfb880e3e99570d1ab1bd5611d30d6fce3731d31eea507df519f6d553d4279d16a536574e7d95ab8387e0909db04617eb1261c8342f1bc6d64eb6b49ea70be557c8972a6487e43fbb8fd9dcc359bfa42dbced4545d1328f3c7a6653c443dec8b80f95b206f4feca34c573484c3aa1da8ad4f4cbdd74c0768ce755a26687eee4ace8a9824e6b536d9adc36174bb629f9985560c923bfbc50521b7679c9bd69ecfc9115e93176f8251b7ff8adbf36a4c40c5ff73b74567d7609237d02b83e5f1c0a75249d4959999c7acd5b5dccb7b603dcf080ff0461aac2f4f69c18012b771b2fc9b81ce28b3d14225a50395e48b55ac6f76db0e93f4e7108081caff8bc380db73ec89aa9f9fc196868a03c63751873361e3f2e1d3a02c6cc70c794a5780bef5f1c0e62b713a1cc061648ef78af0826789762197c4550b8dc5506f57f794ae80ab7b6f41439606d2e2ab4032af65badc48a8eb70807ba17128ead3dbc896e1846c658343270ec92677439608f928b0d27521d966c29ce3e90ec6e592f83a89354433488ab6c556f530a70a33161018f14d7ea113046a2a9ac3671c890c312704169ca8e95d3ee4a33d8558ad93fcb22cd0a9d7f358998bb815c26a1444762c009ecc1fab24110603a0fd21e978dc5a1624fd94e306dc31d80c869df31daadcda343060b09e7bf5f952fb7f227d30d8909492f616fbbf141639e6a86a7ae48b61d1781aa9e1e2f9ab8cbf451da003e68cd7d374133b4423f5b706910ab2969436f11f07ed726462256fbd301a01407fb8f6aa9fb6b181c3f560baf41915340fc0081b523206ce3a4aed1e7915ca60f684912b2043271e31a16e68f6b06bf1a98a94d99cc516015d5c8cfe5be11c9f83c4f7799761e83eee1ac5d4a8d34b72fa1b35daa6b1302d452c5717d0c09769a93a6b60b68b8c7322bbe09be0f4b3d475857ac014f9814855d398513352150673f2d2eae1060c7632bc4992b1aceb807833163bda4743453cc81f4a473dce621ec95fdb89f6f73b89d4890b239a6857271890cd128b984da5efab6dfb5965bd44522030c29cac538117a0ba980b091bf091b1e3260d868e00dc15b4b29bd4c7255161452f5011b9538bd36ceac8f391c48def21a809bcd51bc0cb6ce36c7622c4534ef11f4e082e83a19f313d42c183037c447868c86a92c3e99a6450d8946ae06f46e319e626edeebadca80df4d95b4c6a611ad5cfe2f8b4c82b723f2e11e3350b7e87bb6075327e14690638a371cb957595dd9518abf4ff4f7f54dc23d3cdda838167727b164bab1a8cc67fd86545ea54a5caa20a119356056720ce905a7ea0be2e6630a57532b97ece6c3cfbe8f68ae058563e1804c5aca9ffefabbac59c62ed64efa29cd4273e4b9ef4dd4f6847a762fc986630bc4e30ba7b833e39ba7148649741d016e5b2d86956b7f7078a8cb15aeec91a1fdb9106be9cf9683bf7bb38d14b89e68e970236269e7fd90711f0c7c41d70f0537127ccf489055653a55da7f97b7404bee5eebd18476960011752fd0883afb1adc9fe17d6ad0e53aa839a23980f4a9f64778ea8fdc032dedbbd2fccb1e7518d0bd910896b7a11b5ae08bfd8143de53e110406ee6bdecc7cf1c4a62a362a86653dd4e757edd1991049f3e1848c202594569a7fea600a736de167d38dd29ee399793940869828f5dc4a395bca7b8fd61dd9285334c47e6de13a91f3f93597bb2b56b6c28f466d1a4d499b6ccb8259ffc82646e2d0628e98b2e72dcfb798c80ba0d2ba294385537fc574a9118202c3b323e2b3df0a21466c77f20e2ff6c324ac4b516f4b9660ba9a1a0c0e0e8f9445dfcf16960e4d40515ea653bc7ffe4f1d15c129d3c3da5560e5ad977920ba279fa767e79efafc460fac9fbebacc7648b69e0facfc8bde588642b2d5be5ba51d39564c6e014b15b89135196cc6843bd58b354815e2885aceb282dea392e2712e0706a1aeb52cac6cd854eab94fdd3db745e5feeae61fc7b9d8b228f31498f9693739d47d6c5888f71f0eebe1dd075dd90488ee0ee95e5984c45b4c025c4842c4b5a8c9c057180b633026faa59575c63b965595f0c1dd1b6036ad9bf31dd70f77cd532ba08924d6e84ca5cdbf1520e2616fef08741b46325fc76acc86b5084339003a86c72e6533c05bd3482aca836637dd75bd357609e4714214fcd260bede25296551b09418ca54cce786030288eee7fa73f7d3ec32b84d2ffd096bf01f6d533ebfb2a551020f794a4e3515ef1093b6bff5d81435cfa577d94dd64a3003310d9a96b4e56fd4f525107d4a4d527fb693d65366180f0809b2b209611117ff65875f61c3df1828aef93e8b89e0946aa69eaf075a22c6822125622eb89006f7d6b93b4a94d4d993281f2348c3404601918d18e8e79e6b743f35f572b96f8bf09f6d1393fd658d925c29b7a3370932190a2a2642b4a2e0e0837584f5d503656d9a0410c46699f7b048ea2cb3af50a9380d29fe3280f087e102a8816cefc19099ad0286f44592e405a64cd3355c246a42dae22ca9a3b007a50d6cc6281d8186850ee60deb4ed598bace52df335f8ed669f475e044bc0873236f377f1a31216fce1b38d7c29a3ec6bca546e5d2e4372ba7a8256eef927cce949762e90fb2de2771236769d3e89bf34fe0fbd4513fe47a36c665a9d5f81430f645bfbf2a79584be213fc73a57a0c265c585b01585d2d91064e72ad208ba7a2f27e1feeec2303115e82463616fee91dc2d820c201ed636c7d409d573af78150a7ebae51d61e719bfb2edad35556f8e9713cd07b1edf7fe3c7d62aa25ba9dfede8510eac9646c9fba3471130d7f169df8d4d5bda6faf24d09324dfea0fbf4cb9bf7a21ac55b6b3e9a2a13463c2afed5910d821b76d4ebcc8fe62b19b74f32ef13d8a7aa81f37a86cbd07909af66a0ad813183d93c0dda3074cc0954b93ec10b2b41b05006b366d55d5e1b1c90bf5453d4a1babdd3cc94652522f7b27d036b585091c6cb1a269993f7ee0b86fe5a6b0e20264e336313a7d519da900dd27195e95e7b13310d133a093485befdb0b868c3cfb4b02a7452d8be13aca0e707b79563eee9978481ac44d3cfe698d325fc5ecb9a26bc85e14021213a505424c1e2b34b8c33ab16ea85c1d669d7adb240c20676655cd0c1bac1370f1529ef53e497d5600e323fed9ec2ff77f595f358c763ac2089ce19f9a3676db34a241f6189afac7fbf0a2bf8a830fb61ca75c602a7ee488efe1de9d6a6f960cc58b3fba2d4b611b619856dd9460dcdabd685b764588ea80c14d67421ddf2869c176d73de34f994afb6b989d3368c433109150e169b23dd3c0fbae47c8afbbdfa562ffdfe44a0c8d364ff29d08cd0e69dfff64b67f7d631acb2b45ef920dd6d3dc1a510d5203a5be65ef6f3b0b43c2b1026083a6fc1c0ca219643a806660600a1a87ce3c349703f9af9c32ba1cd8669d49fc6391c11aaa4012d4258f5b2c51fff4e523d86cc4dc8471411554d810f23983470c7f2624aa2e74a9cf0f12ae8cc6542cf324b11c20515dac058c3694f46f53055f12aaa845a3b2593e35473709c10dbdcbfc56181dddb486acd08bbd398839c6e8780d1784188ac42174c177e66c335d34a39b22003520db90206388e131f7e456031f74445a8c9e78c1ec63e0b09283830dc1ef68d879125c13d854a9241d18881805d4b968c848c7630ce29da4d635713af118fef7933b2d4a9d7f63a582569763a2943755ae0e61a9fa5789d75842b0f03b72ac54585595ee0ed9a64380e3baebf3bc1e8dd17e2cf2fbe8f6ca0dd2f5cf4ad83cbf6624794afbacddc5effc39874829dc4143bb480ff6e62eb8ff79779b6207d02f492f40d731c4c5916ed59d83ce0385ce96e6344b96028e53c72c47d9a64f83400625dcefe0464f101eb00cce3037a86d5ca8beacc15410e59a1d13cf8e240e84825bc186401b7436bf673b0e5c1bf4c780204f0ae48dcf5d2d4f093496384c3cdbb585901d1d955cf9be3868bfbb89669afdd7bbdc86f9d28496e9845c8cda453db08d42ae1c6b5019e1b91f740cb171656ab1e64a4f3fddc66f0ea0a300aca5697af841f60c98aa4c22a59bb9d591eed961d887ba337c3920b210c4af13af98fdf4dbf61ac732374fb3b8f68926036da1bfa7a3bd374367ba6811ae2b9d0709e96a0b606bc01c075b5eb45f7188ac0dbb046c31faa77c8328dfdc2dd144b70281365850dd05400eb8543fe708d5129b5a8f1ed2e5089891bbcfe2ef9763c1ebadf6214f9f58b390b45ad343f5a2f19cb440b64340405059a7dcec3165443157f98f62db7537f16ad20dbee4ea38641168b7db2ca2920b791be34fa7d328a076189575171be6b742a429be3f694056b0d6aac4983ea9e3e979fce2e984d01cd702908a0e40d0e64ce7d3b9843ca2209c9e7be5d489a7dd691de5ee1f3791da65f8123b3d9383d76994aee71bc8271927799aefc9c9ec68dc0780d630cdca1ac2ba69923c00ab65741d86b52048f36e2c3766c6c869fb87d4cac2b18ae5f1fe7c8ffdc37008565b508042702782d505df42a0dd1842f964e24cdc89a57870703f38d84f09a15e5cfed9b0437eb218aa5510e2e042b856dca84179447b59a5396af0e06d2dbc8b4c197566abd6aba5e19369daf91d288612b163aa1a1e1c226257c12d8ba1e02e063055e164346b31858513419f69b193f0e0e449a910ecba67bd40a99f1ce168337a4ea9770dbb58e7476c4ce10b19aa3a8e7efc03647eec806ce6b38ab4de8dca029986cb13212d3d698fc13d5b6261b68069fba337b83b26b2e86ff235e00dee9cd058e43a2b2c596a86371d2fbb62e0f4b8add37d440463f4ecff2b0ce75f39628a3fe985fc4730a5c082156ec30a7dfa1b070b11bd1338abecb4b964d4c55b91c673e23587976353d731d41dcf482411cf8ef313282f8a6f4a4af2c314eba3a104e278437b1a6f59a11160093d2d977da0ea74f29251b19859fcd8fb19ea8e1c5c0a6fdd915d12db1a98942a54fff306719714d773a2bfcb0d753b64dd349d7e1028099b96c8201d5c3d5f86596ca12f10220f3579124406cb6b926c6ef192b9352430b1f5ff55b23c5f8c74157a09ef3a21990e617d44954d8d9c8053dd3aeed9423ff907608934adad06daf52ee761df85b82057628536f8e29cb28363cc988e18d09d701c4c8f6ab38ca4d7fb76fa701ff0b752dba271fffb5e290672b5852e66dd4cbdaac53a9fb18769a6cb38b35f6d296e56091e43364a90664fb94755ddc49b47b3edbfc717c299331ca23e6", 0x1000}, {&(0x7f0000000300)="319c7620d6b76127f7791a6b1c8c0a6aabb3a4156f3fa3a14bcbf7db7bb31db23360d85ed19b3335d70a4a2a1b4f4661abde6008de90f10b542e6a1bf58ef1d8555cf8fd992c8ee1", 0x48}, {&(0x7f0000001540)="0507348f1ce97bc7972027bda8d8e6e3216ea4aa9cd821c170768f5ab3700e4a66b7aef5390c14e237764e9abbe4ab33b99e422899f9a572f6a46a2a98d38ff61938f55e60834b45310ae6036aab516668eae88f3505c2b69c84a52395ee6f8fb6f3d4343ba1361dce79878984c4e568444b0e22739bd47d7c98d28f9d07e1d0b65b5a3e72dac104a130ecee10667c330f1247121cb5c294e17abfe1a6665f760cdd23a1a805a9b83729e047395f2d7f639b151810c4372da90983719f87930fb3f0eb26bdebe4610cc839283323ada829b6a66a423eebf9e3633f31536fc0be8d041fb2b511f7d3e2badabd8a2107b229cbcbc0f87d7d11eac6aadb8858a18324375dcc1431cfd32e3b0d49cfbe7e4a4c210024c04e6c736d8cc4d6eada27a11e32bccb2ed489c7b60a87a55a4742e7c241c6564463312ffcbc151c296c8254157f5ee925730f779fa74ef46c3e228f26815266abd8be7642e1e23abab77f9a3d4aec6929ef7145b871477b1bfa8539a2a7f5f52793335a5d3a2f40af4ab4ff93d89d512d92fac9d9a05ecb56de5f816eaafe74cf59f2954df509c5b616a350e1fca66a12ad2ccb282b558f4e55b94dec2ad57f23ad7bd20ba7b8091362956a48ec7ca221e7c5fcf6a0b5bc3bed074b7f5bf2eb3133199e892cc8ee0bc38ad8007c9d133e0e19984d8c5f58a8eddc744ac3fbf1489b7289b7161f83c4ee1c9c2886a7147473bb580e5c42d36fba23c46abcb2a5feb0a8efa9e69c344048d8e966d92b6acf74f281e2ad2f6621b5d2021cd2506efe8eade799523dbc7d65916d021287280222c33a0e8cae207158d79e4aa370373e826c0c11cc352f7f344927975b106e50269f5596699f8a13a09ba108e2f489414ab0e1bb47cbfbeb2945ebf1519c2f013b756ad0acd5eb255b7e6e9ed601364ad305f16e44caf79ee6d578ba63085ff81a9e24a034f97370077c0c3aca8cdc70d463c850ce4fea7ebee56f41c15e11205acb4a4b93303ccdf9cadab5560ff03df5654294c92f52c41dbdbea6da9a64c6f337bacf751bd85587f79aeb478fbac901a2fa120c6e05be0764e9516d64a3f7f253a9b3975e59e2f16d80373d9eb8d9aca1656292cde25b03c9d6b555e26f91e212b5b7e30ed057eef1029f0c436da9bb6dd6e422df82d5e2745f073b840680f56290a2730fc8de8418ba38cdd37fa58033ad00b868367912dbfbd6a77084690d569b471e1505edfe7e9649977fd0bdbc990de25b4089643a41bad3c5ad225eca1267ec43ed26422e10082cb8a7e093336b7227e5c9fe58a8b093edfcbf27aa594ba599bc393735c176fbfa0ccab437b690e005826fb32bf0a2ba562733b5cce11a1c3a98496be504f7881637b786a554b429857bd3e08781f85eb352a83d8338bf3ee2f3948631239f2c68a54f69bdb98885b0d93ad2eef9d7d89792b2a167f5cccb26689cbd5b7855501427ec885172c45f506ba071bb785bb66cb4dfbf9f9fa89705174e09cf634e4932a74114a2aa819be280d21994e2c6f17e3d20827bc253bb62437a8770b156be23022dcda1f27e1aa6c2f6d3b6fa204041e0e247f360d9420a438cd7f09cd645b7884d6e3511fdff81e453564ec6e8e46f74024e44b03d7cba11c1623f363d5e8c2434abb10bb2abb92a006a8cd39b131ab4e0aa02566d79fed5063a562f46fa365e33fdaa16665c71cfecb86b7fe90d570a7b1adbd60c274aa40d8254c791ab9c4ab075007dc3d564059334942aefe9d9b367b9c21bbe85d55a66f83c05f09634b489f31088292e83adeb336d069c598f710447845cdd29baaa4cabda6b0512a3236e2276cbbd1c9975521b7b41e8961273390de21cbc10f281a86e6a8652100d7ba51db504e13d61356a12268d21f524cc0c0707da655111fd5928a18b7cb2390ef7e9831ebc66c8d049398fd49ba82c88a625bff59b31b2051bd9c5247b587ee098bbf395c63bd4d725e7dbba728c9b9af7de5047c7b5e38fb4aa443fc887f1b3e2ab0ab286229e99949745b496449a112ab4a1139b551ec8f2deefa48ed4e1ed34852a36046e32670c7f4c322b1ca1a6e29d0b00b1ae7a86d4dab6e91532a4d6db38d774e4ee828b2e72bc968164714a6d0e4012e4b019522cd663a5321ca18193faed2d8de56b9e58bfa0ec99dd93f3db334d5c2dc2eabce420f4e30296665a253cfd143de3ab295d779b7c265c39d7d83b0490e7f7b4e2e0371f72c9ffcecaf9de619745418cc6612ff063e50563b6b828557543c431f5bc9b35c5b9899a7336cac09060162a4bd0482179641344ecb05ede4fe9e2ce658da5b1e425afcf1811f7978455ec9d5376d75120dbe70c5da0385a9c2dcc5322e1f54a2904a533ddae9a89d2e3a935b6a9498d0b3047c511355d6d5d6ee866182105499b72ba47c8decca61f2e4217159ca9d90fe4d0b5c33528e603780eb1be3ffc1b2378e3a4ee1417ae08003293cddc22a09ece85a6a62520e814f19e0044ee6da9f9f40e89a5f51e19f2bd9dda19bdb8aafeb94dd1812b95505ba78cbb71d9afeee7e7cf3bc7f18549b4b89e91d77450a0def05aa1e1740013093c8887b9acb13f2d28c3a7e94cd8b8c8664cfd481775620f5ca3b23583bbf9201d1b9cf2bf9d35e0fa1abaecaac9b17fa3c6721c2829a2d21f49fb9fbaba279eb91ac076f7aab3268b0737b30f26299c6c8258208008e6997b38220826f4135495486e45c1e15da431e962b27a563c3cd98e02bd3508826c1e287140e4b675ef23f4a78ede4ad409bd6a55bcfbb87c2ac336b9b052b0dae4439f42eded9ec14251e04732ee62cd546862b04d7f29bdac3f4ce6d7a61ab78eaf137d9ccd655f76bde3c2487821616826c03989522fd36f37903894db3321403e8e1fb35a9632b548dc66cdf8ac5d38d39a3b060656cc55c9d9f4c7f125e11a0489761e64fd86fa62332566b12b3ab61095307c1a4b75f7f7bf13b62b6847c192990d14f88ceb9c78809e2a1e7b1b942bfd24453071e9870688b9f4b2608acebe8d0e9620f725de428e83573d1d0da56886a320dbb7cf648165431dee9327da82c4de10ee13b71194216538579f7bb09849021ce6878b5896210ed074b14543aa959f1adad0cb80000a84be596bce3bf6b99ba80ba547d5054d3f77d6ffc3381d0156051ada08650c919b47550394ff9313b853e48422172fee33be094083a93c75c05186dac5ea79926fc7ccf144bb33e3f12c3757384220f39a6c91052c91b0ebd26fe7bf8c41589ea9599a25ce94fa8556fe8001b660f85ff10276d2bc4209885d702eed5944647a9833c30c4859fda8788b361306862df501028851c9093cb73c559d03606795f7030124d4623ccf1b3f0333127fa839529a5be3c87ad4e2fd7e50db81cc9113c1fa93a3a047729ef955001c69abdd7dd365f8a7ddfbfeff09671721eec10bec091fefcf2dc04f9e2aae2ae9a6dc1e5d92697daeb9aed7534a7f86d7e0a8a8733214ce6daa923f5d648149e38b4f6e477326ace8fb3ded84f1595662324401efc5c437218a264f4055b5652c447675e865b21b503b9d1038b61bde47f8d9b75f9e33f49f67e4b4929e273ba7c3169e787b50a4cf4f5d62e3a523d5e2ac465b36c78178b7650fe9fb05a7cd2863ea5078114efb0a740912333c73439c424308403f92e065432724a5bad6dd99eb9999914a523e4e7b9bf86d7a4545f19589c46aef3d7923e9baf0c975408e85707298f7ce8cdf344515a1caefcf999a66c7c7859f20920740014d6e1d0385a6a7d6956b0788ebb885bb4cfb1418b9fda2640e11a2391623e1930c932f86816397e5b8ca00bf4b5817ef52e9ab3ea6b7d442549efcbc88f8c94edad57890b0f7c167ae312d27c62ef87850cd6bfaa141096a91fccaca63caf6a0a5732712350d3296c56633e3b3ca4965a8131f65a379e4550b964e9d0abbcbeb36593ad20265d3516fd96e6ea8a6e4aa8f4931b9010c724317a9fc3aa90f9d8a531c7f4e2f7b29814ca9763f58777b9e2deb520bc2a730c8f7e21459a3fe9f739d25ec9057c8bf5973f673fe9c20e8ed6399650b5cb75fd5132b00121e2f9236cfdb5ea67c9d29d7a9b7045cce7f4f7b6adb9be4274e12b2ca36a028260403da0f2621ee4f9a51c6bf2776a29665c4820bd5cc8d3272ffec3a10033b4cf801dfb8f4749f4ecc0428920412a4c268edeacfc3cf852384c4fe7bb0ce01e320bb53bf6d29af72b8367d7ca738579f51729d31d754c86b31c3537b6f2bc0ca67766a164a226b160bede7e86562c27141c6f49fafdb3f3324cf3d83ce8623b3e18b9803d3c1494e4a5503b39d00cc4bc469a33f81d9c1aae30e7cc4a1ed3cdb52392407f3cb7b9d8d5be18a8ad0a923a44c8b0f4475d5b161bf2a71126ead61e39dcade82a0b737061ea5b15c952fa9df9cafab5341cad850a177b8112a689d03059d7f02c0a1b31fcefe4e8e7ca4e26e8cf41a74ff348928e3850e71397c13348f38777083690c8a38622adc859b329a0d150e4c9a658a91de5907ffb95707da8ce827c5aba9271d0c997d85634189c793f94c333aba91e456c89282428cc7ab22ddb344045e0a94f75cf54a3dad3629355c1eae3dc349d880fe021bc7cb5fdf53c00b4edbd96e130859be83f717795022c2662b62db69b86ffbf88a9f78e552d4d287cf365da3ca0a8808838ed17ccbd0dd82af116801238caaa1b05988c514134378b71189b86c4bbcadf2c9b36bd4cb89f173ee6dbca6f8edde555434741a45f2ff3757aae3e3f88491a5f52178aa4846defee843311c5c2a3c00f99feb75cbd209e6264330aba11150277fd20f82ae94e6b1bbc2ad2562e5a74bc925b480f8e01199c22eb0b3aa2f2e84b192f48ed2bd23c97b45113d532f453e35299ad10eab3bfadcf22d4aea524f7bfd5577f0c7f0828dd0076186f320c57d9881711bfd63d4abdab657babbff8097de110c17278db84f292bac1c46c193967263b139044483409d8c5d9a9f402579be5d3023625e95d8db0d4c6eff426ac1be43107b2fdab7dacbb1a86de101000b2f62e0d23da39657545ae167c98538d68571f1371f8f4bab5e842137a00951da07f9da38b2441bcc7f7dba7cbfc62bd9b3931ae23fe2d314de0478aa8ee0534018c5753a0ee5a2da768aceb2217c5318c8a90303434b19a047378d861f10c73ccc456354190a53e2a7d1273e2866b33d645b2548a6b688b22c58500907ed7077f4edc9000b0825876f73906fde1c419d3112759258b140c481b34b30e3058cda6edf083681baff7cc4b442cfc1a36379e49b597d8d46f2422e83262f8442af41227aeffe1018d7d4e063de3b3fca71b914f1459b4f9efd3cb936b6e57f719e1831a5febf4f12901d", 0xedf}], 0x4}, 0x0) 19:51:35 executing program 0: r0 = socket$unix(0x1, 0x2, 0x0) ioctl$ifreq_SIOCGIFINDEX_vcan(r0, 0x8933, &(0x7f0000000100)={'vcan0\x00'}) r1 = socket$can_bcm(0x1d, 0x2, 0x2) connect$can_bcm(r1, &(0x7f0000000000), 0x10) sendmsg$can_bcm(r1, 0x0, 0x0) r2 = socket$inet6_sctp(0xa, 0x5, 0x84) setsockopt$inet_sctp6_SCTP_AUTH_ACTIVE_KEY(r2, 0x84, 0x18, &(0x7f0000000940), 0x8) 19:51:35 executing program 4: r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000180), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f0000000080)) io_uring_enter(r0, 0x5865, 0x0, 0x0, 0x0, 0x0) io_uring_register$IORING_REGISTER_IOWQ_MAX_WORKERS(r0, 0x15, 0x0, 0x2) io_uring_enter(r0, 0x0, 0x0, 0x0, 0x0, 0x0) 19:51:35 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000", 0x21, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:35 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan1\x00'}) r1 = socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r1, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r2, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:35 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000300), 0xffffffffffffffff) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r1, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:35 executing program 5: r0 = syz_init_net_socket$nl_rdma(0x10, 0x3, 0x10) sendmsg$netlink(r0, &(0x7f0000001ac0)={0x0, 0x0, &(0x7f0000000040)=[{&(0x7f0000000280)={0x114, 0x1a, 0x1, 0x0, 0x0, "", [@nested={0x101, 0x0, 0x0, 0x1, [@typed={0xc, 0x1, 0x0, 0x0, @u64=0x2}, @generic="c898d63bab6b91", @generic="50bb2d6f67d29d6fabadb107d0def49c88ea04abde1d5e8d3fb22a1b5046778bdafefc46b0449ade68bf84b36ec72dd71265fc2e882348c26c2126237dd5b37f5ae655b1086cda40e00aec58754734be31d750351dc076eb47d96219c08c029d1608a487f26fbe816b89f7cb81bff81a8b7a82565856555ee923c65973deb0a99b962bc0fe94a3fcae3697bd7b85b3a682167c43dbf137115a40ebddcad74875cf0d972df9e99f07976773f4d98fe3fa370d47eb640dc5061dc35817c8a66c29be82fdc2f4393c05a007d12b505a84dfdb98d568175b62421d726d1e5331e1ddfd4d770b57e091511131"]}]}, 0x114}], 0x1}, 0x0) 19:51:35 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) socket$nl_generic(0x10, 0x3, 0x10) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r1, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:35 executing program 3: bpf$BPF_TASK_FD_QUERY(0x14, &(0x7f0000000080)={0xffffffffffffffff, 0xffffffffffffffff, 0x0, 0x24, &(0x7f0000000180)='/proc/sys/net/ipv4/vs/sync_qlen_max\x00'}, 0x30) r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000000)='cpuacct.usage_percpu_user\x00', 0x275a, 0x0) write$binfmt_script(r0, &(0x7f0000000040)=ANY=[], 0xfea7) mmap(&(0x7f0000000000/0x3000)=nil, 0x3000, 0x1, 0x10012, r0, 0x0) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000140)='cgroup.controllers\x00', 0x275a, 0x0) pread64(r1, 0x0, 0x0, 0x0) 19:51:35 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ff", 0x32, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:35 executing program 0: r0 = socket$unix(0x1, 0x5, 0x0) sendmsg$unix(r0, &(0x7f0000000d40)={0x0, 0x0, &(0x7f0000000800)=[{&(0x7f0000000440)="9d", 0x1}], 0x1, &(0x7f0000000c80)=[@rights], 0x10}, 0x0) 19:51:35 executing program 3: r0 = bpf$PROG_LOAD(0x5, &(0x7f0000000200)={0xc, 0xe, &(0x7f0000001280)=ANY=[@ANYBLOB="b702000000000000bfa300000000000007030000fdfdfff67a0af0fff8ffffff79a4f0ff00000000b7060000ffffffff2d6405000000000065040000010000400404000001000004b7050000040000006a0a00fe00000000850000000a000000b70000000000000095000000000000009cc6b3fcd62c061c6238975d43a4505f80e39c9f3c530cf08e467b592f868ee3b0a435df0a0ef5daf176db2a6b2fc25f0000000000002d84aaa3b1d4e984c46ea7e2b347a36f5662403e1b2be4284322a4908a0d411a9872971c7c56f0979bd10b97163c066d0e196bf02f46c7953ab1abdaf9de9ca3c00cb9bf4e418d07fa22f0610a70f2bdf4000200000000b0c2c1254f0963f63223b7b80197aa3161f40000b100000000000000000089e399f6609876b5887437a172ebc02a740694298b79dc194e533583412dff048fc21f28bdd3e26a1a8a0481e9f0da43bb6ca66e2f55a9ff19ffcafe3e64be06000000000000005064caec04a367c24a9fb6a6991ddb737d527d6acb15426415b6e8b14f822e86067a5e991c3b404984dfa2c6e94bd0339454c13ad3c328a182c15dc760a313e3b3ca5d67863c6cdfa71604cdd97bdfdc013393404029e98fa883c71949a34d84030323e3d54fc5b29d27643453ad9211e3550ee5520211d9370175133f260c6882a146880b9387f1beb5418618bc83a3becf9bb57da7ba8b913c685fc604ce905faf32706e0000249a028044ede964362cfb2f30a246c3b2f60000fc4deb91da1368b0960b8d69bd99c64893d44f962524429dc058528e7e541c903869d96989b9a986620cb2c95c83f2a082c52764f49e51188f9418b01b80cd8ae164acdac95318ec8b2c6feacdcf77528e5e58219bc54f6ad5679e7f430e6960ed048c46e1dccca05bfa1d67c83795eae2d31968c055d325a9c794ef88b30c2de4a274878b73c05ffa88b7073be648b12bb1fee58958d6a6f31bfe568215dfbde59dad00008a73b40f09cf018cd496b36050d7fd45e3620c28f76749262e33e16429a6da35ceb1a989de81c3f8b8bc348ef2ac3781b847611fcb0a26acafdd6d9ab05865fcf7c493d8f8cd344a1d479fb0e7113936d5a65a60dbd84a938476adeebab9ff44f531bb81c53f16d80f51b6cc1fbc455a64fd449284f71761092a0302000000000000008a05d36fd9b814b4292745418c92d944763a4bf5e138d810e29a31f08f7dea7762d2d8f7e1d24cabe17ad4135d8872935ce0e6a468fd20fa4461d1d67b234feac6eb4f046f2acc1b0efb4438abddcabb4e4e72a450aab72b589bec83bbb688e659fb426cb43d0ee993516fd4e867232cde69b6ffad447dcd92e0ef8234ff850ec3948dd1fa7afb77d951fe4abf618121b7894c106beb49b71c62df5544ef221973432ccc7e62b151eb898a01010a7ec5acd0a5dcb2de443880c8a682515d1da9a3048744acb44384d1591df789883c0560495cb0cb32283529926d25e5c7f4815237c3aa356217738898a11f8ad6a4f68db664e70b112ab8a8c93c2247e927fb6f256830dab3671f00500d36a17790bab7d0e89e6c15314f2b963bfc867953476b0505c7d728326d666f39e82cfcf7e7a85df288d75df24d5e4d429c349923f9a4fb882310391dd58b4cbd8def239a227724d39c3e6c40e20e07e68a22888a5c3941b7a765b92bcb37f302487bcbd93ccf3a104009ff34dd61facca1a04eae963e25516a114573779b24a349dfb2e80f1f345c6d96493ffc2a18478b53f3aab2ea59c523f0678e1a57d0eb042d911548ff612002ddb2d54d42fbdde42b56887003d27468225b2594a05044baf314113e889468cf13dd92aa0d7744db6b56557a5acad95cb9a69d4d6ad4935bb9d6d3ba7eb534b00d0fea62f0a61535dfc4da06e7f8695be614c557daed7eb0120516e1351fed7d8ffa31c8f4be364185469cfc5f25c90d71bce745dd2d58a30e0844f12c4cbbdd7a08465e665c2620d78673dfb68a8a3534f1a3eac9ee9f18a18106ba3d7c7a62330f5c0e98cb7982dd7bad02c8dba9c13894185bfc4bd2520b6e2043fcb3fc5eb55ecf9e6e363ea2ac40a14a6faa21b0f5a0fdb6487c51ef12427b30255bc4f8813be88beeb5aa6f6a4151cfb90644e50630ed474df7d1635afcb1ea3f6c47b5acbba2ce5099a9387c7acb9bbd1da497611ceda25049e48ddacccbb58dddaf9a3510d65383829a51e0f41e661fa80ca1eaaa6cf0824305ba4ec80400c50ffe83ccb0e6fef321190c58aca8c7c8c6d26ff5cbc2cadabda8e1219e04f8dacffd33db1a0a2e9ec9eb978d80a12d0b5327bfd053000000000000000000640d02a14708504412fa93d335c5addc191b4a21c7b340d0536b07024fb75d5eb5f3f9f4992c18f62886169c0007f549324321cd5466359f40295fa73284c4b607669bae75bd68c3e2b770c324a0ab26b6065d7e95a7bd80052db57506ec7484c66630ca8173fea3f06ed1dfc70a8b90418e2dc76137e0f68cb1c8a992862402fe81b0d1a54e05028c33d94d463f00d22e7547184b8d3611e45dff02144387f342ef9bd049bf65258a7bc094a6965e24611c077e1ca0891362a9d68f3ec7610c0449acf18459500f024f9b75885cd79ba32776e4a511c8a4ad922b00000000000000a9241220dfbf7d02ef507ec6fc7f5d37d835f7bed71283c431b9d8cbd9003972bf1dc6a71bedad8e19efc302d2a7a7e555d5f3176af69920471e6e5bcb8966c813c132d65e2b99d3015e06b372e1aefaae14ee3fbc6349af362c19b59c214de66912d1a9a98d92dc197a51c29443de62caca334c46d110e50896fe50d0477771d387f40c8ef05750ca651e6e69a237dcf78666d6ab2bda1f853525494e4efdd93be38bb5fc671f8794002d7a951fd336aaf4ed1166cb459df70218c571ba1c40b028234505e5477e268326af8812c2fbb8785a223fce0a0601c2a3b58bea716216eadabcabe86ab46e4cd3d58ef7ce8d3c4b0bc5952e81dfc0a490d8568db6d70c000000000000ae0053d2f91f49e977cdc1962dbc28c29471a72199862bc8fc6e211d13d8579cab4fba94b2b613c9b8148d05e0690a4c4ab35aabc45801d2b82081e62b23a01b58b1ffb624f63ad2246796796160cd36823743646dd0a904e10505830b6f129b7012fc3b09fa104aeaedac52f1becb7c6eff38823b75fb2ef516ec4ee6375d4a955851fe7651dcac6272781ac3cb20a2535b504502d744f2099674e58f2c117c980cf0d041c8ea5c4f166bab4aa5ed200ef4dcff96f7c9c1ab8c22db0f439b23b04fcd64c20bfb64950a2343dac0c1101aabe941ffc3a0e01976ca1cf43e12d7d72f3faa4979faabd62e2dc54a980eae4d5eba1144ef1190ea6cda641d9416c4560cab2d819ebc7b04c70f141754c3ffd79da363fe8859afee531710caf1b2bf5a51142f4755cbb700c28083525a9093790096cb93417f1216000000000000000000000000000000ceb244e4cae2b65a76d41793aabccd3d0c50486eae6793e1f54814a8ee2779c14ca96759266200229b58c12279817869e831cade25eed43c0b9ee4fd209b5b919a42f676b9d7236fc8c2b840dc2297b7dd5040899d0676291407ce9ac8101dd3512f5b3ac8cf8179d1749de324000030d0f942ec4604c28d5c287d1435956784002a53eb5fe535ead8857acf0166dbd9f30a9b9c8a9b9faf1356faf269cded935b07863e4fdad8aab529734cf507f8b7ae95bc106054d074ad4e89aefe523ab38ec3d3f71b44b753d56dedf6230b5eb3c4dbd75bc18b8510e76ba8ba04515622032d8cc8cdbd3c0cf3b0a7dbd80254cf8a2c7b24d20c42f8f92ebc789c975f8d58f9fa0ba9cc65ccb738d0384dd53dfe8f2a01ce1e56002811bb7ba823e3e5e17a467be8d8ad3ef3d82271cfb764c9a0bfe0c03b072dcd0aa1f37c0e0264d0c7"], &(0x7f0000000340)='GPL\x00'}, 0x48) bpf$BPF_PROG_TEST_RUN(0xa, &(0x7f0000000780)={r0, 0x18000000000002a0, 0xcc0, 0x0, &(0x7f0000000280)="3f0000000400cef08330ee13c573a6", 0x0, 0x3f00, 0x0, 0x0, 0x0, 0x0, 0x0}, 0x48) bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000018c00)={0x0, 0x3, 0x0, 0x0, 0x4, 0xb0, &(0x7f0000000480)=""/176, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_PROG_TEST_RUN(0xa, 0x0, 0x0) 19:51:36 executing program 0: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$IPCTNL_MSG_TIMEOUT_DEFAULT_GET(r0, &(0x7f00000001c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000140)={0x24, 0x4, 0x8, 0x401, 0x0, 0x0, {}, [@CTA_TIMEOUT_L3PROTO={0x6}, @CTA_TIMEOUT_L4PROTO={0x5, 0x3, 0x6}]}, 0x24}}, 0x0) 19:51:36 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ff", 0x32, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) [ 252.365580][ T4696] netlink: 'syz-executor.5': attribute type 1 has an invalid length. [ 252.402819][ T4696] netlink: 244 bytes leftover after parsing attributes in process `syz-executor.5'. 19:51:36 executing program 0: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$NFNL_MSG_CTHELPER_GET(r0, &(0x7f00000001c0)={0x0, 0x0, &(0x7f0000000180)={&(0x7f00000004c0)=ANY=[@ANYBLOB="c4000000020201"], 0xc4}}, 0x0) 19:51:36 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) socket$nl_generic(0x10, 0x3, 0x10) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r1, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:36 executing program 5: r0 = bpf$MAP_CREATE(0x0, &(0x7f0000000000)=@base={0x19, 0x4, 0x4, 0x4, 0x0, 0x1}, 0x48) bpf$MAP_GET_NEXT_KEY(0x2, &(0x7f0000000180)={r0, &(0x7f00000001c0)="fc", &(0x7f0000000000)=""/10, 0x2}, 0x20) bpf$MAP_GET_NEXT_KEY(0x4, &(0x7f0000000940)={r0, &(0x7f0000000840), &(0x7f0000000080)=""/52}, 0x20) 19:51:36 executing program 3: r0 = bpf$PROG_LOAD(0x5, &(0x7f0000000200)={0xc, 0xe, &(0x7f0000001280)=ANY=[@ANYBLOB="b702000000000000bfa300000000000007030000fdfdfff67a0af0fff8ffffff79a4f0ff00000000b7060000ffffffff2d6405000000000065040000010000400404000001000004b7050000040000006a0a00fe00000000850000000a000000b70000000000000095000000000000009cc6b3fcd62c061c6238975d43a4505f80e39c9f3c530cf08e467b592f868ee3b0a435df0a0ef5daf176db2a6b2fc25f0000000000002d84aaa3b1d4e984c46ea7e2b347a36f5662403e1b2be4284322a4908a0d411a9872971c7c56f0979bd10b97163c066d0e196bf02f46c7953ab1abdaf9de9ca3c00cb9bf4e418d07fa22f0610a70f2bdf4000200000000b0c2c1254f0963f63223b7b80197aa3161f40000b100000000000000000089e399f6609876b5887437a172ebc02a740694298b79dc194e533583412dff048fc21f28bdd3e26a1a8a0481e9f0da43bb6ca66e2f55a9ff19ffcafe3e64be06000000000000005064caec04a367c24a9fb6a6991ddb737d527d6acb15426415b6e8b14f822e86067a5e991c3b404984dfa2c6e94bd0339454c13ad3c328a182c15dc760a313e3b3ca5d67863c6cdfa71604cdd97bdfdc013393404029e98fa883c71949a34d84030323e3d54fc5b29d27643453ad9211e3550ee5520211d9370175133f260c6882a146880b9387f1beb5418618bc83a3becf9bb57da7ba8b913c685fc604ce905faf32706e0000249a028044ede964362cfb2f30a246c3b2f60000fc4deb91da1368b0960b8d69bd99c64893d44f962524429dc058528e7e541c903869d96989b9a986620cb2c95c83f2a082c52764f49e51188f9418b01b80cd8ae164acdac95318ec8b2c6feacdcf77528e5e58219bc54f6ad5679e7f430e6960ed048c46e1dccca05bfa1d67c83795eae2d31968c055d325a9c794ef88b30c2de4a274878b73c05ffa88b7073be648b12bb1fee58958d6a6f31bfe568215dfbde59dad00008a73b40f09cf018cd496b36050d7fd45e3620c28f76749262e33e16429a6da35ceb1a989de81c3f8b8bc348ef2ac3781b847611fcb0a26acafdd6d9ab05865fcf7c493d8f8cd344a1d479fb0e7113936d5a65a60dbd84a938476adeebab9ff44f531bb81c53f16d80f51b6cc1fbc455a64fd449284f71761092a0302000000000000008a05d36fd9b814b4292745418c92d944763a4bf5e138d810e29a31f08f7dea7762d2d8f7e1d24cabe17ad4135d8872935ce0e6a468fd20fa4461d1d67b234feac6eb4f046f2acc1b0efb4438abddcabb4e4e72a450aab72b589bec83bbb688e659fb426cb43d0ee993516fd4e867232cde69b6ffad447dcd92e0ef8234ff850ec3948dd1fa7afb77d951fe4abf618121b7894c106beb49b71c62df5544ef221973432ccc7e62b151eb898a01010a7ec5acd0a5dcb2de443880c8a682515d1da9a3048744acb44384d1591df789883c0560495cb0cb32283529926d25e5c7f4815237c3aa356217738898a11f8ad6a4f68db664e70b112ab8a8c93c2247e927fb6f256830dab3671f00500d36a17790bab7d0e89e6c15314f2b963bfc867953476b0505c7d728326d666f39e82cfcf7e7a85df288d75df24d5e4d429c349923f9a4fb882310391dd58b4cbd8def239a227724d39c3e6c40e20e07e68a22888a5c3941b7a765b92bcb37f302487bcbd93ccf3a104009ff34dd61facca1a04eae963e25516a114573779b24a349dfb2e80f1f345c6d96493ffc2a18478b53f3aab2ea59c523f0678e1a57d0eb042d911548ff612002ddb2d54d42fbdde42b56887003d27468225b2594a05044baf314113e889468cf13dd92aa0d7744db6b56557a5acad95cb9a69d4d6ad4935bb9d6d3ba7eb534b00d0fea62f0a61535dfc4da06e7f8695be614c557daed7eb0120516e1351fed7d8ffa31c8f4be364185469cfc5f25c90d71bce745dd2d58a30e0844f12c4cbbdd7a08465e665c2620d78673dfb68a8a3534f1a3eac9ee9f18a18106ba3d7c7a62330f5c0e98cb7982dd7bad02c8dba9c13894185bfc4bd2520b6e2043fcb3fc5eb55ecf9e6e363ea2ac40a14a6faa21b0f5a0fdb6487c51ef12427b30255bc4f8813be88beeb5aa6f6a4151cfb90644e50630ed474df7d1635afcb1ea3f6c47b5acbba2ce5099a9387c7acb9bbd1da497611ceda25049e48ddacccbb58dddaf9a3510d65383829a51e0f41e661fa80ca1eaaa6cf0824305ba4ec80400c50ffe83ccb0e6fef321190c58aca8c7c8c6d26ff5cbc2cadabda8e1219e04f8dacffd33db1a0a2e9ec9eb978d80a12d0b5327bfd053000000000000000000640d02a14708504412fa93d335c5addc191b4a21c7b340d0536b07024fb75d5eb5f3f9f4992c18f62886169c0007f549324321cd5466359f40295fa73284c4b607669bae75bd68c3e2b770c324a0ab26b6065d7e95a7bd80052db57506ec7484c66630ca8173fea3f06ed1dfc70a8b90418e2dc76137e0f68cb1c8a992862402fe81b0d1a54e05028c33d94d463f00d22e7547184b8d3611e45dff02144387f342ef9bd049bf65258a7bc094a6965e24611c077e1ca0891362a9d68f3ec7610c0449acf18459500f024f9b75885cd79ba32776e4a511c8a4ad922b00000000000000a9241220dfbf7d02ef507ec6fc7f5d37d835f7bed71283c431b9d8cbd9003972bf1dc6a71bedad8e19efc302d2a7a7e555d5f3176af69920471e6e5bcb8966c813c132d65e2b99d3015e06b372e1aefaae14ee3fbc6349af362c19b59c214de66912d1a9a98d92dc197a51c29443de62caca334c46d110e50896fe50d0477771d387f40c8ef05750ca651e6e69a237dcf78666d6ab2bda1f853525494e4efdd93be38bb5fc671f8794002d7a951fd336aaf4ed1166cb459df70218c571ba1c40b028234505e5477e268326af8812c2fbb8785a223fce0a0601c2a3b58bea716216eadabcabe86ab46e4cd3d58ef7ce8d3c4b0bc5952e81dfc0a490d8568db6d70c000000000000ae0053d2f91f49e977cdc1962dbc28c29471a72199862bc8fc6e211d13d8579cab4fba94b2b613c9b8148d05e0690a4c4ab35aabc45801d2b82081e62b23a01b58b1ffb624f63ad2246796796160cd36823743646dd0a904e10505830b6f129b7012fc3b09fa104aeaedac52f1becb7c6eff38823b75fb2ef516ec4ee6375d4a955851fe7651dcac6272781ac3cb20a2535b504502d744f2099674e58f2c117c980cf0d041c8ea5c4f166bab4aa5ed200ef4dcff96f7c9c1ab8c22db0f439b23b04fcd64c20bfb64950a2343dac0c1101aabe941ffc3a0e01976ca1cf43e12d7d72f3faa4979faabd62e2dc54a980eae4d5eba1144ef1190ea6cda641d9416c4560cab2d819ebc7b04c70f141754c3ffd79da363fe8859afee531710caf1b2bf5a51142f4755cbb700c28083525a9093790096cb93417f1216000000000000000000000000000000ceb244e4cae2b65a76d41793aabccd3d0c50486eae6793e1f54814a8ee2779c14ca96759266200229b58c12279817869e831cade25eed43c0b9ee4fd209b5b919a42f676b9d7236fc8c2b840dc2297b7dd5040899d0676291407ce9ac8101dd3512f5b3ac8cf8179d1749de324000030d0f942ec4604c28d5c287d1435956784002a53eb5fe535ead8857acf0166dbd9f30a9b9c8a9b9faf1356faf269cded935b07863e4fdad8aab529734cf507f8b7ae95bc106054d074ad4e89aefe523ab38ec3d3f71b44b753d56dedf6230b5eb3c4dbd75bc18b8510e76ba8ba04515622032d8cc8cdbd3c0cf3b0a7dbd80254cf8a2c7b24d20c42f8f92ebc789c975f8d58f9fa0ba9cc65ccb738d0384dd53dfe8f2a01ce1e56002811bb7ba823e3e5e17a467be8d8ad3ef3d82271cfb764c9a0bfe0c03b072dcd0aa1f37c0e0264d0c7"], &(0x7f0000000340)='GPL\x00'}, 0x48) bpf$BPF_PROG_TEST_RUN(0xa, &(0x7f0000000780)={r0, 0x18000000000002a0, 0xcc0, 0x0, &(0x7f0000000280)="3f0000000400cef08330ee13c573a6", 0x0, 0x3f00, 0x0, 0x0, 0x0, 0x0, 0x0}, 0x48) bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000018c00)={0x0, 0x3, 0x0, 0x0, 0x4, 0xb0, &(0x7f0000000480)=""/176, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_PROG_TEST_RUN(0xa, 0x0, 0x0) 19:51:36 executing program 4: r0 = socket$inet6_udp(0xa, 0x2, 0x0) ioctl$sock_ipv6_tunnel_SIOCDELTUNNEL(r0, 0x89f2, &(0x7f0000000100)={'syztnl0\x00', 0x0}) ioctl$sock_ipv6_tunnel_SIOCADDTUNNEL(r0, 0x89f1, &(0x7f00000000c0)={'ip6tnl0\x00', &(0x7f0000000200)={'syztnl0\x00', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @ipv4={'\x00', '\xff\xff', @initdev={0xac, 0x1e, 0x0, 0x0}}, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02'}}) 19:51:36 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ff", 0x32, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:36 executing program 5: bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000240)={0x11, 0x3, &(0x7f0000000100)=ANY=[@ANYBLOB], 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, 0x0, 0x0) r0 = syz_init_net_socket$nl_rdma(0x10, 0x3, 0x10) sendmsg$netlink(r0, &(0x7f0000001ac0)={0x0, 0x0, &(0x7f0000000040)=[{&(0x7f0000000280)={0x114, 0x1a, 0x1, 0x0, 0x0, "", [@nested={0x102, 0x0, 0x0, 0x1, [@typed={0xc, 0x1, 0x0, 0x0, @u64}, @generic="c898d63bab6b91", @generic="50bb2d6f67d29d6fabadb107d0def49c88ea04abde1d5e8d3fb22a1b5046778bdafefc46b0449ade68bf84b36ec72dd71265fc2e882348c26c2126237dd5b37f5ae655b1086cda40e00aec58754734be31d750351dc076eb47d96219c08c029d1608a487f26fbe816b89f7cb81bff81a8b7a82565856555ee923c65973deb0a99b962bc0fe94a3fcae3697bd7b85b3a682167c43dbf137115a40ebddcad74875cf0d972df9e99f07976773f4d98fe3fa370d47eb640dc5061dc35817c8a66c29be82fdc2f4393c05a007d12b505a84dfdb98d568175b62421d726d1e5331e1ddfd4d770b57e091511131"]}]}, 0x114}], 0x1}, 0x0) [ 252.627654][ T4717] netlink: 176 bytes leftover after parsing attributes in process `syz-executor.0'. 19:51:36 executing program 0: r0 = socket(0x10, 0x3, 0x0) sendto$inet6(r0, &(0x7f0000000340)="7800000018002507b9409b14ffff00000204be0202050605020204094300030015000000fac8388827a685a168d0bf46d32345653600648dcaaf6c26c291214549935ade4a460c89b6ec0cff3959547f509058ba86c902000000004a32000400160012000a005dfd211f7c1057c388244d62ac00000000e0", 0x78, 0x0, 0x0, 0x0) 19:51:36 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$ethtool(&(0x7f00000003c0), 0xffffffffffffffff) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r1, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) [ 252.726909][ T4722] netlink: 'syz-executor.5': attribute type 1 has an invalid length. 19:51:36 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ff", 0x3a, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:36 executing program 3: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$IPSET_CMD_CREATE(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000140)={0x54, 0x2, 0x6, 0x301, 0x0, 0x0, {}, [@IPSET_ATTR_DATA={0x4}, @IPSET_ATTR_REVISION={0x5}, @IPSET_ATTR_PROTOCOL={0x5}, @IPSET_ATTR_SETNAME={0x9, 0x2, 'syz0\x00'}, @IPSET_ATTR_FAMILY={0x5}, @IPSET_ATTR_TYPENAME={0x16, 0x3, 'hash:net,port,net\x00'}]}, 0x54}}, 0x0) [ 252.786021][ T4722] netlink: 244 bytes leftover after parsing attributes in process `syz-executor.5'. 19:51:36 executing program 5: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) r1 = socket$inet_tcp(0x2, 0x1, 0x0) ioctl$ifreq_SIOCGIFINDEX_team(r1, 0x8933, &(0x7f0000000140)={'team0\x00', 0x0}) bpf$PROG_LOAD_XDP(0x5, &(0x7f0000000280)={0x6, 0x3, &(0x7f00000000c0)=@framed, &(0x7f0000000040)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0xc, '\x00', r2, 0x25, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r0, 0x89f1, &(0x7f0000000480)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r2, 0x0, 0x0, 0x1, 0x0, {{0x5, 0x4, 0x0, 0x10, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, @loopback, @private}}}}) [ 252.828111][ T4728] netlink: 'syz-executor.0': attribute type 3 has an invalid length. 19:51:36 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r0, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f00000000c0)=ANY=[@ANYBLOB="480000001e00090100000000000000000000000034000100300008000900080076"], 0x48}}, 0x0) 19:51:36 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r1, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:36 executing program 0: unshare(0x40000400) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x3, 0x8031, 0xffffffffffffffff, 0x0) r0 = socket$inet_udp(0x2, 0x2, 0x0) r1 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r1, &(0x7f0000000000)={0x2, 0x4e20, @multicast1}, 0x10) sendto$inet(r1, 0x0, 0x0, 0x20020080, &(0x7f0000000080)={0x2, 0x4e20}, 0x10) r2 = socket(0x10, 0x3, 0x0) socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000140)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$sock_SIOCGIFINDEX(r3, 0x8933, &(0x7f0000000000)={'lo\x00', 0x0}) sendmsg$nl_route_sched(r2, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000680)=ANY=[@ANYBLOB="4c00000024000b0f000000000000000060000000", @ANYRES32=r4, @ANYBLOB="00000000ffffffff000000000a0001006e6574656d0000101c0002000000dd"], 0x4c}}, 0x0) sendto$inet(r0, &(0x7f00000000c0)='!', 0x1, 0x0, 0x0, 0x0) 19:51:36 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ff", 0x3a, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) [ 253.038252][ T4739] netlink: 'syz-executor.3': attribute type 8 has an invalid length. [ 253.072084][ T4739] netlink: 32 bytes leftover after parsing attributes in process `syz-executor.3'. 19:51:36 executing program 4: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r0, 0x89f1, &(0x7f0000000480)={'tunl0\x00', &(0x7f0000000500)={'tunl0\x00', 0x0, 0x0, 0x0, 0x0, 0x0, {{0x5, 0x4, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, @loopback, @private}}}}) 19:51:36 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r1, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:36 executing program 5: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$IPCTNL_MSG_CT_DELETE(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f0000000180)={&(0x7f0000000100)={0x1c, 0x2, 0x1, 0x801, 0x0, 0x0, {}, [@CTA_MARK={0x8}]}, 0x1c}}, 0x0) 19:51:36 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ff", 0x3a, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:36 executing program 3: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$IPSET_CMD_CREATE(r0, &(0x7f0000000140)={0x0, 0x0, &(0x7f0000000100)={&(0x7f0000000040)={0x44, 0x2, 0x6, 0x201, 0x0, 0x0, {}, [@IPSET_ATTR_PROTOCOL={0x5}, @IPSET_ATTR_TYPENAME={0xc, 0x3, 'hash:ip\x00'}, @IPSET_ATTR_FAMILY={0x5, 0x5, 0x2}, @IPSET_ATTR_SETNAME={0x9, 0x2, 'syz2\x00'}, @IPSET_ATTR_REVISION={0x5}]}, 0x44}}, 0x0) 19:51:36 executing program 3: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r0, 0x89f1, &(0x7f0000000480)={'tunl0\x00', &(0x7f0000000500)={'syztnl0\x00', 0x0, 0x0, 0x0, 0x0, 0x0, {{0x5, 0x4, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, @loopback, @dev={0xac, 0x14, 0x14, 0x21}}}}}) 19:51:36 executing program 5: r0 = socket(0x2, 0x80805, 0x0) getsockopt$inet_sctp6_SCTP_SOCKOPT_CONNECTX3(r0, 0x84, 0x6f, &(0x7f00000000c0)={0x0, 0x1c, &(0x7f0000000340)=[@in6={0xa, 0x0, 0x0, @ipv4={'\x00', '\xff\xff', @initdev={0xac, 0x1e, 0x0, 0x0}}}]}, &(0x7f0000000100)=0x10) getsockopt$inet_sctp6_SCTP_PRIMARY_ADDR(0xffffffffffffffff, 0x84, 0x6, 0x0, 0x0) 19:51:36 executing program 4: socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000080)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$sock_SIOCGIFINDEX(r0, 0x8933, &(0x7f0000000000)={'lo\x00', 0x0}) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000280)={&(0x7f00000004c0)=@newtfilter={0x30, 0x2c, 0xd23, 0x0, 0x0, {0x0, 0x0, 0x0, r1, {}, {}, {0x1}}, [@filter_kind_options=@f_u32={{0x8}, {0x4}}]}, 0x30}}, 0x0) 19:51:36 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(0x0, 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r1, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:36 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900", 0x3e, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:37 executing program 0: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r0, 0x89f1, &(0x7f0000000480)={'tunl0\x00', &(0x7f0000000500)={'syztnl2\x00', 0x0, 0x0, 0x0, 0x0, 0x0, {{0x5, 0x4, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, @local, @private}}}}) 19:51:37 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(0x0, 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r1, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:37 executing program 5: unshare(0x40000400) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0x3, 0x8031, 0xffffffffffffffff, 0x0) r0 = socket$inet_udp(0x2, 0x2, 0x0) r1 = socket$inet_tcp(0x2, 0x1, 0x0) bind$inet(r1, &(0x7f0000000000)={0x2, 0x4e20, @multicast1}, 0x10) sendto$inet(r1, 0x0, 0x0, 0x20020080, &(0x7f0000000080)={0x2, 0x4e20}, 0x10) r2 = socket(0x10, 0x3, 0x0) socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000140)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$sock_SIOCGIFINDEX(r3, 0x8933, &(0x7f0000000000)={'lo\x00', 0x0}) setsockopt$inet_tcp_TCP_CONGESTION(0xffffffffffffffff, 0x6, 0xd, 0x0, 0x0) sendmsg$nl_route_sched(r2, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000680)=ANY=[@ANYBLOB="4c00000024000b0f000000000000000060000000", @ANYRES32=r4, @ANYBLOB="00000000ffffffff000000000a0001006e6574656d0000101c0002000000dd00000000fa10b67ea30128eab2"], 0x4c}}, 0x0) sendto$inet(r0, &(0x7f00000000c0)='!', 0x1, 0x0, 0x0, 0x0) 19:51:37 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r0, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f00000000c0)=ANY=[@ANYBLOB="480000001e00090100000000000000020000000034000100300008000900090076"], 0x48}}, 0x0) 19:51:37 executing program 3: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) ioctl$sock_SIOCSIFVLAN_GET_VLAN_INGRESS_PRIORITY_CMD(r0, 0x8983, &(0x7f0000000000)) pipe(&(0x7f0000000200)) 19:51:37 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900", 0x3e, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:37 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(0x0, 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r1, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:37 executing program 3: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) ioctl$sock_SIOCSIFVLAN_GET_VLAN_INGRESS_PRIORITY_CMD(r0, 0x8983, &(0x7f0000000000)) pipe(&(0x7f0000000200)) [ 253.756725][ T4771] netlink: 'syz-executor.4': attribute type 9 has an invalid length. [ 253.765159][ T4771] netlink: 32 bytes leftover after parsing attributes in process `syz-executor.4'. 19:51:37 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900", 0x3e, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:37 executing program 4: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$IPSET_CMD_CREATE(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000140)={0x28, 0xb, 0x6, 0x301, 0x0, 0x0, {}, [@IPSET_ATTR_PROTOCOL={0x5}, @IPSET_ATTR_SETNAME={0x9, 0x2, 'syz0\x00'}]}, 0x28}}, 0x0) 19:51:37 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) r0 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(0xffffffffffffffff, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r0, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:37 executing program 3: r0 = socket$inet_udp(0x2, 0x2, 0x0) setsockopt$inet_sctp6_SCTP_SOCKOPT_CONNECTX(0xffffffffffffffff, 0x84, 0x6e, 0x0, 0x0) socket$inet(0x2, 0x0, 0x0) setsockopt$sock_int(0xffffffffffffffff, 0x1, 0xc, 0x0, 0x0) sendto$inet(0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x0) bind$inet(r0, &(0x7f0000000100)={0x2, 0x0, @local}, 0x10) setsockopt$sock_int(r0, 0x1, 0x6, &(0x7f0000000140)=0x32, 0x4) bind$inet(0xffffffffffffffff, 0x0, 0x0) connect$inet(r0, &(0x7f0000000280)={0x2, 0x0, @broadcast}, 0x10) sendmmsg$inet(r0, &(0x7f0000002080)=[{{0x0, 0x0, 0x0, 0x0, &(0x7f0000000200)=[@ip_retopts={{0x10}}, @ip_pktinfo={{0x1c, 0x0, 0x8, {0x0, @local, @empty}}}], 0x30}}], 0x300, 0x0) 19:51:37 executing program 0: r0 = socket(0x2c, 0x3, 0x0) ioctl$sock_ipv4_tunnel_SIOCGETTUNNEL(r0, 0x89f0, &(0x7f00000000c0)={'sit0\x00', &(0x7f0000000040)={'syztnl2\x00', 0x0, 0x0, 0x0, 0x0, 0x0, {{0x5, 0x4, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, @initdev={0xac, 0x1e, 0x0, 0x0}, @private}}}}) 19:51:37 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d291", 0x40, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:38 executing program 5: socketpair$nbd(0x1, 0x1, 0x0, &(0x7f0000000000)={0xffffffffffffffff}) sendmsg$inet(r0, &(0x7f0000001540)={0x0, 0x0, &(0x7f00000011c0)=[{&(0x7f0000001580)='F', 0x1}], 0x1}, 0x0) 19:51:38 executing program 4: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$IPSET_CMD_CREATE(r0, &(0x7f0000000200)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000140)={0x28, 0xb, 0x6, 0x301, 0x0, 0x0, {}, [@IPSET_ATTR_PROTOCOL={0x5}, @IPSET_ATTR_SETNAME={0x9, 0x2, 'syz0\x00'}]}, 0x28}}, 0x0) 19:51:38 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) r0 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(0xffffffffffffffff, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r0, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:38 executing program 0: r0 = socket$inet6_udp(0xa, 0x2, 0x0) ioctl$sock_ipv6_tunnel_SIOCGETTUNNEL(r0, 0x89f0, &(0x7f0000000100)={'syztnl1\x00', &(0x7f0000000080)={'ip6tnl0\x00', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @private0, @mcast2}}) 19:51:38 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d291", 0x40, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:38 executing program 3: r0 = socket$inet_udp(0x2, 0x2, 0x0) setsockopt$inet_sctp6_SCTP_SOCKOPT_CONNECTX(0xffffffffffffffff, 0x84, 0x6e, 0x0, 0x0) socket$inet(0x2, 0x0, 0x0) setsockopt$sock_int(0xffffffffffffffff, 0x1, 0xc, 0x0, 0x0) sendto$inet(0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x0) bind$inet(r0, &(0x7f0000000100)={0x2, 0x0, @local}, 0x10) setsockopt$sock_int(r0, 0x1, 0x6, &(0x7f0000000140)=0x32, 0x4) bind$inet(0xffffffffffffffff, 0x0, 0x0) connect$inet(r0, &(0x7f0000000280)={0x2, 0x0, @broadcast}, 0x10) sendmmsg$inet(r0, &(0x7f0000002080)=[{{0x0, 0x0, 0x0, 0x0, &(0x7f0000000200)=[@ip_retopts={{0x10}}, @ip_pktinfo={{0x1c, 0x0, 0x8, {0x0, @local, @empty}}}], 0x30}}], 0x300, 0x0) 19:51:38 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="180100001c0000000000000000000004850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={0x0, r0}, 0x10) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x4c, 0x1e, 0x109, 0x0, 0x0, {}, [{0x38, 0x1, [@m_vlan={0x34, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x6, 0x6, 'z\v'}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x4c}}, 0x0) r3 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r3, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r3, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r4}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x48, 0x1e, 0x109, 0x0, 0x0, {}, [{0x34, 0x1, [@m_vlan={0x30, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x4}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x48}}, 0x0) r6 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r6, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r6, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r7}) sendmsg$nl_route_sched(r5, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=@delqdisc={0x2c, 0x25, 0x4, 0x70bd2b, 0x0, {0x0, 0x0, 0x0, r7, {0xc, 0x4}, {0x5, 0xa}, {0xe, 0xffe0}}, [@TCA_RATE={0x6, 0x5, {0xb6, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) sendmsg$MPTCP_PM_CMD_FLUSH_ADDRS(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)={0x74, 0x0, 0x800, 0x70bd2a, 0x25dfdbfb, {}, [@MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x3}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0x2}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8, 0x7, r4}, @MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0x80}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_ADDR={0x18, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8}]}, 0x74}, 0x1, 0x0, 0x0, 0x40}, 0x20004015) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f0000000040)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r4, 0x7800, 0x40, 0x4, 0x4, {{0x5, 0x4, 0x2, 0x1, 0x14, 0x66, 0x0, 0xff, 0x4, 0x0, @private=0xa010100, @broadcast}}}}) r9 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r9, r10, 0x4}, 0x10) bpf$BPF_GET_BTF_INFO(0xf, &(0x7f0000000700)={0xffffffffffffffff, 0x20, &(0x7f00000006c0)={&(0x7f0000000580)=""/206, 0xce, 0x0, &(0x7f0000000680)=""/58, 0x3a}}, 0x10) r12 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000d00)={0x18, 0xa, &(0x7f0000000880)=@raw=[@exit, @exit, @initr0={0x18, 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0, 0x0, 0x1}, @ldst={0x2, 0x0, 0x0, 0x4, 0x2, 0xffffffffffffffe0}, @cb_func={0x18, 0x1, 0x4, 0x0, 0x8}, @alu={0x7, 0x0, 0x6, 0x5, 0x9, 0x100, 0x10}, @cb_func={0x18, 0x1, 0x4, 0x0, 0xfffffffffffffff9}], &(0x7f0000000900)='GPL\x00', 0x7fffffff, 0x20, &(0x7f0000000940)=""/32, 0x0, 0x10, '\x00', r8, 0x1f, 0xffffffffffffffff, 0x8, &(0x7f0000000a00)={0x5, 0x2}, 0x8, 0x10, &(0x7f0000000a40)={0x5, 0x4, 0xcf, 0x4}, 0x10, 0xffffffffffffffff, 0xffffffffffffffff, 0x0, &(0x7f0000000cc0)=[0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r12, r13, 0x4}, 0x10) r14 = bpf$MAP_CREATE(0x0, &(0x7f0000000740)=@base={0xf, 0x6, 0xffffffff, 0x94, 0x50, 0xffffffffffffffff, 0x6, '\x00', r8, 0xffffffffffffffff, 0x0, 0x1, 0x4}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000800)={0x0, 0xf, &(0x7f00000003c0)=@raw=[@map_val={0x18, 0xa, 0x2, 0x0, r9, 0x0, 0x0, 0x0, 0x81}, @exit, @func={0x85, 0x0, 0x1, 0x0, 0x7}, @cb_func={0x18, 0x0, 0x4, 0x0, 0x6}, @ldst={0x0, 0x3, 0x2, 0x5, 0x3, 0x20, 0xfffffffffffffff0}, @map_val={0x18, 0x2, 0x2, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x7ff}, @btf_id={0x18, 0x1, 0x3, 0x0, 0x1}, @ldst={0x2, 0x2, 0x0, 0xb, 0xb, 0x100, 0xfffffffffffffff0}, @call={0x85, 0x0, 0x0, 0x7e}, @map_idx_val={0x18, 0x6, 0x6, 0x0, 0x3, 0x0, 0x0, 0x0, 0x7f}], &(0x7f0000000440)='syzkaller\x00', 0x0, 0x63, &(0x7f0000000480)=""/99, 0x41000, 0x10, '\x00', r7, 0x28, 0xffffffffffffffff, 0x8, &(0x7f0000000500)={0x0, 0x4}, 0x8, 0x10, &(0x7f0000000540)={0x5, 0x10, 0x0, 0xffffffff}, 0x10, r11, 0xffffffffffffffff, 0x0, &(0x7f00000007c0)=[0x1, r12, r14, 0x1, 0xffffffffffffffff]}, 0x80) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x13, 0x3, &(0x7f0000000080)=@raw=[@btf_id={0x18, 0x9, 0x3, 0x0, 0x4}, @func={0x85, 0x0, 0x1, 0x0, 0xfffffffffffffffb}], &(0x7f00000000c0)='syzkaller\x00', 0x2, 0x5d, &(0x7f0000000300)=""/93, 0x1e00, 0x8, '\x00', 0x0, 0xe, 0xffffffffffffffff, 0x8, &(0x7f00000001c0)={0x1, 0x2}, 0x8, 0x10, &(0x7f0000000280)={0x0, 0x0, 0x0, 0x2}, 0x10, r11, r0, 0x0, &(0x7f0000000380)=[0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) r15 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r15, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000180)=@newqdisc={0x24}, 0x24}}, 0x0) 19:51:38 executing program 1: socket$nl_generic(0x10, 0x3, 0x10) r0 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(0xffffffffffffffff, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r0, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:38 executing program 5: r0 = getpid() pipe(&(0x7f0000000200)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_TASK_FD_QUERY(0x14, &(0x7f00000000c0)={r0, r1, 0x0, 0x0, 0x0}, 0x30) 19:51:38 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d291", 0x40, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:38 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, 0x0, 0x0) [ 254.660857][ T4813] netlink: 'syz-executor.4': attribute type 9 has an invalid length. 19:51:38 executing program 5: bpf$BPF_BTF_LOAD(0x12, &(0x7f0000000040)={&(0x7f0000000100)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0xc, 0xc, 0x2, [@struct]}}, &(0x7f0000000180)=""/205, 0x26, 0xcd, 0x1}, 0x20) [ 254.711420][ T4813] netlink: 'syz-executor.4': attribute type 7 has an invalid length. [ 254.761845][ T4813] netlink: 'syz-executor.4': attribute type 8 has an invalid length. 19:51:38 executing program 5: r0 = socket(0x2c, 0x3, 0x0) bind$alg(r0, &(0x7f00000000c0)={0x26, 'aead\x00', 0x0, 0x0, 'echainiv(seqiv(gcm-aes-ce))\x00'}, 0x58) 19:51:38 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, 0x0, 0x0) [ 254.830815][ T4813] netlink: 'syz-executor.4': attribute type 9 has an invalid length. 19:51:38 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d29161", 0x41, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) [ 254.911093][ T4813] netlink: 'syz-executor.4': attribute type 6 has an invalid length. [ 254.958002][ T1241] ieee802154 phy0 wpan0: encryption failed: -22 [ 254.964433][ T1241] ieee802154 phy1 wpan1: encryption failed: -22 19:51:38 executing program 0: bpf$BPF_BTF_LOAD(0x12, &(0x7f0000000480)={&(0x7f00000006c0)=ANY=[@ANYBLOB="9feb01001800000000000000d0000000d000000009000000000000010000000e"], &(0x7f00000003c0)=""/191, 0xf1, 0xbf, 0x1}, 0x20) 19:51:38 executing program 5: r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000180)='cpuset.effective_mems\x00', 0x275a, 0x0) write$FUSE_INTERRUPT(r0, &(0x7f0000000080)={0x10}, 0x10) mmap(&(0x7f0000000000/0x3000)=nil, 0x3000, 0x7fffff, 0x40000000011, r0, 0x0) openat2$dir(0xffffffffffffff9c, &(0x7f0000000080)='./file0\x00', &(0x7f00000000c0), 0xffa2) 19:51:38 executing program 3: r0 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000080), 0x2, 0x0) ioctl$int_in(r0, 0x40000000af01, 0x0) r1 = socket$packet(0x11, 0x3, 0x300) ioctl$VHOST_SET_MEM_TABLE(r0, 0x4008af03, &(0x7f00000007c0)=ANY=[]) ioctl$VHOST_SET_VRING_ADDR(r0, 0x4028af11, &(0x7f0000000140)={0x0, 0x0, 0x0, &(0x7f0000000900)=""/76, 0x0}) ioctl$VHOST_NET_SET_BACKEND(r0, 0x4008af30, &(0x7f0000f1dff8)={0x0, r1}) ioctl$VHOST_RESET_OWNER(r0, 0xaf02, 0x0) 19:51:38 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, 0x0, 0x0) 19:51:38 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d29161", 0x41, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:38 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="180100001c0000000000000000000004850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={0x0, r0}, 0x10) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x4c, 0x1e, 0x109, 0x0, 0x0, {}, [{0x38, 0x1, [@m_vlan={0x34, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x6, 0x6, 'z\v'}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x4c}}, 0x0) r3 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r3, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r3, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r4}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x48, 0x1e, 0x109, 0x0, 0x0, {}, [{0x34, 0x1, [@m_vlan={0x30, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x4}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x48}}, 0x0) r6 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r6, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r6, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r7}) sendmsg$nl_route_sched(r5, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=@delqdisc={0x2c, 0x25, 0x4, 0x70bd2b, 0x0, {0x0, 0x0, 0x0, r7, {0xc, 0x4}, {0x5, 0xa}, {0xe, 0xffe0}}, [@TCA_RATE={0x6, 0x5, {0xb6, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) sendmsg$MPTCP_PM_CMD_FLUSH_ADDRS(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)={0x74, 0x0, 0x800, 0x70bd2a, 0x25dfdbfb, {}, [@MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x3}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0x2}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8, 0x7, r4}, @MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0x80}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_ADDR={0x18, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8}]}, 0x74}, 0x1, 0x0, 0x0, 0x40}, 0x20004015) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f0000000040)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r4, 0x7800, 0x40, 0x4, 0x4, {{0x5, 0x4, 0x2, 0x1, 0x14, 0x66, 0x0, 0xff, 0x4, 0x0, @private=0xa010100, @broadcast}}}}) r9 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r9, r10, 0x4}, 0x10) bpf$BPF_GET_BTF_INFO(0xf, &(0x7f0000000700)={0xffffffffffffffff, 0x20, &(0x7f00000006c0)={&(0x7f0000000580)=""/206, 0xce, 0x0, &(0x7f0000000680)=""/58, 0x3a}}, 0x10) r12 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000d00)={0x18, 0xa, &(0x7f0000000880)=@raw=[@exit, @exit, @initr0={0x18, 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0, 0x0, 0x1}, @ldst={0x2, 0x0, 0x0, 0x4, 0x2, 0xffffffffffffffe0}, @cb_func={0x18, 0x1, 0x4, 0x0, 0x8}, @alu={0x7, 0x0, 0x6, 0x5, 0x9, 0x100, 0x10}, @cb_func={0x18, 0x1, 0x4, 0x0, 0xfffffffffffffff9}], &(0x7f0000000900)='GPL\x00', 0x7fffffff, 0x20, &(0x7f0000000940)=""/32, 0x0, 0x10, '\x00', r8, 0x1f, 0xffffffffffffffff, 0x8, &(0x7f0000000a00)={0x5, 0x2}, 0x8, 0x10, &(0x7f0000000a40)={0x5, 0x4, 0xcf, 0x4}, 0x10, 0xffffffffffffffff, 0xffffffffffffffff, 0x0, &(0x7f0000000cc0)=[0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r12, r13, 0x4}, 0x10) r14 = bpf$MAP_CREATE(0x0, &(0x7f0000000740)=@base={0xf, 0x6, 0xffffffff, 0x94, 0x50, 0xffffffffffffffff, 0x6, '\x00', r8, 0xffffffffffffffff, 0x0, 0x1, 0x4}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000800)={0x0, 0xf, &(0x7f00000003c0)=@raw=[@map_val={0x18, 0xa, 0x2, 0x0, r9, 0x0, 0x0, 0x0, 0x81}, @exit, @func={0x85, 0x0, 0x1, 0x0, 0x7}, @cb_func={0x18, 0x0, 0x4, 0x0, 0x6}, @ldst={0x0, 0x3, 0x2, 0x5, 0x3, 0x20, 0xfffffffffffffff0}, @map_val={0x18, 0x2, 0x2, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x7ff}, @btf_id={0x18, 0x1, 0x3, 0x0, 0x1}, @ldst={0x2, 0x2, 0x0, 0xb, 0xb, 0x100, 0xfffffffffffffff0}, @call={0x85, 0x0, 0x0, 0x7e}, @map_idx_val={0x18, 0x6, 0x6, 0x0, 0x3, 0x0, 0x0, 0x0, 0x7f}], &(0x7f0000000440)='syzkaller\x00', 0x0, 0x63, &(0x7f0000000480)=""/99, 0x41000, 0x10, '\x00', r7, 0x28, 0xffffffffffffffff, 0x8, &(0x7f0000000500)={0x0, 0x4}, 0x8, 0x10, &(0x7f0000000540)={0x5, 0x10, 0x0, 0xffffffff}, 0x10, r11, 0xffffffffffffffff, 0x0, &(0x7f00000007c0)=[0x1, r12, r14, 0x1, 0xffffffffffffffff]}, 0x80) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x13, 0x3, &(0x7f0000000080)=@raw=[@btf_id={0x18, 0x9, 0x3, 0x0, 0x4}, @func={0x85, 0x0, 0x1, 0x0, 0xfffffffffffffffb}], &(0x7f00000000c0)='syzkaller\x00', 0x2, 0x5d, &(0x7f0000000300)=""/93, 0x1e00, 0x8, '\x00', 0x0, 0xe, 0xffffffffffffffff, 0x8, &(0x7f00000001c0)={0x1, 0x2}, 0x8, 0x10, &(0x7f0000000280)={0x0, 0x0, 0x0, 0x2}, 0x10, r11, r0, 0x0, &(0x7f0000000380)=[0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) r15 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r15, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000180)=@newqdisc={0x24}, 0x24}}, 0x0) 19:51:38 executing program 5: openat$ptmx(0xffffffffffffff9c, &(0x7f0000000200), 0x18841, 0x0) 19:51:38 executing program 0: r0 = socket(0x10, 0x803, 0x0) syz_genetlink_get_family_id$nl80211(&(0x7f00000003c0), r0) getsockname$packet(r0, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)=0xa) sendmsg$nl_route(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000280)=ANY=[@ANYBLOB="480000001000050700"/19, @ANYRES32=r1], 0x48}}, 0x0) 19:51:38 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, 0x0}, 0x0) 19:51:39 executing program 5: bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x5, &(0x7f0000000180)=@framed={{}, [@map_fd={0x18, 0x0, 0x1, 0x0, 0xffffffffffffffff, 0x0, 0x2}]}, &(0x7f0000000040)='GPL\x00', 0x5, 0xde, &(0x7f0000000080)=""/222, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 19:51:39 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="180100001c0000000000000000000004850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={0x0, r0}, 0x10) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x4c, 0x1e, 0x109, 0x0, 0x0, {}, [{0x38, 0x1, [@m_vlan={0x34, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x6, 0x6, 'z\v'}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x4c}}, 0x0) r3 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r3, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r3, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r4}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x48, 0x1e, 0x109, 0x0, 0x0, {}, [{0x34, 0x1, [@m_vlan={0x30, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x4}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x48}}, 0x0) r6 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r6, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r6, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r7}) sendmsg$nl_route_sched(r5, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=@delqdisc={0x2c, 0x25, 0x4, 0x70bd2b, 0x0, {0x0, 0x0, 0x0, r7, {0xc, 0x4}, {0x5, 0xa}, {0xe, 0xffe0}}, [@TCA_RATE={0x6, 0x5, {0xb6, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) sendmsg$MPTCP_PM_CMD_FLUSH_ADDRS(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)={0x74, 0x0, 0x800, 0x70bd2a, 0x25dfdbfb, {}, [@MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x3}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0x2}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8, 0x7, r4}, @MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0x80}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_ADDR={0x18, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8}]}, 0x74}, 0x1, 0x0, 0x0, 0x40}, 0x20004015) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f0000000040)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r4, 0x7800, 0x40, 0x4, 0x4, {{0x5, 0x4, 0x2, 0x1, 0x14, 0x66, 0x0, 0xff, 0x4, 0x0, @private=0xa010100, @broadcast}}}}) r9 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r9, r10, 0x4}, 0x10) bpf$BPF_GET_BTF_INFO(0xf, &(0x7f0000000700)={0xffffffffffffffff, 0x20, &(0x7f00000006c0)={&(0x7f0000000580)=""/206, 0xce, 0x0, &(0x7f0000000680)=""/58, 0x3a}}, 0x10) r12 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000d00)={0x18, 0xa, &(0x7f0000000880)=@raw=[@exit, @exit, @initr0={0x18, 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0, 0x0, 0x1}, @ldst={0x2, 0x0, 0x0, 0x4, 0x2, 0xffffffffffffffe0}, @cb_func={0x18, 0x1, 0x4, 0x0, 0x8}, @alu={0x7, 0x0, 0x6, 0x5, 0x9, 0x100, 0x10}, @cb_func={0x18, 0x1, 0x4, 0x0, 0xfffffffffffffff9}], &(0x7f0000000900)='GPL\x00', 0x7fffffff, 0x20, &(0x7f0000000940)=""/32, 0x0, 0x10, '\x00', r8, 0x1f, 0xffffffffffffffff, 0x8, &(0x7f0000000a00)={0x5, 0x2}, 0x8, 0x10, &(0x7f0000000a40)={0x5, 0x4, 0xcf, 0x4}, 0x10, 0xffffffffffffffff, 0xffffffffffffffff, 0x0, &(0x7f0000000cc0)=[0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r12, r13, 0x4}, 0x10) r14 = bpf$MAP_CREATE(0x0, &(0x7f0000000740)=@base={0xf, 0x6, 0xffffffff, 0x94, 0x50, 0xffffffffffffffff, 0x6, '\x00', r8, 0xffffffffffffffff, 0x0, 0x1, 0x4}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000800)={0x0, 0xf, &(0x7f00000003c0)=@raw=[@map_val={0x18, 0xa, 0x2, 0x0, r9, 0x0, 0x0, 0x0, 0x81}, @exit, @func={0x85, 0x0, 0x1, 0x0, 0x7}, @cb_func={0x18, 0x0, 0x4, 0x0, 0x6}, @ldst={0x0, 0x3, 0x2, 0x5, 0x3, 0x20, 0xfffffffffffffff0}, @map_val={0x18, 0x2, 0x2, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x7ff}, @btf_id={0x18, 0x1, 0x3, 0x0, 0x1}, @ldst={0x2, 0x2, 0x0, 0xb, 0xb, 0x100, 0xfffffffffffffff0}, @call={0x85, 0x0, 0x0, 0x7e}, @map_idx_val={0x18, 0x6, 0x6, 0x0, 0x3, 0x0, 0x0, 0x0, 0x7f}], &(0x7f0000000440)='syzkaller\x00', 0x0, 0x63, &(0x7f0000000480)=""/99, 0x41000, 0x10, '\x00', r7, 0x28, 0xffffffffffffffff, 0x8, &(0x7f0000000500)={0x0, 0x4}, 0x8, 0x10, &(0x7f0000000540)={0x5, 0x10, 0x0, 0xffffffff}, 0x10, r11, 0xffffffffffffffff, 0x0, &(0x7f00000007c0)=[0x1, r12, r14, 0x1, 0xffffffffffffffff]}, 0x80) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x13, 0x3, &(0x7f0000000080)=@raw=[@btf_id={0x18, 0x9, 0x3, 0x0, 0x4}, @func={0x85, 0x0, 0x1, 0x0, 0xfffffffffffffffb}], &(0x7f00000000c0)='syzkaller\x00', 0x2, 0x5d, &(0x7f0000000300)=""/93, 0x1e00, 0x8, '\x00', 0x0, 0xe, 0xffffffffffffffff, 0x8, &(0x7f00000001c0)={0x1, 0x2}, 0x8, 0x10, &(0x7f0000000280)={0x0, 0x0, 0x0, 0x2}, 0x10, r11, r0, 0x0, &(0x7f0000000380)=[0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) r15 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r15, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000180)=@newqdisc={0x24}, 0x24}}, 0x0) [ 255.376505][ T4847] netlink: 40 bytes leftover after parsing attributes in process `syz-executor.0'. 19:51:39 executing program 0: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0x10, 0x803, 0x0) syz_genetlink_get_family_id$nl80211(&(0x7f00000003c0), r1) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)=0xa) sendmsg$nl_route(r1, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000280)=ANY=[@ANYBLOB="4800000010000507000000000000000000000002", @ANYRES32=r2, @ANYBLOB="0000400000000002280012000c00010076657468"], 0x48}}, 0x0) r3 = socket$inet6_udplite(0xa, 0x2, 0x88) ioctl$sock_ipv6_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f00000000c0)={'syztnl2\x00', &(0x7f0000000180)={'ip6gre0\x00', r2, 0x4, 0xf8, 0xc7, 0x5, 0x1, @empty, @private2, 0x80, 0x40, 0x1, 0x406c}}) ioctl$sock_ipv6_tunnel_SIOCADDTUNNEL(r3, 0x89f1, &(0x7f0000000240)={'syztnl2\x00', &(0x7f00000002c0)={'ip6gre0\x00', r4, 0x4, 0x1, 0x7, 0xd4, 0x58b3d68df197d0b2, @remote, @dev={0xfe, 0x80, '\x00', 0x17}, 0x7, 0x1, 0x200, 0x7}}) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000440)=ANY=[@ANYBLOB="2800000014002101000000000000000002200000", @ANYRES32=r2, @ANYBLOB="08000400ffffffff08000200e0"], 0x28}}, 0x0) r5 = socket$nl_route(0x10, 0x3, 0x0) r6 = socket$nl_route(0x10, 0x3, 0x0) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)=0x14) sendmsg$nl_route(r6, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000440)=ANY=[@ANYBLOB="280000001400210100000000000000000200"], 0x28}}, 0x0) sendmsg$nl_route(r5, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000480)=@ipv4_newaddr={0x20, 0x14, 0x121, 0x0, 0x0, {0x2, 0x0, 0x0, 0x0, r7}, [@IFA_LOCAL={0x8, 0x2, @dev}]}, 0x20}}, 0x0) 19:51:39 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d29161", 0x41, 0x1be}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:39 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, 0x0}, 0x0) [ 255.572279][ T4860] netlink: 24 bytes leftover after parsing attributes in process `syz-executor.0'. 19:51:39 executing program 3: r0 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000080), 0x2, 0x0) ioctl$int_in(r0, 0x40000000af01, 0x0) r1 = socket$packet(0x11, 0x3, 0x300) ioctl$VHOST_SET_MEM_TABLE(r0, 0x4008af03, &(0x7f00000007c0)=ANY=[]) ioctl$VHOST_SET_VRING_ADDR(r0, 0x4028af11, &(0x7f0000000140)={0x0, 0x0, 0x0, &(0x7f0000000900)=""/76, 0x0}) ioctl$VHOST_NET_SET_BACKEND(r0, 0x4008af30, &(0x7f0000f1dff8)={0x0, r1}) ioctl$VHOST_RESET_OWNER(r0, 0xaf02, 0x0) 19:51:39 executing program 5: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r0, &(0x7f0000001f40)={0x0, 0x0, &(0x7f0000001f00)={0x0, 0x78}}, 0x0) r1 = socket(0x2, 0x803, 0xe3) r2 = socket(0x10, 0x2, 0x0) sendmsg$TIPC_CMD_RESET_LINK_STATS(r2, &(0x7f0000003000)={0x0, 0x0, &(0x7f0000000b80)={0x0, 0x28}}, 0x0) getsockname$packet(r2, &(0x7f0000003100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @remote}, &(0x7f0000003140)=0x14) sendmmsg$inet(r1, &(0x7f0000000540)=[{{&(0x7f0000000000)={0x2, 0x0, @remote}, 0x10, 0x0}}, {{&(0x7f0000002240)={0x2, 0x0, @multicast2}, 0x10, 0x0, 0x0, &(0x7f00000000c0)=[@ip_pktinfo={{0x1c, 0x0, 0x8, {r3, @dev, @multicast1}}}], 0x20}}], 0x2, 0x0) 19:51:39 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, 0x0}, 0x0) 19:51:39 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="180100001c0000000000000000000004850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={0x0, r0}, 0x10) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x4c, 0x1e, 0x109, 0x0, 0x0, {}, [{0x38, 0x1, [@m_vlan={0x34, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x6, 0x6, 'z\v'}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x4c}}, 0x0) r3 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r3, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r3, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r4}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x48, 0x1e, 0x109, 0x0, 0x0, {}, [{0x34, 0x1, [@m_vlan={0x30, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x4}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x48}}, 0x0) r6 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r6, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r6, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r7}) sendmsg$nl_route_sched(r5, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=@delqdisc={0x2c, 0x25, 0x4, 0x70bd2b, 0x0, {0x0, 0x0, 0x0, r7, {0xc, 0x4}, {0x5, 0xa}, {0xe, 0xffe0}}, [@TCA_RATE={0x6, 0x5, {0xb6, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) sendmsg$MPTCP_PM_CMD_FLUSH_ADDRS(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)={0x74, 0x0, 0x800, 0x70bd2a, 0x25dfdbfb, {}, [@MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x3}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0x2}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8, 0x7, r4}, @MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0x80}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_ADDR={0x18, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8}]}, 0x74}, 0x1, 0x0, 0x0, 0x40}, 0x20004015) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f0000000040)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r4, 0x7800, 0x40, 0x4, 0x4, {{0x5, 0x4, 0x2, 0x1, 0x14, 0x66, 0x0, 0xff, 0x4, 0x0, @private=0xa010100, @broadcast}}}}) r9 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r9, r10, 0x4}, 0x10) bpf$BPF_GET_BTF_INFO(0xf, &(0x7f0000000700)={0xffffffffffffffff, 0x20, &(0x7f00000006c0)={&(0x7f0000000580)=""/206, 0xce, 0x0, &(0x7f0000000680)=""/58, 0x3a}}, 0x10) r12 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000d00)={0x18, 0xa, &(0x7f0000000880)=@raw=[@exit, @exit, @initr0={0x18, 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0, 0x0, 0x1}, @ldst={0x2, 0x0, 0x0, 0x4, 0x2, 0xffffffffffffffe0}, @cb_func={0x18, 0x1, 0x4, 0x0, 0x8}, @alu={0x7, 0x0, 0x6, 0x5, 0x9, 0x100, 0x10}, @cb_func={0x18, 0x1, 0x4, 0x0, 0xfffffffffffffff9}], &(0x7f0000000900)='GPL\x00', 0x7fffffff, 0x20, &(0x7f0000000940)=""/32, 0x0, 0x10, '\x00', r8, 0x1f, 0xffffffffffffffff, 0x8, &(0x7f0000000a00)={0x5, 0x2}, 0x8, 0x10, &(0x7f0000000a40)={0x5, 0x4, 0xcf, 0x4}, 0x10, 0xffffffffffffffff, 0xffffffffffffffff, 0x0, &(0x7f0000000cc0)=[0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r12, r13, 0x4}, 0x10) r14 = bpf$MAP_CREATE(0x0, &(0x7f0000000740)=@base={0xf, 0x6, 0xffffffff, 0x94, 0x50, 0xffffffffffffffff, 0x6, '\x00', r8, 0xffffffffffffffff, 0x0, 0x1, 0x4}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000800)={0x0, 0xf, &(0x7f00000003c0)=@raw=[@map_val={0x18, 0xa, 0x2, 0x0, r9, 0x0, 0x0, 0x0, 0x81}, @exit, @func={0x85, 0x0, 0x1, 0x0, 0x7}, @cb_func={0x18, 0x0, 0x4, 0x0, 0x6}, @ldst={0x0, 0x3, 0x2, 0x5, 0x3, 0x20, 0xfffffffffffffff0}, @map_val={0x18, 0x2, 0x2, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x7ff}, @btf_id={0x18, 0x1, 0x3, 0x0, 0x1}, @ldst={0x2, 0x2, 0x0, 0xb, 0xb, 0x100, 0xfffffffffffffff0}, @call={0x85, 0x0, 0x0, 0x7e}, @map_idx_val={0x18, 0x6, 0x6, 0x0, 0x3, 0x0, 0x0, 0x0, 0x7f}], &(0x7f0000000440)='syzkaller\x00', 0x0, 0x63, &(0x7f0000000480)=""/99, 0x41000, 0x10, '\x00', r7, 0x28, 0xffffffffffffffff, 0x8, &(0x7f0000000500)={0x0, 0x4}, 0x8, 0x10, &(0x7f0000000540)={0x5, 0x10, 0x0, 0xffffffff}, 0x10, r11, 0xffffffffffffffff, 0x0, &(0x7f00000007c0)=[0x1, r12, r14, 0x1, 0xffffffffffffffff]}, 0x80) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x13, 0x3, &(0x7f0000000080)=@raw=[@btf_id={0x18, 0x9, 0x3, 0x0, 0x4}, @func={0x85, 0x0, 0x1, 0x0, 0xfffffffffffffffb}], &(0x7f00000000c0)='syzkaller\x00', 0x2, 0x5d, &(0x7f0000000300)=""/93, 0x1e00, 0x8, '\x00', 0x0, 0xe, 0xffffffffffffffff, 0x8, &(0x7f00000001c0)={0x1, 0x2}, 0x8, 0x10, &(0x7f0000000280)={0x0, 0x0, 0x0, 0x2}, 0x10, r11, r0, 0x0, &(0x7f0000000380)=[0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) r15 = socket(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r15, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000180)=@newqdisc={0x24}, 0x24}}, 0x0) 19:51:39 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:39 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={0x0}}, 0x0) 19:51:39 executing program 5: bpf$BPF_PROG_WITH_BTFID_LOAD(0x5, &(0x7f0000000280)=@bpf_lsm={0x1d, 0x1, &(0x7f0000000040)=@raw=[@kfunc={0x85, 0x0, 0x2, 0x0, 0x7d010000}], &(0x7f0000000080)='GPL\x00', 0x5, 0xad, &(0x7f00000000c0)=""/173, 0x0, 0x0, '\x00', 0x0, 0x1b, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 19:51:39 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:39 executing program 0: r0 = syz_open_procfs(0x0, &(0x7f0000000580)='cmdline\x00') read$alg(r0, 0x0, 0x0) 19:51:39 executing program 5: bpf$BPF_PROG_WITH_BTFID_LOAD(0x5, &(0x7f0000000280)=@bpf_lsm={0x1d, 0x1, &(0x7f0000000040)=@raw=[@kfunc={0x85, 0x0, 0x2, 0x0, 0x1e00}], &(0x7f0000000080)='GPL\x00', 0x5, 0xad, &(0x7f00000000c0)=""/173, 0x0, 0x0, '\x00', 0x0, 0x1b, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 19:51:39 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={0x0}}, 0x0) 19:51:39 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="180100001c0000000000000000000004850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={0x0, r0}, 0x10) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x4c, 0x1e, 0x109, 0x0, 0x0, {}, [{0x38, 0x1, [@m_vlan={0x34, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x6, 0x6, 'z\v'}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x4c}}, 0x0) r3 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r3, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r3, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r4}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x48, 0x1e, 0x109, 0x0, 0x0, {}, [{0x34, 0x1, [@m_vlan={0x30, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x4}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x48}}, 0x0) r6 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r6, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r6, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r7}) sendmsg$nl_route_sched(r5, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=@delqdisc={0x2c, 0x25, 0x4, 0x70bd2b, 0x0, {0x0, 0x0, 0x0, r7, {0xc, 0x4}, {0x5, 0xa}, {0xe, 0xffe0}}, [@TCA_RATE={0x6, 0x5, {0xb6, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) sendmsg$MPTCP_PM_CMD_FLUSH_ADDRS(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)={0x74, 0x0, 0x800, 0x70bd2a, 0x25dfdbfb, {}, [@MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x3}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0x2}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8, 0x7, r4}, @MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0x80}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_ADDR={0x18, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8}]}, 0x74}, 0x1, 0x0, 0x0, 0x40}, 0x20004015) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f0000000040)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r4, 0x7800, 0x40, 0x4, 0x4, {{0x5, 0x4, 0x2, 0x1, 0x14, 0x66, 0x0, 0xff, 0x4, 0x0, @private=0xa010100, @broadcast}}}}) r9 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r9, r10, 0x4}, 0x10) bpf$BPF_GET_BTF_INFO(0xf, &(0x7f0000000700)={0xffffffffffffffff, 0x20, &(0x7f00000006c0)={&(0x7f0000000580)=""/206, 0xce, 0x0, &(0x7f0000000680)=""/58, 0x3a}}, 0x10) r12 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000d00)={0x18, 0xa, &(0x7f0000000880)=@raw=[@exit, @exit, @initr0={0x18, 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0, 0x0, 0x1}, @ldst={0x2, 0x0, 0x0, 0x4, 0x2, 0xffffffffffffffe0}, @cb_func={0x18, 0x1, 0x4, 0x0, 0x8}, @alu={0x7, 0x0, 0x6, 0x5, 0x9, 0x100, 0x10}, @cb_func={0x18, 0x1, 0x4, 0x0, 0xfffffffffffffff9}], &(0x7f0000000900)='GPL\x00', 0x7fffffff, 0x20, &(0x7f0000000940)=""/32, 0x0, 0x10, '\x00', r8, 0x1f, 0xffffffffffffffff, 0x8, &(0x7f0000000a00)={0x5, 0x2}, 0x8, 0x10, &(0x7f0000000a40)={0x5, 0x4, 0xcf, 0x4}, 0x10, 0xffffffffffffffff, 0xffffffffffffffff, 0x0, &(0x7f0000000cc0)=[0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r12, r13, 0x4}, 0x10) r14 = bpf$MAP_CREATE(0x0, &(0x7f0000000740)=@base={0xf, 0x6, 0xffffffff, 0x94, 0x50, 0xffffffffffffffff, 0x6, '\x00', r8, 0xffffffffffffffff, 0x0, 0x1, 0x4}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000800)={0x0, 0xf, &(0x7f00000003c0)=@raw=[@map_val={0x18, 0xa, 0x2, 0x0, r9, 0x0, 0x0, 0x0, 0x81}, @exit, @func={0x85, 0x0, 0x1, 0x0, 0x7}, @cb_func={0x18, 0x0, 0x4, 0x0, 0x6}, @ldst={0x0, 0x3, 0x2, 0x5, 0x3, 0x20, 0xfffffffffffffff0}, @map_val={0x18, 0x2, 0x2, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x7ff}, @btf_id={0x18, 0x1, 0x3, 0x0, 0x1}, @ldst={0x2, 0x2, 0x0, 0xb, 0xb, 0x100, 0xfffffffffffffff0}, @call={0x85, 0x0, 0x0, 0x7e}, @map_idx_val={0x18, 0x6, 0x6, 0x0, 0x3, 0x0, 0x0, 0x0, 0x7f}], &(0x7f0000000440)='syzkaller\x00', 0x0, 0x63, &(0x7f0000000480)=""/99, 0x41000, 0x10, '\x00', r7, 0x28, 0xffffffffffffffff, 0x8, &(0x7f0000000500)={0x0, 0x4}, 0x8, 0x10, &(0x7f0000000540)={0x5, 0x10, 0x0, 0xffffffff}, 0x10, r11, 0xffffffffffffffff, 0x0, &(0x7f00000007c0)=[0x1, r12, r14, 0x1, 0xffffffffffffffff]}, 0x80) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x13, 0x3, &(0x7f0000000080)=@raw=[@btf_id={0x18, 0x9, 0x3, 0x0, 0x4}, @func={0x85, 0x0, 0x1, 0x0, 0xfffffffffffffffb}], &(0x7f00000000c0)='syzkaller\x00', 0x2, 0x5d, &(0x7f0000000300)=""/93, 0x1e00, 0x8, '\x00', 0x0, 0xe, 0xffffffffffffffff, 0x8, &(0x7f00000001c0)={0x1, 0x2}, 0x8, 0x10, &(0x7f0000000280)={0x0, 0x0, 0x0, 0x2}, 0x10, r11, r0, 0x0, &(0x7f0000000380)=[0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) socket(0x10, 0x3, 0x0) [ 255.814459][ T4880] Zero length message leads to an empty skb 19:51:39 executing program 3: r0 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000080), 0x2, 0x0) ioctl$int_in(r0, 0x40000000af01, 0x0) r1 = socket$packet(0x11, 0x3, 0x300) ioctl$VHOST_SET_MEM_TABLE(r0, 0x4008af03, &(0x7f00000007c0)=ANY=[]) ioctl$VHOST_SET_VRING_ADDR(r0, 0x4028af11, &(0x7f0000000140)={0x0, 0x0, 0x0, &(0x7f0000000900)=""/76, 0x0}) ioctl$VHOST_NET_SET_BACKEND(r0, 0x4008af30, &(0x7f0000f1dff8)={0x0, r1}) ioctl$VHOST_RESET_OWNER(r0, 0xaf02, 0x0) 19:51:39 executing program 0: r0 = openat$tun(0xffffffffffffff9c, &(0x7f00000005c0), 0x0, 0x0) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f0000000000)={'wlan0\x00', 0x1}) ioctl$TUNSETVNETBE(r0, 0x400454de, 0x0) 19:51:39 executing program 5: r0 = syz_open_dev$loop(&(0x7f0000000100), 0x0, 0x0) ioctl$BLKRESETZONE(r0, 0x40101283, 0x0) 19:51:39 executing program 2: syz_read_part_table(0x0, 0x2, &(0x7f0000000040)=[{&(0x7f0000000080)="03f60f020206af540314c90a06000000000005000083f40000010000053b4e0000ffffff7cde4c154113937720ffffff80ffffffee00000001ffffffc900d2916150", 0x42}, {&(0x7f0000000200)="4a7aabf9b020e0b756fd7d1a5f1bb7ff", 0x10}]) 19:51:39 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={0x0}}, 0x0) 19:51:39 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="180100001c0000000000000000000004850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={0x0, r0}, 0x10) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x4c, 0x1e, 0x109, 0x0, 0x0, {}, [{0x38, 0x1, [@m_vlan={0x34, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x6, 0x6, 'z\v'}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x4c}}, 0x0) r3 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r3, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r3, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r4}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x48, 0x1e, 0x109, 0x0, 0x0, {}, [{0x34, 0x1, [@m_vlan={0x30, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x4}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x48}}, 0x0) r6 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r6, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r6, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r7}) sendmsg$nl_route_sched(r5, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=@delqdisc={0x2c, 0x25, 0x4, 0x70bd2b, 0x0, {0x0, 0x0, 0x0, r7, {0xc, 0x4}, {0x5, 0xa}, {0xe, 0xffe0}}, [@TCA_RATE={0x6, 0x5, {0xb6, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) sendmsg$MPTCP_PM_CMD_FLUSH_ADDRS(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)={0x74, 0x0, 0x800, 0x70bd2a, 0x25dfdbfb, {}, [@MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x3}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0x2}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8, 0x7, r4}, @MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0x80}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_ADDR={0x18, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8}]}, 0x74}, 0x1, 0x0, 0x0, 0x40}, 0x20004015) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f0000000040)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r4, 0x7800, 0x40, 0x4, 0x4, {{0x5, 0x4, 0x2, 0x1, 0x14, 0x66, 0x0, 0xff, 0x4, 0x0, @private=0xa010100, @broadcast}}}}) r9 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r9, r10, 0x4}, 0x10) bpf$BPF_GET_BTF_INFO(0xf, &(0x7f0000000700)={0xffffffffffffffff, 0x20, &(0x7f00000006c0)={&(0x7f0000000580)=""/206, 0xce, 0x0, &(0x7f0000000680)=""/58, 0x3a}}, 0x10) r12 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000d00)={0x18, 0xa, &(0x7f0000000880)=@raw=[@exit, @exit, @initr0={0x18, 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0, 0x0, 0x1}, @ldst={0x2, 0x0, 0x0, 0x4, 0x2, 0xffffffffffffffe0}, @cb_func={0x18, 0x1, 0x4, 0x0, 0x8}, @alu={0x7, 0x0, 0x6, 0x5, 0x9, 0x100, 0x10}, @cb_func={0x18, 0x1, 0x4, 0x0, 0xfffffffffffffff9}], &(0x7f0000000900)='GPL\x00', 0x7fffffff, 0x20, &(0x7f0000000940)=""/32, 0x0, 0x10, '\x00', r8, 0x1f, 0xffffffffffffffff, 0x8, &(0x7f0000000a00)={0x5, 0x2}, 0x8, 0x10, &(0x7f0000000a40)={0x5, 0x4, 0xcf, 0x4}, 0x10, 0xffffffffffffffff, 0xffffffffffffffff, 0x0, &(0x7f0000000cc0)=[0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r12, r13, 0x4}, 0x10) r14 = bpf$MAP_CREATE(0x0, &(0x7f0000000740)=@base={0xf, 0x6, 0xffffffff, 0x94, 0x50, 0xffffffffffffffff, 0x6, '\x00', r8, 0xffffffffffffffff, 0x0, 0x1, 0x4}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000800)={0x0, 0xf, &(0x7f00000003c0)=@raw=[@map_val={0x18, 0xa, 0x2, 0x0, r9, 0x0, 0x0, 0x0, 0x81}, @exit, @func={0x85, 0x0, 0x1, 0x0, 0x7}, @cb_func={0x18, 0x0, 0x4, 0x0, 0x6}, @ldst={0x0, 0x3, 0x2, 0x5, 0x3, 0x20, 0xfffffffffffffff0}, @map_val={0x18, 0x2, 0x2, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x7ff}, @btf_id={0x18, 0x1, 0x3, 0x0, 0x1}, @ldst={0x2, 0x2, 0x0, 0xb, 0xb, 0x100, 0xfffffffffffffff0}, @call={0x85, 0x0, 0x0, 0x7e}, @map_idx_val={0x18, 0x6, 0x6, 0x0, 0x3, 0x0, 0x0, 0x0, 0x7f}], &(0x7f0000000440)='syzkaller\x00', 0x0, 0x63, &(0x7f0000000480)=""/99, 0x41000, 0x10, '\x00', r7, 0x28, 0xffffffffffffffff, 0x8, &(0x7f0000000500)={0x0, 0x4}, 0x8, 0x10, &(0x7f0000000540)={0x5, 0x10, 0x0, 0xffffffff}, 0x10, r11, 0xffffffffffffffff, 0x0, &(0x7f00000007c0)=[0x1, r12, r14, 0x1, 0xffffffffffffffff]}, 0x80) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x13, 0x3, &(0x7f0000000080)=@raw=[@btf_id={0x18, 0x9, 0x3, 0x0, 0x4}, @func={0x85, 0x0, 0x1, 0x0, 0xfffffffffffffffb}], &(0x7f00000000c0)='syzkaller\x00', 0x2, 0x5d, &(0x7f0000000300)=""/93, 0x1e00, 0x8, '\x00', 0x0, 0xe, 0xffffffffffffffff, 0x8, &(0x7f00000001c0)={0x1, 0x2}, 0x8, 0x10, &(0x7f0000000280)={0x0, 0x0, 0x0, 0x2}, 0x10, r11, r0, 0x0, &(0x7f0000000380)=[0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) 19:51:39 executing program 0: syz_mount_image$iso9660(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x5f800, 0xf, &(0x7f0000000200)=[{&(0x7f0000010000)="01434430303101004c494e55582020202020202020202020202020202020202020202020202020204344524f4d2020202020202020202020202020202020202020202020202020200000000000000000bf000000000000bf000000000000000000000000000000000000000000000000000000000000000001000001010000010008080018000000000000181400000000000000000000160000000022001c0000000000001c00080000000008007a090c0c001e00020000010000010100202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202073797a6b616c6c65722020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202047454e49534f494d4147452049534f20393636302f4846532046494c4553595354454d2043524541544f5220284329203139393320452e594f554e4744414c452028432920313939372d32303036204a2e50454152534f4e2f4a2e534348494c4c494e472028432920323030362d32303037204344524b4954205445414d202066696c6533202020202020202020202020202020202020202020202020202020202020202066696c6531202020202020202020202020202020202020202020202020202020202020202066696c6532202020202020202020202020202020202020202020202020202020202020202032303232303931323132303035383030003230323230393132313230303538303000303030303030303030303030303030300032303232303931323132303035383030000100202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202000"/1408, 0x580, 0x8000}, {&(0x7f0000010580)="0243443030310100004c0049004e0055005800200020002000200020002000200020002000200020004300440052004f004d002000200020002000200020002000200020002000200000000000000000bf000000000000bf252f2500000000000000000000000000000000000000000000000000000000000100000101000001000808001c0000000000001c18000000000000000000001a0000000022001e0000000000001e00080000000008007a090c0c001e00020000010000010100002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000730079007a006b0061006c006c006500720020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000470045004e00490053004f0049004d004100470045002000490053004f00200039003600360030005f004800460053002000460049004c004500530059005300540045004d002000430052004500410054004f005200200028004300290020003100390039003300200045002e0059004f0055004e004700440041004c004500660069006c0065003300200020002000200020002000200020002000200020002000200000660069006c0065003100200020002000200020002000200020002000200020002000200000660069006c0065003200200020002000200020002000200020002000200020002000200032303232303931323132303035383030003230323230393132313230303538303000303030303030303030303030303030300032303232303931323132303035383030000100202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202000"/1408, 0x580, 0x8800}, {&(0x7f0000010b00)="ff43443030310100"/32, 0x20, 0x9000}, {&(0x7f0000010b20)="01001c0000000100000005001d000000010046494c4530000000000000000000", 0x20, 0xa000}, {&(0x7f0000010b40)="01000000001c0001000005000000001d000146494c4530000000000000000000", 0x20, 0xb000}, {&(0x7f0000010b60)="01001e000000010000000a001f000000010000660069006c0065003000000000", 0x20, 0xc000}, {&(0x7f0000010b80)="01000000001e000100000a000000001f000100660069006c0065003000000000", 0x20, 0xd000}, {&(0x7f0000010ba0)="88001c0000000000001c00080000000008007a090c0c001e0002000001000001010053500701beef005252050181505824016d4100000000416d03000000000000030000000000000000000000000000000054461a010e7a090c0c001e007a090c0c0035007a090c0c001e0043451c0120000000000000200000000000000000ed000000000000ed66001c0000000000001c00080000000008007a090c0c001e000200000100000101015252050181505824016d4100000000416d03000000000000030000000000000000000000000000000054461a010e7a090c0c001e007a090c0c0035007a090c0c001e00008c00210000000000002164000000000000647a090c0c001e00000000010000010a46494c452e434f4c3b310041410e0254455854756e6978000052520501894e4d0e010066696c652e636f6c64505824016d8100000000816d01000000000000010000000000000000000000000000000054461a010e7a090c0c001e007a090c0c0035007a090c0c001e000074001d0000000000001d00080000000008007a090c0c001e00020000010000010546494c453052520501894e4d0a010066696c6530505824016d4100000000416d02000000000000020000000000000000000000000000000054461a010e7a090c0c001e007a090c0c0035007a090c0c001e0000860022000000000000220a0000000000000a7a090c0c001e00000000010000010846494c45312e3b310041410e0254455854756e6978000052520501894e4d0a010066696c6531505824016d8100000000816d01000000000000010000000000000000000000000000000054461a010e7a090c0c001e007a090c0c0035007a090c0c001e00008600230000000000002328230000000023287a090c0c001e00000000010000010846494c45322e3b310041410e0254455854756e6978000052520501894e4d0a010066696c6532505824016d8100000000816d02000000000000020000000000000000000000000000000054461a010e7a090c0c001e007a090c0c0035007a090c0c001e00008600230000000000002328230000000023287a090c0c001e00000000010000010846494c45332e3b310041410e0254455854756e6978000052520501894e4d0a010066696c6533505824016d8100000000816d02000000000000020000000000000000000000000000000054461a010e7a090c0c001e007a090c0c0035007a090c0c001e0000", 0x380, 0xe000}, {&(0x7f0000010f20)="66001d0000000000001d00080000000008007a090c0c001e000200000100000101005252050181505824016d4100000000416d02000000000000020000000000000000000000000000000054461a010e7a090c0c001e007a090c0c0035007a090c0c001e000066001c0000000000001c00080000000008007a090c0c001e000200000100000101015252050181505824016d4100000000416d03000000000000030000000000000000000000000000000054461a010e7a090c0c001e007a090c0c0035007a090c0c001e0000860028000000000000281a0400000000041a7a090c0c001e00000000010000010846494c45302e3b310041410e0254455854756e6978000052520501894e4d0a010066696c6530505824016d8100000000816d01000000000000010000000000000000000000000000000054461a010e7a090c0c001e007a090c0c0035007a090c0c001e0000aa00290000000000002900000000000000007a090c0c001e00000000010000010846494c45312e3b3100525205018d4e4d0a010066696c6531505824016da100000000a16d010000000000000100000000000000000000000000000000534c32010008000003746d70001673797a2d696d61676567656e32383037373134373932000566696c6530000566696c653054461a010e7a090c0c001e007a090c0c0035007a090c0c001e000000000000", 0x200, 0xe800}, {&(0x7f0000011120)="22001e0000000000001e00080000000008007a090c0c001e0002000001000001010022001e0000000000001e00080000000008007a090c0c001e000200000100000101013400210000000000002164000000000000647a090c0c001e00000000010000011200660069006c0065002e0063006f006c0064002c001f0000000000001f00080000000008007a090c0c001e00020000010000010a00660069006c00650030002c0022000000000000220a0000000000000a7a090c0c001e00000000010000010a00660069006c00650031002c00230000000000002328230000000023287a090c0c001e00000000010000010a00660069006c00650032002c00230000000000002328230000000023287a090c0c001e00000000010000010a00660069006c0065003300"/320, 0x140, 0xf000}, {&(0x7f0000011260)="22001f0000000000001f00080000000008007a090c0c001e0002000001000001010022001e0000000000001e00080000000008007a090c0c001e000200000100000101012c0028000000000000281a0400000000041a7a090c0c001e00000000010000010a00660069006c00650030002c00290000000000002900000000000000007a090c0c001e00000000010000010a00660069006c006500310000000000", 0xa0, 0xf800}, {&(0x7f0000011300)="4552ed010a548701525249505f313939314154484520524f434b20524944474520494e5445524348414e47452050524f544f434f4c2050524f564944455320535550504f525420464f5220504f5349582046494c452053595354454d2053454d414e54494353504c4541534520434f4e544143542044495343205055424c495348455220464f522053504543494649434154494f4e20534f555243452e2020534545205055424c4953484552204944454e54494649455220494e205052494d41525920564f4c554d452044455343524950544f5220464f5220434f4e5441435420494e464f524d4154494f4e2e00"/256, 0x100, 0x10000}, {&(0x7f0000011400)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallers\x00'/128, 0x80, 0x10800}, {&(0x7f0000011480)='syzkallers\x00'/32, 0x20, 0x11000}, {&(0x7f00000114a0)='syzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkallersyzkal\x00\x00\x00\x00\x00\x00', 0x420, 0x14000}], 0x0, &(0x7f0000000040)=ANY=[@ANYBLOB="fbf1d0e85c69326adafd37304c22f6f972e276f9220f27f93dd9cf5eecfd412b4185f2e94703681689b1a7d2574a25bd78cb1e92b4795db0b2e10b58032ab83e49096673192ecb4547d38b62fe4d3fa585119e961c9a767d8f52242118fc88815aab40021e9570df7374c578148f83eb44130ac07da300584e5116338444ce37d7f07e85024e70691ebb6acb1288f5cade1be9c75df676cfa76d4c8d93d6032f523ff7a0483d0b6b"], 0x1) 19:51:39 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, 0x0, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) [ 256.065743][ T4907] loop0: detected capacity change from 0 to 764 19:51:39 executing program 5: syz_mount_image$tmpfs(&(0x7f0000000000), &(0x7f0000000040)='./file0\x00', 0x10000f5, 0x3, &(0x7f00000004c0)=[{&(0x7f0000000280)="b7ced44ac5b053c7654fba076dac03a696341376a816cba61803c147620e2021458d403f912fda7b18b7f986d20041e796fe9a632289d52ab3585deee3495f09976bbf928da4d0e82b4197b4dbc796990963b9863eaf0aa8c121199e8909a3dda02929263a219a61765528c1d0cc66fbb7000c787ac880af9384", 0x7a, 0x5}, {&(0x7f0000000340)="cdcf8445d65cce0323ba4ce7df19fe66158b01d75cd824d626275b51e1f1a96956ec81e067ab9dda7a80dc415d2b59840857d6a2b591d5", 0x37, 0x7f}, {&(0x7f0000000540)="0f005754bc8bd975da4713564e7bee13ea37a37bb953abb8f28163d1e0194b4e32c81d44587ae3830fdf64988243979abeda71666ecb817f206db6259222977aa9739f361d3c316b56690eb76b7b37175c2ae7d3683678db0f9eee1b72330d4459090c4ed03b1f0e75354b9cebbbc3babc819234a0677cd2643c51600e11c0fa92597978d875fba215e6bbf4f3f495b69277a0c2fc131b4f5dc7d4ee4898136e836eae894bcab30ddb1b9ff2b37927f885c9e30291123e55ced6abf6405fab6bf7da0897f450a6b72ff32f5c7734812054bcaf91a8c724ce73eae9876f0343ea57a1836fae13b89d7d0734f36b27589f5ded4ca82349c3d2c6fc22ca770c1ed25ecd8ce306894174dde296856609c326302f04a6099b9fca4c63e0f35e86a41ed7e4aeb76d19ff34563182197d348c4ba068b6853b925ebf553589c5d78c8ace24dd39c0f18f96c9b521acd21b4fa8b158c0aec447626d34ebb2f03b5ae32317987d066700351ad82f78eeda7d8f40b9ed88613e8c9513b25ddbfbd4045bad00"/397, 0x18d, 0xb6}], 0x82, &(0x7f0000000380)={[{@uid={'uid', 0x3d, 0xee00}}, {@huge_advise, 0x2e}, {@gid={'gid', 0x3d, 0xee01}}, {@mode={'mode', 0x3d, 0x1}}]}, 0x1) 19:51:39 executing program 3: r0 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000080), 0x2, 0x0) ioctl$int_in(r0, 0x40000000af01, 0x0) r1 = socket$packet(0x11, 0x3, 0x300) ioctl$VHOST_SET_MEM_TABLE(r0, 0x4008af03, &(0x7f00000007c0)=ANY=[]) ioctl$VHOST_SET_VRING_ADDR(r0, 0x4028af11, &(0x7f0000000140)={0x0, 0x0, 0x0, &(0x7f0000000900)=""/76, 0x0}) ioctl$VHOST_NET_SET_BACKEND(r0, 0x4008af30, &(0x7f0000f1dff8)={0x0, r1}) ioctl$VHOST_RESET_OWNER(r0, 0xaf02, 0x0) 19:51:39 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="180100001c0000000000000000000004850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={0x0, r0}, 0x10) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x4c, 0x1e, 0x109, 0x0, 0x0, {}, [{0x38, 0x1, [@m_vlan={0x34, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x6, 0x6, 'z\v'}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x4c}}, 0x0) r3 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r3, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r3, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r4}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x48, 0x1e, 0x109, 0x0, 0x0, {}, [{0x34, 0x1, [@m_vlan={0x30, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x4}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x48}}, 0x0) r6 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r6, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r6, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r7}) sendmsg$nl_route_sched(r5, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=@delqdisc={0x2c, 0x25, 0x4, 0x70bd2b, 0x0, {0x0, 0x0, 0x0, r7, {0xc, 0x4}, {0x5, 0xa}, {0xe, 0xffe0}}, [@TCA_RATE={0x6, 0x5, {0xb6, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) sendmsg$MPTCP_PM_CMD_FLUSH_ADDRS(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)={0x74, 0x0, 0x800, 0x70bd2a, 0x25dfdbfb, {}, [@MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x3}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0x2}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8, 0x7, r4}, @MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0x80}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_ADDR={0x18, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8}]}, 0x74}, 0x1, 0x0, 0x0, 0x40}, 0x20004015) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f0000000040)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r4, 0x7800, 0x40, 0x4, 0x4, {{0x5, 0x4, 0x2, 0x1, 0x14, 0x66, 0x0, 0xff, 0x4, 0x0, @private=0xa010100, @broadcast}}}}) r9 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r9, r10, 0x4}, 0x10) bpf$BPF_GET_BTF_INFO(0xf, &(0x7f0000000700)={0xffffffffffffffff, 0x20, &(0x7f00000006c0)={&(0x7f0000000580)=""/206, 0xce, 0x0, &(0x7f0000000680)=""/58, 0x3a}}, 0x10) r12 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000d00)={0x18, 0xa, &(0x7f0000000880)=@raw=[@exit, @exit, @initr0={0x18, 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0, 0x0, 0x1}, @ldst={0x2, 0x0, 0x0, 0x4, 0x2, 0xffffffffffffffe0}, @cb_func={0x18, 0x1, 0x4, 0x0, 0x8}, @alu={0x7, 0x0, 0x6, 0x5, 0x9, 0x100, 0x10}, @cb_func={0x18, 0x1, 0x4, 0x0, 0xfffffffffffffff9}], &(0x7f0000000900)='GPL\x00', 0x7fffffff, 0x20, &(0x7f0000000940)=""/32, 0x0, 0x10, '\x00', r8, 0x1f, 0xffffffffffffffff, 0x8, &(0x7f0000000a00)={0x5, 0x2}, 0x8, 0x10, &(0x7f0000000a40)={0x5, 0x4, 0xcf, 0x4}, 0x10, 0xffffffffffffffff, 0xffffffffffffffff, 0x0, &(0x7f0000000cc0)=[0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r12, r13, 0x4}, 0x10) r14 = bpf$MAP_CREATE(0x0, &(0x7f0000000740)=@base={0xf, 0x6, 0xffffffff, 0x94, 0x50, 0xffffffffffffffff, 0x6, '\x00', r8, 0xffffffffffffffff, 0x0, 0x1, 0x4}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000800)={0x0, 0xf, &(0x7f00000003c0)=@raw=[@map_val={0x18, 0xa, 0x2, 0x0, r9, 0x0, 0x0, 0x0, 0x81}, @exit, @func={0x85, 0x0, 0x1, 0x0, 0x7}, @cb_func={0x18, 0x0, 0x4, 0x0, 0x6}, @ldst={0x0, 0x3, 0x2, 0x5, 0x3, 0x20, 0xfffffffffffffff0}, @map_val={0x18, 0x2, 0x2, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x7ff}, @btf_id={0x18, 0x1, 0x3, 0x0, 0x1}, @ldst={0x2, 0x2, 0x0, 0xb, 0xb, 0x100, 0xfffffffffffffff0}, @call={0x85, 0x0, 0x0, 0x7e}, @map_idx_val={0x18, 0x6, 0x6, 0x0, 0x3, 0x0, 0x0, 0x0, 0x7f}], &(0x7f0000000440)='syzkaller\x00', 0x0, 0x63, &(0x7f0000000480)=""/99, 0x41000, 0x10, '\x00', r7, 0x28, 0xffffffffffffffff, 0x8, &(0x7f0000000500)={0x0, 0x4}, 0x8, 0x10, &(0x7f0000000540)={0x5, 0x10, 0x0, 0xffffffff}, 0x10, r11, 0xffffffffffffffff, 0x0, &(0x7f00000007c0)=[0x1, r12, r14, 0x1, 0xffffffffffffffff]}, 0x80) 19:51:39 executing program 0: mkdirat(0xffffffffffffff9c, &(0x7f0000001500)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000180)='./file0\x00', &(0x7f0000000240)='devtmpfs\x00', 0x0, 0x0) lgetxattr(&(0x7f0000000140)='./file0\x00', &(0x7f00000001c0)=@known='trusted.overlay.nlink\x00', &(0x7f0000000200)=""/19, 0x16) 19:51:39 executing program 2: openat$vnet(0xffffffffffffff9c, &(0x7f0000000080), 0x2, 0x0) r0 = socket$packet(0x11, 0x3, 0x300) setsockopt$packet_tx_ring(r0, 0x107, 0x5, &(0x7f00000000c0)=@req3={0x8000, 0x6, 0x8000, 0x6}, 0x1c) socket$inet6_tcp(0xa, 0x1, 0x0) r1 = socket$inet_icmp_raw(0x2, 0x3, 0x1) r2 = dup(r1) sendmsg$inet(r2, &(0x7f0000000780)={&(0x7f0000000100)={0x2, 0x0, @multicast1}, 0x10, &(0x7f0000001600)=[{&(0x7f0000000140)="be38", 0xffdf}], 0x1, &(0x7f0000000c80)=ANY=[@ANYBLOB="1c000000000000000000000008000000", @ANYRES32=r1, @ANYBLOB="ac1414aa00000000000000001c000000000000000000000007"], 0x40}, 0x0) 19:51:39 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, 0x0, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:39 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="180100001c0000000000000000000004850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={0x0, r0}, 0x10) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x4c, 0x1e, 0x109, 0x0, 0x0, {}, [{0x38, 0x1, [@m_vlan={0x34, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x6, 0x6, 'z\v'}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x4c}}, 0x0) r3 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r3, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r3, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r4}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x48, 0x1e, 0x109, 0x0, 0x0, {}, [{0x34, 0x1, [@m_vlan={0x30, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x4}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x48}}, 0x0) r6 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r6, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r6, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r7}) sendmsg$nl_route_sched(r5, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=@delqdisc={0x2c, 0x25, 0x4, 0x70bd2b, 0x0, {0x0, 0x0, 0x0, r7, {0xc, 0x4}, {0x5, 0xa}, {0xe, 0xffe0}}, [@TCA_RATE={0x6, 0x5, {0xb6, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) sendmsg$MPTCP_PM_CMD_FLUSH_ADDRS(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)={0x74, 0x0, 0x800, 0x70bd2a, 0x25dfdbfb, {}, [@MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x3}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0x2}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8, 0x7, r4}, @MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0x80}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_ADDR={0x18, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8}]}, 0x74}, 0x1, 0x0, 0x0, 0x40}, 0x20004015) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f0000000040)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r4, 0x7800, 0x40, 0x4, 0x4, {{0x5, 0x4, 0x2, 0x1, 0x14, 0x66, 0x0, 0xff, 0x4, 0x0, @private=0xa010100, @broadcast}}}}) r9 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r9, r10, 0x4}, 0x10) bpf$BPF_GET_BTF_INFO(0xf, &(0x7f0000000700)={0xffffffffffffffff, 0x20, &(0x7f00000006c0)={&(0x7f0000000580)=""/206, 0xce, 0x0, &(0x7f0000000680)=""/58, 0x3a}}, 0x10) r11 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000d00)={0x18, 0xa, &(0x7f0000000880)=@raw=[@exit, @exit, @initr0={0x18, 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0, 0x0, 0x1}, @ldst={0x2, 0x0, 0x0, 0x4, 0x2, 0xffffffffffffffe0}, @cb_func={0x18, 0x1, 0x4, 0x0, 0x8}, @alu={0x7, 0x0, 0x6, 0x5, 0x9, 0x100, 0x10}, @cb_func={0x18, 0x1, 0x4, 0x0, 0xfffffffffffffff9}], &(0x7f0000000900)='GPL\x00', 0x7fffffff, 0x20, &(0x7f0000000940)=""/32, 0x0, 0x10, '\x00', r8, 0x1f, 0xffffffffffffffff, 0x8, &(0x7f0000000a00)={0x5, 0x2}, 0x8, 0x10, &(0x7f0000000a40)={0x5, 0x4, 0xcf, 0x4}, 0x10, 0xffffffffffffffff, 0xffffffffffffffff, 0x0, &(0x7f0000000cc0)=[0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r11, r12, 0x4}, 0x10) bpf$MAP_CREATE(0x0, &(0x7f0000000740)=@base={0xf, 0x6, 0xffffffff, 0x94, 0x50, 0xffffffffffffffff, 0x6, '\x00', r8, 0xffffffffffffffff, 0x0, 0x1, 0x4}, 0x48) [ 256.237543][ T4918] loop5: detected capacity change from 0 to 32768 [ 256.272633][ T4918] tmpfs: Bad value for 'huge' 19:51:39 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, 0x0, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:39 executing program 3: r0 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000080), 0x2, 0x0) ioctl$int_in(r0, 0x40000000af01, 0x0) socket$packet(0x11, 0x3, 0x300) ioctl$VHOST_SET_MEM_TABLE(r0, 0x4008af03, &(0x7f00000007c0)=ANY=[]) ioctl$VHOST_SET_VRING_ADDR(r0, 0x4028af11, &(0x7f0000000140)={0x0, 0x0, 0x0, &(0x7f0000000900)=""/76, 0x0}) ioctl$VHOST_RESET_OWNER(r0, 0xaf02, 0x0) 19:51:39 executing program 0: r0 = openat(0xffffffffffffff9c, &(0x7f0000000200)='./cgroup\x00', 0x0, 0x0) name_to_handle_at(r0, &(0x7f0000000100)='./file0\x00', &(0x7f0000000140)=@GFS2_LARGE_FH_SIZE={0x20}, &(0x7f0000000180), 0x0) 19:51:39 executing program 5: syz_io_uring_setup(0x10c8, &(0x7f0000000300), &(0x7f0000ffa000/0x6000)=nil, &(0x7f0000ffd000/0x2000)=nil, 0x0, 0x0) syz_io_uring_setup(0x5276, &(0x7f0000000140), &(0x7f0000ffd000/0x1000)=nil, &(0x7f0000ffb000/0x3000)=nil, &(0x7f00000001c0), &(0x7f0000000200)) 19:51:40 executing program 2: mkdirat(0xffffffffffffff9c, &(0x7f0000000100)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000180)='./file0\x00', &(0x7f0000000240)='devtmpfs\x00', 0x0, 0x0) chdir(&(0x7f0000000480)='./file0\x00') statx(0xffffffffffffff9c, &(0x7f0000000680)='./bus\x00', 0x0, 0x800, &(0x7f00000006c0)) 19:51:40 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="180100001c0000000000000000000004850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={0x0, r0}, 0x10) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x4c, 0x1e, 0x109, 0x0, 0x0, {}, [{0x38, 0x1, [@m_vlan={0x34, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x6, 0x6, 'z\v'}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x4c}}, 0x0) r3 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r3, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r3, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r4}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x48, 0x1e, 0x109, 0x0, 0x0, {}, [{0x34, 0x1, [@m_vlan={0x30, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x4}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x48}}, 0x0) r6 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r6, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r6, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r7}) sendmsg$nl_route_sched(r5, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=@delqdisc={0x2c, 0x25, 0x4, 0x70bd2b, 0x0, {0x0, 0x0, 0x0, r7, {0xc, 0x4}, {0x5, 0xa}, {0xe, 0xffe0}}, [@TCA_RATE={0x6, 0x5, {0xb6, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) sendmsg$MPTCP_PM_CMD_FLUSH_ADDRS(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)={0x74, 0x0, 0x800, 0x70bd2a, 0x25dfdbfb, {}, [@MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x3}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0x2}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8, 0x7, r4}, @MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0x80}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_ADDR={0x18, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8}]}, 0x74}, 0x1, 0x0, 0x0, 0x40}, 0x20004015) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f0000000040)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r4, 0x7800, 0x40, 0x4, 0x4, {{0x5, 0x4, 0x2, 0x1, 0x14, 0x66, 0x0, 0xff, 0x4, 0x0, @private=0xa010100, @broadcast}}}}) r9 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r9, r10, 0x4}, 0x10) bpf$BPF_GET_BTF_INFO(0xf, &(0x7f0000000700)={0xffffffffffffffff, 0x20, &(0x7f00000006c0)={&(0x7f0000000580)=""/206, 0xce, 0x0, &(0x7f0000000680)=""/58, 0x3a}}, 0x10) r11 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000d00)={0x18, 0xa, &(0x7f0000000880)=@raw=[@exit, @exit, @initr0={0x18, 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0, 0x0, 0x1}, @ldst={0x2, 0x0, 0x0, 0x4, 0x2, 0xffffffffffffffe0}, @cb_func={0x18, 0x1, 0x4, 0x0, 0x8}, @alu={0x7, 0x0, 0x6, 0x5, 0x9, 0x100, 0x10}, @cb_func={0x18, 0x1, 0x4, 0x0, 0xfffffffffffffff9}], &(0x7f0000000900)='GPL\x00', 0x7fffffff, 0x20, &(0x7f0000000940)=""/32, 0x0, 0x10, '\x00', r8, 0x1f, 0xffffffffffffffff, 0x8, &(0x7f0000000a00)={0x5, 0x2}, 0x8, 0x10, &(0x7f0000000a40)={0x5, 0x4, 0xcf, 0x4}, 0x10, 0xffffffffffffffff, 0xffffffffffffffff, 0x0, &(0x7f0000000cc0)=[0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r11, r12, 0x4}, 0x10) 19:51:40 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r1, 0x0, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:40 executing program 5: r0 = openat(0xffffffffffffff9c, &(0x7f0000000200)='./cgroup\x00', 0x0, 0x0) r1 = socket(0xa, 0x802, 0x0) open_by_handle_at(r0, &(0x7f0000000000)=ANY=[@ANYRES16=r1], 0x0) 19:51:40 executing program 0: mkdirat(0xffffffffffffff9c, &(0x7f0000001500)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000180)='./file0\x00', &(0x7f0000000240)='devtmpfs\x00', 0x0, 0x0) lgetxattr(&(0x7f0000000140)='./file0\x00', &(0x7f00000001c0)=@known='trusted.overlay.nlink\x00', 0x0, 0x0) 19:51:40 executing program 2: openat(0xffffffffffffff9c, &(0x7f0000000080)='./bus\x00', 0x5a042, 0x0) r0 = openat(0xffffffffffffff9c, &(0x7f0000004400)='./bus\x00', 0x2, 0x0) fcntl$F_SET_FILE_RW_HINT(r0, 0x40e, &(0x7f0000000000)=0x2) sendfile(r0, r0, 0x0, 0x2) 19:51:40 executing program 3: r0 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000080), 0x2, 0x0) ioctl$int_in(r0, 0x40000000af01, 0x0) socket$packet(0x11, 0x3, 0x300) ioctl$VHOST_SET_MEM_TABLE(r0, 0x4008af03, &(0x7f00000007c0)=ANY=[]) ioctl$VHOST_SET_VRING_ADDR(r0, 0x4028af11, &(0x7f0000000140)={0x0, 0x0, 0x0, &(0x7f0000000900)=""/76, 0x0}) ioctl$VHOST_RESET_OWNER(r0, 0xaf02, 0x0) 19:51:40 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r1, 0x0, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:40 executing program 5: mkdirat(0xffffffffffffff9c, &(0x7f0000000100)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000180)='./file0\x00', &(0x7f0000000240)='devtmpfs\x00', 0x0, 0x0) chdir(&(0x7f0000000200)='./file0\x00') mount$overlay(0x0, &(0x7f0000000040)='./bus\x00', &(0x7f00000002c0), 0x0, &(0x7f0000000080)=ANY=[@ANYBLOB='workdir=./file1,lowerdir=.:file0,upperdir=./bus,index=on']) 19:51:40 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="180100001c0000000000000000000004850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={0x0, r0}, 0x10) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x4c, 0x1e, 0x109, 0x0, 0x0, {}, [{0x38, 0x1, [@m_vlan={0x34, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x6, 0x6, 'z\v'}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x4c}}, 0x0) r3 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r3, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r3, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r4}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x48, 0x1e, 0x109, 0x0, 0x0, {}, [{0x34, 0x1, [@m_vlan={0x30, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x4}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x48}}, 0x0) r6 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r6, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r6, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r7}) sendmsg$nl_route_sched(r5, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=@delqdisc={0x2c, 0x25, 0x4, 0x70bd2b, 0x0, {0x0, 0x0, 0x0, r7, {0xc, 0x4}, {0x5, 0xa}, {0xe, 0xffe0}}, [@TCA_RATE={0x6, 0x5, {0xb6, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) sendmsg$MPTCP_PM_CMD_FLUSH_ADDRS(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)={0x74, 0x0, 0x800, 0x70bd2a, 0x25dfdbfb, {}, [@MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x3}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0x2}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8, 0x7, r4}, @MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0x80}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_ADDR={0x18, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8}]}, 0x74}, 0x1, 0x0, 0x0, 0x40}, 0x20004015) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f0000000040)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r4, 0x7800, 0x40, 0x4, 0x4, {{0x5, 0x4, 0x2, 0x1, 0x14, 0x66, 0x0, 0xff, 0x4, 0x0, @private=0xa010100, @broadcast}}}}) r9 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r9, r10, 0x4}, 0x10) bpf$BPF_GET_BTF_INFO(0xf, &(0x7f0000000700)={0xffffffffffffffff, 0x20, &(0x7f00000006c0)={&(0x7f0000000580)=""/206, 0xce, 0x0, &(0x7f0000000680)=""/58, 0x3a}}, 0x10) bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000d00)={0x18, 0xa, &(0x7f0000000880)=@raw=[@exit, @exit, @initr0={0x18, 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0, 0x0, 0x1}, @ldst={0x2, 0x0, 0x0, 0x4, 0x2, 0xffffffffffffffe0}, @cb_func={0x18, 0x1, 0x4, 0x0, 0x8}, @alu={0x7, 0x0, 0x6, 0x5, 0x9, 0x100, 0x10}, @cb_func={0x18, 0x1, 0x4, 0x0, 0xfffffffffffffff9}], &(0x7f0000000900)='GPL\x00', 0x7fffffff, 0x20, &(0x7f0000000940)=""/32, 0x0, 0x10, '\x00', r8, 0x1f, 0xffffffffffffffff, 0x8, &(0x7f0000000a00)={0x5, 0x2}, 0x8, 0x10, &(0x7f0000000a40)={0x5, 0x4, 0xcf, 0x4}, 0x10, 0xffffffffffffffff, 0xffffffffffffffff, 0x0, &(0x7f0000000cc0)=[0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) pipe(&(0x7f0000000000)) 19:51:40 executing program 0: syz_io_uring_setup(0x2953, &(0x7f0000000040)={0x0, 0x9d19, 0x8}, &(0x7f0000ffe000/0x2000)=nil, &(0x7f0000ff9000/0x4000)=nil, &(0x7f0000000140), &(0x7f0000000100)) 19:51:40 executing program 2: bpf$BPF_BTF_LOAD(0x12, &(0x7f0000000480)={&(0x7f00000006c0)=ANY=[@ANYBLOB="9feb01001800000000000000d0000000d000000009000000030000000000000e0200000001000000080000001000000100000000610003070600000000000002000000000d00000007000005040000000e00000000000000020000000e00000009000000040000007f0000000300000005000000001000001000000002000000070000000f00000002000000040000000600000001000000000080b101000000000000010000000069001e030e00000000000009030000000e0000000000000700000000030011000200000604000000030000000000800f050000001f000000002e5f5f4f5f3000001fc355"], &(0x7f00000003c0)=""/191, 0xf1, 0xbf, 0x1}, 0x20) 19:51:40 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x24, r1, 0x0, 0x0, 0x0, {{}, {@val={0x8}, @void}}, [@NL80211_ATTR_IFTYPE={0x8, 0x5, 0x2}]}, 0x24}}, 0x0) 19:51:40 executing program 3: r0 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000080), 0x2, 0x0) ioctl$int_in(r0, 0x40000000af01, 0x0) socket$packet(0x11, 0x3, 0x300) ioctl$VHOST_SET_MEM_TABLE(r0, 0x4008af03, &(0x7f00000007c0)=ANY=[]) ioctl$VHOST_SET_VRING_ADDR(r0, 0x4028af11, &(0x7f0000000140)={0x0, 0x0, 0x0, &(0x7f0000000900)=""/76, 0x0}) ioctl$VHOST_RESET_OWNER(r0, 0xaf02, 0x0) 19:51:40 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="180100001c0000000000000000000004850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={0x0, r0}, 0x10) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x4c, 0x1e, 0x109, 0x0, 0x0, {}, [{0x38, 0x1, [@m_vlan={0x34, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x6, 0x6, 'z\v'}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x4c}}, 0x0) r3 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r3, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r3, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r4}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x48, 0x1e, 0x109, 0x0, 0x0, {}, [{0x34, 0x1, [@m_vlan={0x30, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x4}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x48}}, 0x0) r6 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r6, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r6, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r7}) sendmsg$nl_route_sched(r5, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=@delqdisc={0x2c, 0x25, 0x4, 0x70bd2b, 0x0, {0x0, 0x0, 0x0, r7, {0xc, 0x4}, {0x5, 0xa}, {0xe, 0xffe0}}, [@TCA_RATE={0x6, 0x5, {0xb6, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) sendmsg$MPTCP_PM_CMD_FLUSH_ADDRS(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)={0x74, 0x0, 0x800, 0x70bd2a, 0x25dfdbfb, {}, [@MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x3}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0x2}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8, 0x7, r4}, @MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0x80}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_ADDR={0x18, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8}]}, 0x74}, 0x1, 0x0, 0x0, 0x40}, 0x20004015) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f0000000040)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r4, 0x7800, 0x40, 0x4, 0x4, {{0x5, 0x4, 0x2, 0x1, 0x14, 0x66, 0x0, 0xff, 0x4, 0x0, @private=0xa010100, @broadcast}}}}) r9 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r9, r10, 0x4}, 0x10) bpf$BPF_GET_BTF_INFO(0xf, &(0x7f0000000700)={0xffffffffffffffff, 0x20, &(0x7f00000006c0)={&(0x7f0000000580)=""/206, 0xce, 0x0, &(0x7f0000000680)=""/58, 0x3a}}, 0x10) bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000d00)={0x18, 0xa, &(0x7f0000000880)=@raw=[@exit, @exit, @initr0={0x18, 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0, 0x0, 0x1}, @ldst={0x2, 0x0, 0x0, 0x4, 0x2, 0xffffffffffffffe0}, @cb_func={0x18, 0x1, 0x4, 0x0, 0x8}, @alu={0x7, 0x0, 0x6, 0x5, 0x9, 0x100, 0x10}, @cb_func={0x18, 0x1, 0x4, 0x0, 0xfffffffffffffff9}], &(0x7f0000000900)='GPL\x00', 0x7fffffff, 0x20, &(0x7f0000000940)=""/32, 0x0, 0x10, '\x00', r8, 0x1f, 0xffffffffffffffff, 0x8, &(0x7f0000000a00)={0x5, 0x2}, 0x8, 0x10, &(0x7f0000000a40)={0x5, 0x4, 0xcf, 0x4}, 0x10, 0xffffffffffffffff, 0xffffffffffffffff, 0x0, &(0x7f0000000cc0)=[0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) [ 256.711946][ T4957] overlayfs: failed to resolve './file1': -2 19:51:40 executing program 5: mkdirat(0xffffffffffffff9c, &(0x7f0000001500)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000180)='./file0\x00', &(0x7f0000000240)='devtmpfs\x00', 0x0, 0x0) r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000180)='cpuset.effective_mems\x00', 0x275a, 0x0) write$FUSE_INTERRUPT(r0, &(0x7f0000000080)={0x10}, 0x10) mmap(&(0x7f0000000000/0x3000)=nil, 0x3000, 0x7fffff, 0x40000000011, r0, 0x0) r1 = openat2$dir(0xffffffffffffff9c, &(0x7f0000000080)='./file0\x00', &(0x7f00000000c0), 0x18) getdents64(r1, &(0x7f0000000280)=""/4096, 0x1000) 19:51:40 executing program 2: mkdirat(0xffffffffffffff9c, &(0x7f0000000100)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000180)='./file0\x00', &(0x7f0000000240)='devtmpfs\x00', 0x0, 0x0) chdir(&(0x7f0000000200)='./file0\x00') mount$overlay(0x0, &(0x7f0000000040)='./bus\x00', &(0x7f00000002c0), 0x8, &(0x7f0000000080)=ANY=[@ANYBLOB='workdir=./file1,lowerdir=.:file0,upperdir=./bus,index=on']) 19:51:40 executing program 0: r0 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r0, &(0x7f0000000100)={0xa, 0x4e22}, 0x1c) listen(r0, 0x0) syz_emit_ethernet(0x4a, &(0x7f00000001c0)={@local, @local, @void, {@ipv6={0x86dd, @tcp={0x0, 0x6, "0a3ff2", 0x14, 0x6, 0x0, @remote, @local, {[], {{0x0, 0x4e22, 0x41424344, 0x41424344, 0x0, 0x0, 0x5, 0x2}}}}}}}, 0x0) syz_emit_ethernet(0x4a, &(0x7f0000000140)={@local, @local, @void, {@ipv6={0x86dd, @tcp={0x0, 0x6, "0a3ff2", 0x14, 0x6, 0x0, @remote, @local, {[], {{0x0, 0x4e22, 0x41424344, 0x41424344, 0x0, 0x0, 0x5, 0x2}}}}}}}, 0x0) 19:51:40 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="180100001c0000000000000000000004850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={0x0, r0}, 0x10) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x4c, 0x1e, 0x109, 0x0, 0x0, {}, [{0x38, 0x1, [@m_vlan={0x34, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x6, 0x6, 'z\v'}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x4c}}, 0x0) r3 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r3, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r3, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r4}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x48, 0x1e, 0x109, 0x0, 0x0, {}, [{0x34, 0x1, [@m_vlan={0x30, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x4}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x48}}, 0x0) r6 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r6, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r6, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r7}) sendmsg$nl_route_sched(r5, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=@delqdisc={0x2c, 0x25, 0x4, 0x70bd2b, 0x0, {0x0, 0x0, 0x0, r7, {0xc, 0x4}, {0x5, 0xa}, {0xe, 0xffe0}}, [@TCA_RATE={0x6, 0x5, {0xb6, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) sendmsg$MPTCP_PM_CMD_FLUSH_ADDRS(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)={0x74, 0x0, 0x800, 0x70bd2a, 0x25dfdbfb, {}, [@MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x3}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0x2}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8, 0x7, r4}, @MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0x80}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_ADDR={0x18, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8}]}, 0x74}, 0x1, 0x0, 0x0, 0x40}, 0x20004015) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f0000000040)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r4, 0x7800, 0x40, 0x4, 0x4, {{0x5, 0x4, 0x2, 0x1, 0x14, 0x66, 0x0, 0xff, 0x4, 0x0, @private=0xa010100, @broadcast}}}}) r8 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r8, r9, 0x4}, 0x10) bpf$BPF_GET_BTF_INFO(0xf, &(0x7f0000000700)={0xffffffffffffffff, 0x20, &(0x7f00000006c0)={&(0x7f0000000580)=""/206, 0xce, 0x0, &(0x7f0000000680)=""/58, 0x3a}}, 0x10) bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) 19:51:40 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000200), 0xffffffffffffffff) sendmsg$NL80211_CMD_SET_INTERFACE(r0, &(0x7f0000000340)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000240)={0x1c, r1, 0x5, 0x0, 0x0, {{}, {@val={0x8}, @void}}}, 0x1c}}, 0x0) 19:51:40 executing program 5: mkdirat(0xffffffffffffff9c, &(0x7f0000001500)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000180)='./file0\x00', &(0x7f0000000240)='devtmpfs\x00', 0x0, 0x0) r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000180)='cpuset.effective_mems\x00', 0x275a, 0x0) write$FUSE_INTERRUPT(r0, &(0x7f0000000080)={0x10}, 0x10) mmap(&(0x7f0000000000/0x3000)=nil, 0x3000, 0x7fffff, 0x40000000011, r0, 0x0) r1 = openat2$dir(0xffffffffffffff9c, &(0x7f0000000080)='./file0\x00', &(0x7f00000000c0), 0x18) getdents64(r1, &(0x7f0000000280)=""/4096, 0x1000) [ 256.881793][ T4972] overlayfs: failed to resolve './file1': -2 [ 256.883369][ T4976] TCP: request_sock_TCPv6: Possible SYN flooding on port 20002. Sending cookies. Check SNMP counters. 19:51:40 executing program 0: r0 = socket$inet6_tcp(0xa, 0x1, 0x0) bind$inet6(r0, &(0x7f0000000100)={0xa, 0x4e22}, 0x1c) listen(r0, 0x0) syz_emit_ethernet(0x4a, &(0x7f00000001c0)={@local, @local, @void, {@ipv6={0x86dd, @tcp={0x0, 0x6, "0a3ff2", 0x14, 0x6, 0x0, @remote, @local, {[], {{0x0, 0x4e22, 0x41424344, 0x41424344, 0x0, 0x0, 0x5, 0x2}}}}}}}, 0x0) syz_emit_ethernet(0x4a, &(0x7f0000000140)={@local, @local, @void, {@ipv6={0x86dd, @tcp={0x0, 0x6, "0a3ff2", 0x14, 0x6, 0x0, @remote, @local, {[], {{0x0, 0x4e22, 0x41424344, 0x41424344, 0x0, 0x0, 0x5, 0x2}}}}}}}, 0x0) 19:51:40 executing program 2: r0 = syz_open_procfs(0x0, &(0x7f0000000040)='net/ip_tables_targets\x00') read$alg(r0, &(0x7f0000001740)=""/33, 0xa89) 19:51:40 executing program 3: r0 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000080), 0x2, 0x0) ioctl$int_in(r0, 0x40000000af01, 0x0) r1 = socket$packet(0x11, 0x3, 0x300) ioctl$VHOST_SET_MEM_TABLE(r0, 0x4008af03, &(0x7f00000007c0)=ANY=[]) ioctl$VHOST_NET_SET_BACKEND(r0, 0x4008af30, &(0x7f0000f1dff8)={0x0, r1}) ioctl$VHOST_RESET_OWNER(r0, 0xaf02, 0x0) 19:51:40 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="180100001c0000000000000000000004850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={0x0, r0}, 0x10) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x4c, 0x1e, 0x109, 0x0, 0x0, {}, [{0x38, 0x1, [@m_vlan={0x34, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x6, 0x6, 'z\v'}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x4c}}, 0x0) r3 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r3, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r3, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r4}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x48, 0x1e, 0x109, 0x0, 0x0, {}, [{0x34, 0x1, [@m_vlan={0x30, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x4}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x48}}, 0x0) r6 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r6, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r6, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r7}) sendmsg$nl_route_sched(r5, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=@delqdisc={0x2c, 0x25, 0x4, 0x70bd2b, 0x0, {0x0, 0x0, 0x0, r7, {0xc, 0x4}, {0x5, 0xa}, {0xe, 0xffe0}}, [@TCA_RATE={0x6, 0x5, {0xb6, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) sendmsg$MPTCP_PM_CMD_FLUSH_ADDRS(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)={0x74, 0x0, 0x800, 0x70bd2a, 0x25dfdbfb, {}, [@MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x3}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0x2}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8, 0x7, r4}, @MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0x80}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_ADDR={0x18, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8}]}, 0x74}, 0x1, 0x0, 0x0, 0x40}, 0x20004015) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f0000000040)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r4, 0x7800, 0x40, 0x4, 0x4, {{0x5, 0x4, 0x2, 0x1, 0x14, 0x66, 0x0, 0xff, 0x4, 0x0, @private=0xa010100, @broadcast}}}}) r8 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r8, r9, 0x4}, 0x10) bpf$BPF_GET_BTF_INFO(0xf, &(0x7f0000000700)={0xffffffffffffffff, 0x20, &(0x7f00000006c0)={&(0x7f0000000580)=""/206, 0xce, 0x0, &(0x7f0000000680)=""/58, 0x3a}}, 0x10) 19:51:40 executing program 1: openat$vnet(0xffffffffffffff9c, &(0x7f0000000080), 0x2, 0x0) socket$packet(0x11, 0x3, 0x300) socket$inet6_tcp(0xa, 0x1, 0x0) r0 = socket$inet_icmp_raw(0x2, 0x3, 0x1) dup(r0) r1 = socket$inet_icmp_raw(0x2, 0x3, 0x1) r2 = dup(r1) sendmsg$inet(r2, &(0x7f0000000780)={&(0x7f0000000100)={0x2, 0x0, @multicast1}, 0x10, &(0x7f0000001600)=[{&(0x7f0000000140)="be38", 0xffdf}], 0x1, &(0x7f0000000c80)=ANY=[@ANYBLOB="1c000000000000000000000008000000", @ANYRES32=r1, @ANYBLOB="ac1414aa00000000000000001c000000000000000000000007"], 0x40}, 0x0) 19:51:40 executing program 2: syz_io_uring_setup(0x10c8, &(0x7f0000000300), &(0x7f0000ffa000/0x6000)=nil, &(0x7f0000ffd000/0x2000)=nil, &(0x7f0000000380), 0x0) syz_io_uring_setup(0x2953, &(0x7f0000000040)={0x0, 0x9d19, 0x0, 0x0, 0x331}, &(0x7f0000ffe000/0x2000)=nil, &(0x7f0000ff9000/0x4000)=nil, &(0x7f0000000140), &(0x7f0000000100)) accept4$alg(0xffffffffffffffff, 0x0, 0x0, 0x80c00) 19:51:40 executing program 5: mkdirat(0xffffffffffffff9c, &(0x7f0000001500)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000180)='./file0\x00', &(0x7f0000000240)='devtmpfs\x00', 0x0, 0x0) lgetxattr(&(0x7f0000000140)='./file0\x00', &(0x7f00000001c0)=@known='trusted.overlay.nlink\x00', &(0x7f0000000200)=""/19, 0x13) 19:51:40 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="180100001c0000000000000000000004850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={0x0, r0}, 0x10) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x4c, 0x1e, 0x109, 0x0, 0x0, {}, [{0x38, 0x1, [@m_vlan={0x34, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x6, 0x6, 'z\v'}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x4c}}, 0x0) r3 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r3, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r3, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r4}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x48, 0x1e, 0x109, 0x0, 0x0, {}, [{0x34, 0x1, [@m_vlan={0x30, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x4}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x48}}, 0x0) r6 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r6, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r6, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r7}) sendmsg$nl_route_sched(r5, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=@delqdisc={0x2c, 0x25, 0x4, 0x70bd2b, 0x0, {0x0, 0x0, 0x0, r7, {0xc, 0x4}, {0x5, 0xa}, {0xe, 0xffe0}}, [@TCA_RATE={0x6, 0x5, {0xb6, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) sendmsg$MPTCP_PM_CMD_FLUSH_ADDRS(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)={0x74, 0x0, 0x800, 0x70bd2a, 0x25dfdbfb, {}, [@MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x3}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0x2}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8, 0x7, r4}, @MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0x80}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_ADDR={0x18, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8}]}, 0x74}, 0x1, 0x0, 0x0, 0x40}, 0x20004015) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f0000000040)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r4, 0x7800, 0x40, 0x4, 0x4, {{0x5, 0x4, 0x2, 0x1, 0x14, 0x66, 0x0, 0xff, 0x4, 0x0, @private=0xa010100, @broadcast}}}}) r8 = bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) pipe(&(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) bpf$BPF_PROG_DETACH(0x9, &(0x7f0000000180)={@map=r8, r9, 0x4}, 0x10) [ 257.061290][ T4988] TCP: request_sock_TCPv6: Possible SYN flooding on port 20002. Sending cookies. Check SNMP counters. 19:51:40 executing program 1: r0 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000080), 0x2, 0x0) ioctl$int_in(r0, 0x40000000af01, 0x0) r1 = socket$packet(0x11, 0x3, 0x300) ioctl$VHOST_SET_MEM_TABLE(r0, 0x4008af03, &(0x7f00000007c0)=ANY=[]) ioctl$VHOST_SET_VRING_ADDR(r0, 0x4028af11, &(0x7f0000000140)={0x0, 0x0, 0x0, &(0x7f0000000900)=""/76, 0x0}) ioctl$VHOST_NET_SET_BACKEND(r0, 0x4008af30, &(0x7f0000f1dff8)={0x0, r1}) ioctl$VHOST_SET_MEM_TABLE(r0, 0x4008af04, &(0x7f0000000180)=ANY=[]) 19:51:40 executing program 3: r0 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000080), 0x2, 0x0) ioctl$int_in(r0, 0x40000000af01, 0x0) r1 = socket$packet(0x11, 0x3, 0x300) ioctl$VHOST_SET_MEM_TABLE(r0, 0x4008af03, &(0x7f00000007c0)=ANY=[]) ioctl$VHOST_NET_SET_BACKEND(r0, 0x4008af30, &(0x7f0000f1dff8)={0x0, r1}) ioctl$VHOST_RESET_OWNER(r0, 0xaf02, 0x0) 19:51:40 executing program 0: bpf$BPF_PROG_WITH_BTFID_LOAD(0x5, &(0x7f0000000280)=@bpf_lsm={0x1d, 0x1, &(0x7f0000000040)=@raw=[@kfunc={0x85, 0x0, 0x2, 0x0, 0x7d01}], &(0x7f0000000080)='GPL\x00', 0x5, 0xad, &(0x7f00000000c0)=""/173, 0x0, 0x0, '\x00', 0x0, 0x1b, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 19:51:40 executing program 2: mkdirat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', 0x0) r0 = openat2$dir(0xffffffffffffff9c, &(0x7f00000000c0)='./file0\x00', &(0x7f0000000080), 0x18) ioctl$FS_IOC_SET_ENCRYPTION_POLICY(r0, 0x800c6613, &(0x7f0000000040)=@v1={0x0, @aes128, 0x0, @desc3}) ioctl$FS_IOC_GET_ENCRYPTION_POLICY_EX(r0, 0xc0096616, &(0x7f0000000100)=ANY=[]) 19:51:40 executing program 5: r0 = openat(0xffffffffffffff9c, &(0x7f0000000200)='./cgroup\x00', 0x0, 0x0) open_by_handle_at(r0, &(0x7f0000000000)=ANY=[@ANYBLOB="0c000000010000000c04"], 0x0) 19:51:40 executing program 0: socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000dc0)={0xffffffffffffffff, 0xffffffffffffffff}) recvmsg(r0, &(0x7f00000002c0)={0x0, 0x0, 0x0}, 0x0) recvmsg(r0, &(0x7f00000007c0)={0x0, 0x0, 0x0}, 0x0) close(r1) 19:51:40 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="180100001c0000000000000000000004850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={0x0, r0}, 0x10) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x4c, 0x1e, 0x109, 0x0, 0x0, {}, [{0x38, 0x1, [@m_vlan={0x34, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x6, 0x6, 'z\v'}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x4c}}, 0x0) r3 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r3, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r3, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r4}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x48, 0x1e, 0x109, 0x0, 0x0, {}, [{0x34, 0x1, [@m_vlan={0x30, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x4}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x48}}, 0x0) r6 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r6, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r6, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r7}) sendmsg$nl_route_sched(r5, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=@delqdisc={0x2c, 0x25, 0x4, 0x70bd2b, 0x0, {0x0, 0x0, 0x0, r7, {0xc, 0x4}, {0x5, 0xa}, {0xe, 0xffe0}}, [@TCA_RATE={0x6, 0x5, {0xb6, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) sendmsg$MPTCP_PM_CMD_FLUSH_ADDRS(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)={0x74, 0x0, 0x800, 0x70bd2a, 0x25dfdbfb, {}, [@MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x3}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0x2}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8, 0x7, r4}, @MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0x80}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_ADDR={0x18, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8}]}, 0x74}, 0x1, 0x0, 0x0, 0x40}, 0x20004015) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f0000000040)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r4, 0x7800, 0x40, 0x4, 0x4, {{0x5, 0x4, 0x2, 0x1, 0x14, 0x66, 0x0, 0xff, 0x4, 0x0, @private=0xa010100, @broadcast}}}}) bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) pipe(&(0x7f0000000000)) 19:51:40 executing program 3: r0 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000080), 0x2, 0x0) ioctl$int_in(r0, 0x40000000af01, 0x0) r1 = socket$packet(0x11, 0x3, 0x300) ioctl$VHOST_SET_MEM_TABLE(r0, 0x4008af03, &(0x7f00000007c0)=ANY=[]) ioctl$VHOST_NET_SET_BACKEND(r0, 0x4008af30, &(0x7f0000f1dff8)={0x0, r1}) ioctl$VHOST_RESET_OWNER(r0, 0xaf02, 0x0) 19:51:40 executing program 1: r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0x10, 0x803, 0x0) syz_genetlink_get_family_id$nl80211(&(0x7f00000003c0), r1) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)=0xa) sendmsg$nl_route(r1, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000280)=ANY=[@ANYBLOB="4800000010000507000000000000000000000002", @ANYRES32=r2, @ANYBLOB="0000400000000002280012000c00010076657468"], 0x48}}, 0x0) r3 = socket$inet6_udplite(0xa, 0x2, 0x88) ioctl$sock_ipv6_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f00000000c0)={'syztnl2\x00', &(0x7f0000000180)={'ip6gre0\x00', r2, 0x4, 0xf8, 0xc7, 0x5, 0x1, @empty, @private2, 0x80, 0x40, 0x1, 0x406c}}) ioctl$sock_ipv6_tunnel_SIOCADDTUNNEL(r3, 0x89f1, &(0x7f0000000240)={'syztnl2\x00', &(0x7f00000002c0)={'ip6gre0\x00', r4, 0x4, 0x1, 0x7, 0xd4, 0x58b3d68df197d0b2, @remote, @dev={0xfe, 0x80, '\x00', 0x17}, 0x7, 0x1, 0x200, 0x7}}) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000440)=ANY=[@ANYBLOB="2800000014002101000000000000000002200000", @ANYRES32=r2, @ANYBLOB="08000400ffffffff08000200e0"], 0x28}}, 0x0) socket$nl_route(0x10, 0x3, 0x0) r5 = socket$nl_route(0x10, 0x3, 0x0) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)=0x14) sendmsg$nl_route(r5, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000440)=ANY=[@ANYBLOB="280000001400210100000000000000000200"], 0x28}}, 0x0) [ 257.265786][ T5011] syz-executor.2 (pid 5011) is setting deprecated v1 encryption policy; recommend upgrading to v2. 19:51:40 executing program 2: socketpair(0x0, 0x4, 0x800, 0x0) syz_io_uring_setup(0x10c8, &(0x7f0000000300), &(0x7f0000ffa000/0x6000)=nil, &(0x7f0000ffd000/0x2000)=nil, &(0x7f0000000380), &(0x7f00000003c0)) ioctl$sock_ipv6_tunnel_SIOCCHG6RD(0xffffffffffffffff, 0x89fb, 0x0) bpf$BPF_GET_MAP_INFO(0xf, 0x0, 0x0) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(0xffffffffffffffff, 0x89f1, 0x0) ioctl$ifreq_SIOCGIFINDEX_vcan(0xffffffffffffffff, 0x8933, &(0x7f0000000700)={'vxcan0\x00'}) ioctl$sock_ipv6_tunnel_SIOCADDTUNNEL(0xffffffffffffffff, 0x89f1, 0x0) ioctl$sock_ipv4_tunnel_SIOCGETTUNNEL(0xffffffffffffffff, 0x89f0, &(0x7f0000000cc0)={'syztnl0\x00', 0x0}) socket$inet6_udplite(0xa, 0x2, 0x88) 19:51:40 executing program 5: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_genetlink_get_family_id$team(&(0x7f0000000300), 0xffffffffffffffff) sendmsg$TEAM_CMD_OPTIONS_GET(r0, &(0x7f0000001180)={0x0, 0x0, &(0x7f0000001140)={&(0x7f0000000ac0)={0x20, r1, 0x1, 0x0, 0x0, {}, [{{0x8}, {0x4}}]}, 0x20}}, 0x0) 19:51:41 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="180100001c0000000000000000000004850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={0x0, r0}, 0x10) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x4c, 0x1e, 0x109, 0x0, 0x0, {}, [{0x38, 0x1, [@m_vlan={0x34, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x6, 0x6, 'z\v'}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x4c}}, 0x0) r3 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r3, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r3, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r4}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x48, 0x1e, 0x109, 0x0, 0x0, {}, [{0x34, 0x1, [@m_vlan={0x30, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x4}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x48}}, 0x0) r6 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r6, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r6, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r7}) sendmsg$nl_route_sched(r5, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=@delqdisc={0x2c, 0x25, 0x4, 0x70bd2b, 0x0, {0x0, 0x0, 0x0, r7, {0xc, 0x4}, {0x5, 0xa}, {0xe, 0xffe0}}, [@TCA_RATE={0x6, 0x5, {0xb6, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) sendmsg$MPTCP_PM_CMD_FLUSH_ADDRS(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)={0x74, 0x0, 0x800, 0x70bd2a, 0x25dfdbfb, {}, [@MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x3}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0x2}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8, 0x7, r4}, @MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0x80}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_ADDR={0x18, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8}]}, 0x74}, 0x1, 0x0, 0x0, 0x40}, 0x20004015) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f0000000040)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r4, 0x7800, 0x40, 0x4, 0x4, {{0x5, 0x4, 0x2, 0x1, 0x14, 0x66, 0x0, 0xff, 0x4, 0x0, @private=0xa010100, @broadcast}}}}) bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) 19:51:41 executing program 3: r0 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000080), 0x2, 0x0) ioctl$int_in(r0, 0x40000000af01, 0x0) r1 = socket$packet(0x11, 0x3, 0x300) ioctl$VHOST_SET_VRING_ADDR(r0, 0x4028af11, &(0x7f0000000140)={0x0, 0x0, 0x0, &(0x7f0000000900)=""/76, 0x0}) ioctl$VHOST_NET_SET_BACKEND(r0, 0x4008af30, &(0x7f0000f1dff8)={0x0, r1}) ioctl$VHOST_RESET_OWNER(r0, 0xaf02, 0x0) [ 257.379554][ T5018] netlink: 24 bytes leftover after parsing attributes in process `syz-executor.1'. 19:51:41 executing program 2: r0 = socket(0x2c, 0x3, 0x0) getsockopt$inet_udp_int(r0, 0x11b, 0x0, 0x0, 0x0) 19:51:41 executing program 5: r0 = openat(0xffffffffffffff9c, &(0x7f0000000200)='./cgroup\x00', 0x0, 0x0) open_by_handle_at(r0, &(0x7f0000000000)=ANY=[@ANYBLOB="0c000000010000000c"], 0x0) 19:51:41 executing program 0: bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x2, &(0x7f0000000000)=@raw=[@alu={0x7}, @jmp={0x5, 0x1, 0x9}], &(0x7f0000000040)='GPL\x00', 0x5, 0xde, &(0x7f0000000080)=""/222, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 19:51:41 executing program 2: bpf$MAP_CREATE(0x0, &(0x7f0000000f40)=@base={0x5, 0x0, 0x0, 0x0, 0x0, 0x1}, 0x48) 19:51:41 executing program 3: r0 = openat$vnet(0xffffffffffffff9c, &(0x7f0000000080), 0x2, 0x0) ioctl$int_in(r0, 0x40000000af01, 0x0) r1 = socket$packet(0x11, 0x3, 0x300) ioctl$VHOST_SET_VRING_ADDR(r0, 0x4028af11, &(0x7f0000000140)={0x0, 0x0, 0x0, &(0x7f0000000900)=""/76, 0x0}) ioctl$VHOST_NET_SET_BACKEND(r0, 0x4008af30, &(0x7f0000f1dff8)={0x0, r1}) ioctl$VHOST_RESET_OWNER(r0, 0xaf02, 0x0) [ 257.528698][ T5033] validate_nla: 70 callbacks suppressed [ 257.528716][ T5033] netlink: 'syz-executor.4': attribute type 9 has an invalid length. 19:51:41 executing program 2: bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x3, &(0x7f0000000180)=@framed={{0x18, 0x0, 0x5}}, &(0x7f0000000040)='GPL\x00', 0x5, 0xde, &(0x7f0000000080)=""/222, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) [ 257.575296][ T5044] ------------[ cut here ]------------ [ 257.581318][ T5044] WARNING: CPU: 1 PID: 5044 at fs/kernfs/dir.c:36 kernfs_active+0x119/0x150 [ 257.590229][ T5044] Modules linked in: [ 257.594147][ T5044] CPU: 1 PID: 5044 Comm: syz-executor.5 Not tainted 6.1.0-rc5-syzkaller-00144-g84368d882b96 #0 [ 257.604549][ T5044] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022 [ 257.614669][ T5044] RIP: 0010:kernfs_active+0x119/0x150 [ 257.620121][ T5044] Code: e8 83 e0 07 83 c0 03 38 d0 7c 04 84 d2 75 1f 8b 5b 04 31 ff 89 de e8 36 ca 7d ff 89 d8 5b f7 d0 5d c1 e8 1f c3 e8 77 cd 7d ff <0f> 0b eb a5 48 89 ef e8 1b 91 ca ff eb d7 48 c7 c7 4c 83 53 8e e8 [ 257.639802][ T5044] RSP: 0018:ffffc90004a87bc0 EFLAGS: 00010212 [ 257.645923][ T5044] RAX: 00000000000000bd RBX: ffff88801230abc8 RCX: ffffc9000b6b9000 [ 257.646723][ T5033] netlink: 'syz-executor.4': attribute type 7 has an invalid length. [ 257.653896][ T5044] RDX: 0000000000040000 RSI: ffffffff82024c09 RDI: 0000000000000005 [ 257.670020][ T5044] RBP: 0000000000000000 R08: 0000000000000005 R09: 0000000000000000 [ 257.678066][ T5044] R10: 0000000000000000 R11: 0000000000000000 R12: ffff88801230abc8 [ 257.686099][ T5044] R13: ffff888026cb6000 R14: 0000000000000000 R15: 0000000000000001 [ 257.694284][ T5044] FS: 00007fc79e977700(0000) GS:ffff8880b9b00000(0000) knlGS:0000000000000000 [ 257.703266][ T5044] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 257.709903][ T5044] CR2: 00007efee790d140 CR3: 000000001d5ba000 CR4: 0000000000350ee0 [ 257.717955][ T5044] Call Trace: [ 257.721257][ T5044] [ 257.724212][ T5044] kernfs_find_and_get_node_by_id+0x88/0x170 [ 257.730270][ T5044] __kernfs_fh_to_dentry+0xdb/0x270 [ 257.735507][ T5044] exportfs_decode_fh_raw+0x12b/0x7d0 [ 257.740953][ T5044] ? drop_caches_sysctl_handler+0x110/0x110 [ 257.746940][ T5044] ? kernfs_fh_to_parent+0x40/0x40 [ 257.752282][ T5044] ? reconnect_path+0x810/0x810 [ 257.757223][ T5044] ? find_held_lock+0x2d/0x110 [ 257.762034][ T5044] ? __fget_files+0x248/0x440 [ 257.766788][ T5044] ? lock_downgrade+0x6e0/0x6e0 [ 257.771696][ T5044] ? lock_downgrade+0x6e0/0x6e0 [ 257.776647][ T5044] ? __fget_files+0x26a/0x440 [ 257.781445][ T5044] ? drop_caches_sysctl_handler+0x110/0x110 [ 257.787412][ T5044] exportfs_decode_fh+0x3c/0x90 [ 257.787558][ T5033] netlink: 'syz-executor.4': attribute type 8 has an invalid length. [ 257.792312][ T5044] do_handle_open+0x2b6/0x8b0 [ 257.792347][ T5044] ? do_sys_name_to_handle+0x4c0/0x4c0 [ 257.792383][ T5044] ? syscall_enter_from_user_mode+0x26/0xb0 [ 257.792415][ T5044] do_syscall_64+0x39/0xb0 [ 257.821089][ T5044] entry_SYSCALL_64_after_hwframe+0x63/0xcd [ 257.827065][ T5044] RIP: 0033:0x7fc79dc8b639 [ 257.831505][ T5044] Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48 [ 257.851175][ T5044] RSP: 002b:00007fc79e977168 EFLAGS: 00000246 ORIG_RAX: 0000000000000130 [ 257.859685][ T5044] RAX: ffffffffffffffda RBX: 00007fc79ddabf80 RCX: 00007fc79dc8b639 [ 257.867710][ T5044] RDX: 0000000000000000 RSI: 0000000020000000 RDI: 0000000000000003 [ 257.875698][ T5044] RBP: 00007fc79dce6ae9 R08: 0000000000000000 R09: 0000000000000000 [ 257.883723][ T5044] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 [ 257.891743][ T5044] R13: 00007ffce587522f R14: 00007fc79e977300 R15: 0000000000022000 [ 257.899775][ T5044] [ 257.902806][ T5044] Kernel panic - not syncing: panic_on_warn set ... [ 257.909398][ T5044] CPU: 1 PID: 5044 Comm: syz-executor.5 Not tainted 6.1.0-rc5-syzkaller-00144-g84368d882b96 #0 19:51:41 executing program 4: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000200)={0x18, 0x4, &(0x7f00000002c0)=ANY=[@ANYBLOB="180100001c0000000000000000000004850000006d00000095"], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000040)={0x0, r0}, 0x10) r1 = socket$inet_udp(0x2, 0x2, 0x0) r2 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x4c, 0x1e, 0x109, 0x0, 0x0, {}, [{0x38, 0x1, [@m_vlan={0x34, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x6, 0x6, 'z\v'}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x4c}}, 0x0) r3 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r3, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r3, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r4}) r5 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r5, &(0x7f00000009c0)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newtaction={0x48, 0x1e, 0x109, 0x0, 0x0, {}, [{0x34, 0x1, [@m_vlan={0x30, 0x0, 0x0, 0x0, {{0x9, 0x9}, {0x4}, {0x4}, {0xc}, {0xc, 0x8, {0x1}}}}]}]}, 0x48}}, 0x0) r6 = socket$inet6(0xa, 0x3, 0x8) ioctl$ifreq_SIOCGIFINDEX_team(r6, 0x8933, &(0x7f0000000080)={'team0\x00', 0x0}) ioctl$sock_inet6_SIOCADDRT(r6, 0x890b, &(0x7f0000000000)={@rand_addr=' \x01\x00', @loopback, @ipv4={'\x00', '\xff\xff', @broadcast}, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0d200ea, r7}) sendmsg$nl_route_sched(r5, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)=@delqdisc={0x2c, 0x25, 0x4, 0x70bd2b, 0x0, {0x0, 0x0, 0x0, r7, {0xc, 0x4}, {0x5, 0xa}, {0xe, 0xffe0}}, [@TCA_RATE={0x6, 0x5, {0xb6, 0x7}}]}, 0x2c}, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) sendmsg$MPTCP_PM_CMD_FLUSH_ADDRS(0xffffffffffffffff, &(0x7f0000000200)={&(0x7f0000000100)={0x10, 0x0, 0x0, 0x800000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000140)={0x74, 0x0, 0x800, 0x70bd2a, 0x25dfdbfb, {}, [@MPTCP_PM_ATTR_ADDR={0x40, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x3}, @MPTCP_PM_ADDR_ATTR_FAMILY={0x6, 0x1, 0x2}, @MPTCP_PM_ADDR_ATTR_IF_IDX={0x8, 0x7, r4}, @MPTCP_PM_ADDR_ATTR_ID={0x5, 0x2, 0x80}, @MPTCP_PM_ADDR_ATTR_FLAGS={0x8, 0x6, 0x4}]}, @MPTCP_PM_ATTR_ADDR={0x18, 0x1, 0x0, 0x1, [@MPTCP_PM_ADDR_ATTR_ADDR6={0x14, 0x4, @remote}]}, @MPTCP_PM_ATTR_RCV_ADD_ADDRS={0x8}]}, 0x74}, 0x1, 0x0, 0x0, 0x40}, 0x20004015) sendmsg$nl_route_sched(r2, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x67e3c04481c0ce60}, 0xc, 0x0, 0x1, 0x0, 0x0, 0x2000c004}, 0x8010) ioctl$sock_ipv4_tunnel_SIOCADDTUNNEL(r1, 0x89f1, &(0x7f0000000040)={'tunl0\x00', &(0x7f0000000000)={'syztnl1\x00', r4, 0x7800, 0x40, 0x4, 0x4, {{0x5, 0x4, 0x2, 0x1, 0x14, 0x66, 0x0, 0xff, 0x4, 0x0, @private=0xa010100, @broadcast}}}}) bpf$MAP_CREATE(0x0, &(0x7f0000000180)=@base={0xb, 0x8, 0x10001, 0x9, 0x1}, 0x48) [ 257.919733][ T5044] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022 [ 257.929808][ T5044] Call Trace: [ 257.933099][ T5044] [ 257.936042][ T5044] dump_stack_lvl+0xd1/0x138 [ 257.940665][ T5044] panic+0x2cc/0x626 [ 257.944581][ T5044] ? panic_print_sys_info.part.0+0x110/0x110 [ 257.950635][ T5044] ? __warn.cold+0x24b/0x350 [ 257.955253][ T5044] ? kernfs_active+0x119/0x150 [ 257.960052][ T5044] __warn.cold+0x25c/0x350 [ 257.964502][ T5044] ? kernfs_active+0x119/0x150 [ 257.969308][ T5044] report_bug+0x1c0/0x210 [ 257.973670][ T5044] handle_bug+0x3c/0x70 [ 257.977869][ T5044] exc_invalid_op+0x18/0x50 [ 257.982398][ T5044] asm_exc_invalid_op+0x1a/0x20 [ 257.987263][ T5044] RIP: 0010:kernfs_active+0x119/0x150 [ 257.992662][ T5044] Code: e8 83 e0 07 83 c0 03 38 d0 7c 04 84 d2 75 1f 8b 5b 04 31 ff 89 de e8 36 ca 7d ff 89 d8 5b f7 d0 5d c1 e8 1f c3 e8 77 cd 7d ff <0f> 0b eb a5 48 89 ef e8 1b 91 ca ff eb d7 48 c7 c7 4c 83 53 8e e8 [ 258.012293][ T5044] RSP: 0018:ffffc90004a87bc0 EFLAGS: 00010212 [ 258.018385][ T5044] RAX: 00000000000000bd RBX: ffff88801230abc8 RCX: ffffc9000b6b9000 [ 258.026356][ T5044] RDX: 0000000000040000 RSI: ffffffff82024c09 RDI: 0000000000000005 [ 258.034318][ T5044] RBP: 0000000000000000 R08: 0000000000000005 R09: 0000000000000000 [ 258.042280][ T5044] R10: 0000000000000000 R11: 0000000000000000 R12: ffff88801230abc8 [ 258.050244][ T5044] R13: ffff888026cb6000 R14: 0000000000000000 R15: 0000000000000001 [ 258.058320][ T5044] ? kernfs_active+0x119/0x150 [ 258.063095][ T5044] kernfs_find_and_get_node_by_id+0x88/0x170 [ 258.069078][ T5044] __kernfs_fh_to_dentry+0xdb/0x270 [ 258.074281][ T5044] exportfs_decode_fh_raw+0x12b/0x7d0 [ 258.079672][ T5044] ? drop_caches_sysctl_handler+0x110/0x110 [ 258.085564][ T5044] ? kernfs_fh_to_parent+0x40/0x40 [ 258.090675][ T5044] ? reconnect_path+0x810/0x810 [ 258.095531][ T5044] ? find_held_lock+0x2d/0x110 [ 258.100301][ T5044] ? __fget_files+0x248/0x440 [ 258.104974][ T5044] ? lock_downgrade+0x6e0/0x6e0 [ 258.109831][ T5044] ? lock_downgrade+0x6e0/0x6e0 [ 258.114685][ T5044] ? __fget_files+0x26a/0x440 [ 258.119359][ T5044] ? drop_caches_sysctl_handler+0x110/0x110 [ 258.125251][ T5044] exportfs_decode_fh+0x3c/0x90 [ 258.130106][ T5044] do_handle_open+0x2b6/0x8b0 [ 258.134780][ T5044] ? do_sys_name_to_handle+0x4c0/0x4c0 [ 258.140237][ T5044] ? syscall_enter_from_user_mode+0x26/0xb0 [ 258.146130][ T5044] do_syscall_64+0x39/0xb0 [ 258.150546][ T5044] entry_SYSCALL_64_after_hwframe+0x63/0xcd [ 258.156434][ T5044] RIP: 0033:0x7fc79dc8b639 [ 258.160837][ T5044] Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48 [ 258.180527][ T5044] RSP: 002b:00007fc79e977168 EFLAGS: 00000246 ORIG_RAX: 0000000000000130 [ 258.188939][ T5044] RAX: ffffffffffffffda RBX: 00007fc79ddabf80 RCX: 00007fc79dc8b639 [ 258.196900][ T5044] RDX: 0000000000000000 RSI: 0000000020000000 RDI: 0000000000000003 [ 258.204856][ T5044] RBP: 00007fc79dce6ae9 R08: 0000000000000000 R09: 0000000000000000 [ 258.212814][ T5044] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 [ 258.220773][ T5044] R13: 00007ffce587522f R14: 00007fc79e977300 R15: 0000000000022000 [ 258.228748][ T5044] [ 258.232552][ T5044] Kernel Offset: disabled [ 258.237056][ T5044] Rebooting in 86400 seconds..