ca5fca6fca7fca8fca9fcaafcabfcacfcadfcaefcaffcb0fcb1fcb2fcb3fcb4fcb5fcb6fcb7fcb8fcb9fcbafcbbfcbcfcbdfcbefcbffcc0fcc1fcc2fcc3fcc4fcc5fcc6fcc7fcc8fcc9fccafccbfcccfccdfccefccffcd0fcd1fcd2fcd3fcd4fcd5fcd6fcd7fcd8fcd9fcdafcdbfcdcfcddfcdefcdffce0fce1fce2fce3fce4fce5fce6fce7fce8fce9fceafcebfcecfcedfceefceffcf0fcf1fcf2fcf3fcf4fcf5fcf6fcf7fcf8fcf9fcfafcfbfcfcfcfdfcfefcfffc00fd01fd02fd03fd04fd05fd06fd07fd08fd09fd0afd0bfd0cfd0dfd0efd0ffd10fd11fd12fd13fd14fd15fd16fd17fd18fd19fd1afd1bfd1cfd1dfd1efd1ffd20fd21fd22fd23fd24fd25fd26fd27fd28fd29fd2afd2bfd2cfd2dfd2efd2ffd30fd31fd32fd33fd34fd35fd36fd37fd38fd39fd3afd3bfd3cfd3dfd3efd3ffd40fd41fd42fd43fd44fd45fd46fd47fd48fd49fd4afd4bfd4cfd4dfd4efd4ffd50fd51fd52fd53fd54fd55fd56fd57fd58fd59fd5afd5bfd5cfd5dfd5efd5ffd60fd61fd62fd63fd64fd65fd66fd67fd68fd69fd6afd6bfd6cfd6dfd6efd6ffd70fd71fd72fd73fd74fd75fd76fd77fd78fd79fd7afd7bfd7cfd7dfd7efd7ffd80fd81fd82fd83fd84fd85fd86fd87fd88fd89fd8afd8bfd8cfd8dfd8efd8ffd90fd91fd92fd93fd94fd95fd96fd97fd98fd99fd9afd9bfd9cfd9dfd9efd9ffda0fda1fda2fda3fda4fda5fda6fda7fda8fda9fdaafdabfdacfdadfdaefdaffdb0fdb1fdb2fdb3fdb4fdb5fdb6fdb7fdb8fdb9fdbafdbbfdbcfdbdfdbefdbffdc0fdc1fdc2fdc3fdc4fdc5fdc6fdc7fdc8fdc9fdcafdcbfdccfdcdfdcefdcffdd0fdd1fdd2fdd3fdd4fdd5fdd6fdd7fdd8fdd9fddafddbfddcfdddfddefddffde0fde1fde2fde3fde4fde5fde6fde7fde8fde9fdeafdebfdecfdedfdeefdeffdf0fdf1fdf2fdf3fdf4fdf5fdf6fdf7fdf8fdf9fdfafdfbfdfcfdfdfdfefdfffd00fe01fe02fe03fe04fe05fe06fe07fe08fe09fe0afe0bfe0cfe0dfe0efe0ffe10fe11fe12fe13fe14fe15fe16fe17fe18fe19fe1afe1bfe1cfe1dfe1efe1ffe20fe21fe22fe23fe24fe25fe26fe27fe28fe29fe2afe2bfe2cfe2dfe2efe2ffe30fe31fe32fe33fe34fe35fe36fe37fe38fe39fe3afe3bfe3cfe3dfe3efe3ffe40fe41fe42fe43fe44fe45fe46fe47fe48fe49fe4afe4bfe4cfe4dfe4efe4ffe50fe51fe52fe53fe54fe55fe56fe57fe58fe59fe5afe5bfe5cfe5dfe5efe5ffe60fe61fe62fe63fe64fe65fe66fe67fe68fe69fe6afe6bfe6cfe6dfe6efe6ffe70fe71fe72fe73fe74fe75fe76fe77fe78fe79fe7afe7bfe7cfe7dfe7efe7ffe80fe81fe82fe83fe84fe85fe86fe87fe88fe89fe8afe8bfe8cfe8dfe8efe8ffe90fe91fe92fe93fe94fe95fe96fe97fe98fe99fe9afe9bfe9cfe9dfe9efe9ffea0fea1fea2fea3fea4fea5fea6fea7fea8fea9feaafeabfeacfeadfeaefeaffeb0feb1feb2feb3feb4feb5feb6feb7feb8feb9febafebbfebcfebdfebefebffec0fec1fec2fec3fec4fec5fec6fec7fec8fec9fecafecbfeccfecdfecefecffed0fed1fed2fed3fed4fed5fed6fed7fed8fed9fedafedbfedcfeddfedefedffee0fee1fee2fee3fee4fee5fee6fee7fee8fee9feeafeebfeecfeedfeeefeeffef0fef1fef2fef3fef4fef5fef6fef7fef8fef9fefafefbfefcfefdfefefefffe00ff01ff02ff03ff04ff05ff06ff07ff08ff09ff0aff0bff0cff0dff0eff0fff10ff11ff12ff13ff14ff15ff16ff17ff18ff19ff1aff1bff1cff1dff1eff1fff20ff21ff22ff23ff24ff25ff26ff27ff28ff29ff2aff2bff2cff2dff2eff2fff30ff31ff32ff33ff34ff35ff36ff37ff38ff39ff3aff3bff3cff3dff3eff3fff40ff21ff22ff23ff24ff25ff26ff27ff28ff29ff2aff2bff2cff2dff2eff2fff30ff31ff32ff33ff34ff35ff36ff37ff38ff39ff3aff5bff5cff5dff5eff5fff60ff61ff62ff63ff64ff65ff66ff67ff68ff69ff6aff6bff6cff6dff6eff6fff70ff71ff72ff73ff74ff75ff76ff77ff78ff79ff7aff7bff7cff7dff7eff7fff80ff81ff82ff83ff84ff85ff86ff87ff88ff89ff8aff8bff8cff8dff8eff8fff90ff91ff92ff93ff94ff95ff96ff97ff98ff99ff9aff9bff9cff9dff9eff9fffa0ffa1ffa2ffa3ffa4ffa5ffa6ffa7ffa8ffa9ffaaffabffacffadffaeffafffb0ffb1ffb2ffb3ffb4ffb5ffb6ffb7ffb8ffb9ffbaffbbffbcffbdffbeffbfffc0ffc1ffc2ffc3ffc4ffc5ffc6ffc7ffc8ffc9ffcaffcbffccffcdffceffcfffd0ffd1ffd2ffd3ffd4ffd5ffd6ffd7ffd8ffd9ffdaffdbffdcffddffdeffdfffe0ffe1ffe2ffe3ffe4ffe5ffe6ffe7ffe8ffe9ffeaffebffecffedffeeffeffff0fff1fff2fff3fff4fff5fff6fff7fff8fff9fffafffbfffcfffdfffeffffff", 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="00a34470412c912b2b4bb64e36c5a1b1b1800e5920fd1a3cf7fd58752e98ab5f6b4c92c7e52c9238716e4ab38324e8f0d61408b4294c2c9445ffc0fbbf1eb14118b7ee417599ff273eb55b616efbe727c670ad85f51941a818341c8fede1d1b8424a191f284600abc564a4460a7a2d3ff7d9a9b4dfaf44f552d461b8d43b43d6eb90ea6ae0dd230c518403e15ecb2f27839057c9a2591f760d17d29efc400b8ff1e6672f8a63e32e14900795cb36d0738775077047ddf4fcdf673088de120a540b3fde6de1a958223f362b80e00ea9c59a"], 0x1) r0 = open(&(0x7f00000000c0)='./bus\x00', 0x14da42, 0x0) write$binfmt_aout(r0, 0x0, 0x0) 03:40:43 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, 0x0, 0x0) 03:40:43 executing program 1: openat$dlm_plock(0xffffffffffffff9c, &(0x7f0000000540), 0x80000, 0x0) 03:40:44 executing program 4: fsopen(&(0x7f0000001480)='exofs\x00', 0x0) 03:40:44 executing program 1: unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x0, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$DRM_IOCTL_MODE_ATOMIC(0xffffffffffffffff, 0xc03864bc, 0x0) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) [ 752.442098][ T7633] usb 3-1: new low-speed USB device number 18 using dummy_hcd [ 752.504865][ T24] audit: type=1800 audit(1667965244.550:8): pid=9610 uid=0 auid=4294967295 ses=4294967295 subj=unconfined op=collect_data cause=failed(directio) comm="syz-executor.0" name="bus" dev="sda1" ino=1178 res=0 errno=0 03:40:44 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, 0x0, 0x0) [ 752.632232][ T7633] usb 3-1: device descriptor read/64, error 18 [ 752.832268][ T9608] loop0: detected capacity change from 0 to 4096 [ 752.932526][ T7633] usb 3-1: new low-speed USB device number 19 using dummy_hcd 03:40:45 executing program 5: r0 = socket$nl_xfrm(0x10, 0x3, 0x6) sendmsg$nl_xfrm(r0, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000001240)=@newsa={0x138, 0x10, 0x0, 0x0, 0x0, {{@in6=@local, @in=@dev}, {@in=@empty=0x60, 0x0, 0x33}, @in=@empty, {}, {}, {}, 0x0, 0x0, 0x2}, [@algo_auth={0x48, 0x1, {{'md5\x00'}}}]}, 0x138}}, 0x0) 03:40:45 executing program 4: syz_io_uring_setup(0x0, &(0x7f0000001380), &(0x7f0000ffc000/0x4000)=nil, &(0x7f0000ffe000/0x2000)=nil, &(0x7f0000001400), &(0x7f0000001440)) [ 753.212996][ T7633] usb 3-1: device descriptor read/64, error 18 03:40:45 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, 0x0, 0x0) [ 753.342841][ T7633] usb usb3-port1: attempt power cycle 03:40:45 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:40:45 executing program 1: unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x0, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$DRM_IOCTL_MODE_ATOMIC(0xffffffffffffffff, 0xc03864bc, 0x0) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) 03:40:45 executing program 4: syz_genetlink_get_family_id$tipc2(0x0, 0xffffffffffffffff) openat$thread_pidfd(0xffffffffffffff9c, &(0x7f0000000400), 0x400, 0x0) [ 753.762409][ T7633] usb 3-1: new low-speed USB device number 20 using dummy_hcd [ 753.953626][ T7633] usb 3-1: device descriptor read/8, error -61 [ 754.232221][ T7633] usb 3-1: new low-speed USB device number 21 using dummy_hcd [ 754.415591][ T7633] usb 3-1: device descriptor read/8, error -61 [ 754.542980][ T7633] usb usb3-port1: unable to enumerate USB device 03:40:47 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:40:47 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, 0x0}, 0x0) 03:40:47 executing program 5: r0 = socket$nl_xfrm(0x10, 0x3, 0x6) sendmsg$nl_xfrm(r0, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000001240)=@newsa={0x138, 0x10, 0x0, 0x0, 0x0, {{@in6=@local, @in=@dev}, {@in=@empty=0x60, 0x0, 0x33}, @in=@empty, {}, {}, {}, 0x0, 0x0, 0x2}, [@algo_auth={0x48, 0x1, {{'md5\x00'}}}]}, 0x138}}, 0x0) 03:40:47 executing program 4: io_uring_setup(0x4e84, &(0x7f0000001100)={0x0, 0x248f, 0x8}) 03:40:47 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:40:47 executing program 1: pipe2(&(0x7f0000000000)={0xffffffffffffffff}, 0x0) sendmmsg$sock(r0, 0x0, 0x0, 0x0) 03:40:47 executing program 1: syz_io_uring_complete(0x0) io_uring_setup(0x0, 0x0) write$P9_RSTAT(0xffffffffffffffff, 0x0, 0x0) write$P9_RWALK(0xffffffffffffffff, &(0x7f000000bc80)={0x9}, 0x9) 03:40:47 executing program 5: r0 = socket$nl_xfrm(0x10, 0x3, 0x6) sendmsg$nl_xfrm(r0, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000001240)=@newsa={0x138, 0x10, 0x713, 0x0, 0x0, {{@in6=@local, @in=@dev}, {@in=@empty=0x60}, @in=@empty, {}, {}, {}, 0x0, 0x0, 0x2}, [@algo_auth={0x48, 0x1, {{'md5\x00'}}}]}, 0x138}}, 0x0) 03:40:47 executing program 4: syz_io_uring_setup(0x1c59, &(0x7f0000000000), &(0x7f0000ffc000/0x4000)=nil, &(0x7f0000ffa000/0x3000)=nil, &(0x7f0000000080)=0x0, &(0x7f00000000c0)) syz_memcpy_off$IO_URING_METADATA_GENERIC(r0, 0x0, &(0x7f0000000100), 0x0, 0x4) 03:40:47 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, 0x0}, 0x0) [ 755.862560][ T3565] usb 3-1: new low-speed USB device number 22 using dummy_hcd [ 755.897046][ T9653] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.5'. 03:40:48 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, 0x0}, 0x0) 03:40:48 executing program 1: recvfrom(0xffffffffffffffff, 0x0, 0x0, 0x10000, 0x0, 0x0) [ 756.052098][ T3565] usb 3-1: device descriptor read/64, error 18 [ 756.322410][ T3565] usb 3-1: new low-speed USB device number 23 using dummy_hcd [ 756.512376][ T3565] usb 3-1: device descriptor read/64, error 18 [ 756.636376][ T3565] usb usb3-port1: attempt power cycle [ 757.052456][ T3565] usb 3-1: new low-speed USB device number 24 using dummy_hcd [ 757.222544][ T3565] usb 3-1: device descriptor read/8, error -61 [ 757.493021][ T3565] usb 3-1: new low-speed USB device number 25 using dummy_hcd [ 757.670121][ T3565] usb 3-1: device descriptor read/8, error -61 [ 757.792705][ T3565] usb usb3-port1: unable to enumerate USB device 03:40:50 executing program 4: r0 = openat$tcp_congestion(0xffffffffffffff9c, &(0x7f0000000640), 0x1, 0x0) sync_file_range(r0, 0x0, 0x0, 0x0) 03:40:50 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:40:50 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={0x0, 0x1c}}, 0x0) 03:40:50 executing program 5: r0 = socket$nl_xfrm(0x10, 0x3, 0x6) sendmsg$nl_xfrm(r0, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000001240)=@newsa={0x138, 0x10, 0x713, 0x0, 0x0, {{@in6=@local, @in=@dev}, {@in=@empty=0x60}, @in=@empty, {}, {}, {}, 0x0, 0x0, 0x2}, [@algo_auth={0x48, 0x1, {{'md5\x00'}}}]}, 0x138}}, 0x0) 03:40:50 executing program 1: openat$full(0xffffffffffffff9c, &(0x7f0000000100), 0x242500, 0x0) 03:40:50 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) [ 758.739249][ T9668] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.5'. 03:40:50 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) fcntl$dupfd(r0, 0x0, 0xffffffffffffffff) 03:40:51 executing program 1: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$sock(r0, 0x0, 0x50) 03:40:51 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={0x0, 0x1c}}, 0x0) 03:40:51 executing program 5: r0 = socket$nl_xfrm(0x10, 0x3, 0x6) sendmsg$nl_xfrm(r0, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000001240)=@newsa={0x138, 0x10, 0x713, 0x0, 0x0, {{@in6=@local, @in=@dev}, {@in=@empty=0x60}, @in=@empty, {}, {}, {}, 0x0, 0x0, 0x2}, [@algo_auth={0x48, 0x1, {{'md5\x00'}}}]}, 0x138}}, 0x0) [ 759.282762][ T7633] usb 3-1: new low-speed USB device number 26 using dummy_hcd 03:40:51 executing program 4: shmctl$SHM_INFO(0x0, 0xe, &(0x7f0000000080)=""/27) 03:40:51 executing program 1: r0 = socket$unix(0x1, 0x1, 0x0) connect(r0, &(0x7f0000000000)=@tipc=@id, 0x80) [ 759.473268][ T7633] usb 3-1: device descriptor read/64, error 18 [ 759.564463][ T9679] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.5'. [ 759.742186][ T7633] usb 3-1: new low-speed USB device number 27 using dummy_hcd [ 759.942149][ T7633] usb 3-1: device descriptor read/64, error 18 [ 760.063230][ T7633] usb usb3-port1: attempt power cycle [ 760.492240][ T7633] usb 3-1: new low-speed USB device number 28 using dummy_hcd [ 760.702302][ T7633] usb 3-1: device descriptor read/8, error -61 [ 760.982202][ T7633] usb 3-1: new low-speed USB device number 29 using dummy_hcd [ 761.192599][ T7633] usb 3-1: device descriptor read/8, error -61 [ 761.312575][ T7633] usb usb3-port1: unable to enumerate USB device 03:40:53 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:40:53 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={0x0, 0x1c}}, 0x0) 03:40:53 executing program 5: r0 = socket$nl_xfrm(0x10, 0x3, 0x6) sendmsg$nl_xfrm(r0, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000001240)=@newsa={0x138, 0x10, 0x713, 0x0, 0x0, {{@in6=@local, @in=@dev}, {@in=@empty=0x60, 0x0, 0x33}, @in=@empty}, [@algo_auth={0x48, 0x1, {{'md5\x00'}}}]}, 0x138}}, 0x0) 03:40:53 executing program 4: syz_clone(0x8042000, &(0x7f0000000040), 0x0, 0x0, 0x0, 0x0) 03:40:53 executing program 1: r0 = openat$full(0xffffffffffffff9c, &(0x7f0000000100), 0x242500, 0x0) ioctl$ifreq_SIOCGIFINDEX_batadv_mesh(r0, 0x8933, 0x0) 03:40:53 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) [ 762.006596][ T9690] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.5'. 03:40:54 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2], 0x1c}}, 0x0) 03:40:54 executing program 1: openat$cgroup_root(0xffffffffffffff9c, &(0x7f00000000c0)='./cgroup.cpu/syz1\x00', 0x200002, 0x0) 03:40:54 executing program 5: r0 = socket$nl_xfrm(0x10, 0x3, 0x6) sendmsg$nl_xfrm(r0, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000001240)=@newsa={0x138, 0x10, 0x713, 0x0, 0x0, {{@in6=@local, @in=@dev}, {@in=@empty=0x60, 0x0, 0x33}, @in=@empty}, [@algo_auth={0x48, 0x1, {{'md5\x00'}}}]}, 0x138}}, 0x0) 03:40:54 executing program 4: bpf$BPF_BTF_LOAD(0x12, &(0x7f0000000300)={&(0x7f0000000180)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0x0, 0x0, 0x2}}, &(0x7f0000000200)=""/218, 0x1a, 0xda, 0x1}, 0x20) 03:40:54 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2], 0x1c}}, 0x0) [ 762.621010][ T9702] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.5'. 03:40:54 executing program 1: bpf$PROG_LOAD_XDP(0x5, &(0x7f0000000680)={0x6, 0x5, &(0x7f0000000580)=@framed={{0x18, 0x0, 0x0, 0x0, 0x9}, [@map_idx]}, &(0x7f00000005c0)='GPL\x00', 0x1, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x25, 0xffffffffffffffff, 0x8, &(0x7f0000000600)={0x5, 0x3}, 0x8, 0x10, &(0x7f0000000640)={0x0, 0x0, 0x0, 0x1000}, 0x10}, 0x80) bpf$PROG_LOAD_XDP(0x5, &(0x7f0000000980)={0x6, 0x3, &(0x7f0000000740)=@framed={{0x18, 0x0, 0x0, 0x0, 0x5}}, 0x0, 0x400, 0x0, 0x0, 0x0, 0xf, '\x00', 0x0, 0x25, 0xffffffffffffffff, 0x8, &(0x7f00000007c0)={0x3}, 0x8, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000000940)=[0xffffffffffffffff, 0x1, 0xffffffffffffffff, 0xffffffffffffffff]}, 0x80) [ 762.711822][ T25] usb 3-1: new low-speed USB device number 30 using dummy_hcd [ 762.912621][ T25] usb 3-1: device descriptor read/64, error 18 [ 763.192424][ T25] usb 3-1: new low-speed USB device number 31 using dummy_hcd [ 763.392795][ T25] usb 3-1: device descriptor read/64, error 18 [ 763.524950][ T25] usb usb3-port1: attempt power cycle [ 763.952090][ T25] usb 3-1: new low-speed USB device number 32 using dummy_hcd [ 764.162839][ T25] usb 3-1: device descriptor read/8, error -61 [ 764.446604][ T25] usb 3-1: new low-speed USB device number 33 using dummy_hcd [ 764.642893][ T25] usb 3-1: device descriptor read/8, error -61 [ 764.782580][ T25] usb usb3-port1: unable to enumerate USB device 03:40:57 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:40:57 executing program 5: r0 = socket$nl_xfrm(0x10, 0x3, 0x6) sendmsg$nl_xfrm(r0, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000001240)=@newsa={0x138, 0x10, 0x713, 0x0, 0x0, {{@in6=@local, @in=@dev}, {@in=@empty=0x60, 0x0, 0x33}, @in=@empty}, [@algo_auth={0x48, 0x1, {{'md5\x00'}}}]}, 0x138}}, 0x0) 03:40:57 executing program 4: openat$cgroup_root(0xffffffffffffff9c, &(0x7f0000000080)='./cgroup/syz1\x00', 0x200002, 0x0) openat$cgroup_root(0xffffffffffffff9c, &(0x7f00000000c0)='./cgroup.cpu/syz1\x00', 0x200002, 0x0) 03:40:57 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) write$P9_RMKDIR(0xffffffffffffffff, &(0x7f00000000c0)={0x14}, 0x14) 03:40:57 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2], 0x1c}}, 0x0) 03:40:57 executing program 1: bpf$BPF_LINK_CREATE(0x1c, &(0x7f0000000180), 0x10) [ 765.554164][ T9717] netlink: 4 bytes leftover after parsing attributes in process `syz-executor.5'. 03:40:57 executing program 4: openat$cgroup_int(0xffffffffffffffff, &(0x7f0000000200)='memory.min\x00', 0x2, 0x0) openat$tun(0xffffffffffffff9c, &(0x7f0000000240), 0x105000, 0x0) 03:40:57 executing program 1: syz_genetlink_get_family_id$tipc2(&(0x7f0000000480), 0xffffffffffffffff) 03:40:57 executing program 5: r0 = socket$nl_xfrm(0x10, 0x3, 0x6) sendmsg$nl_xfrm(r0, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000001240)=@newsa={0xec, 0x10, 0x713, 0x0, 0x0, {{@in6=@local, @in=@dev}, {@in=@empty=0x60, 0x0, 0x33}, @in=@empty, {}, {}, {}, 0x0, 0x0, 0x2}}, 0xec}}, 0x0) 03:40:57 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2, @ANYBLOB], 0x1c}}, 0x0) 03:40:58 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) write$P9_RMKDIR(0xffffffffffffffff, &(0x7f00000000c0)={0x14}, 0x14) 03:40:58 executing program 4: openat$cgroup_int(0xffffffffffffffff, &(0x7f0000000200)='memory.min\x00', 0x2, 0x0) openat$tun(0xffffffffffffff9c, &(0x7f0000000240), 0x105000, 0x0) [ 766.232830][ T25] usb 3-1: new low-speed USB device number 34 using dummy_hcd [ 766.432984][ T25] usb 3-1: device descriptor read/64, error 18 [ 766.833847][ T25] usb 3-1: new low-speed USB device number 35 using dummy_hcd [ 767.022118][ T25] usb 3-1: device descriptor read/64, error 18 [ 767.142630][ T25] usb usb3-port1: attempt power cycle [ 767.582087][ T25] usb 3-1: new low-speed USB device number 36 using dummy_hcd [ 767.782444][ T25] usb 3-1: device descriptor read/8, error -61 [ 768.062124][ T25] usb 3-1: new low-speed USB device number 37 using dummy_hcd [ 768.262574][ T25] usb 3-1: device descriptor read/8, error -61 [ 768.382982][ T25] usb usb3-port1: unable to enumerate USB device 03:41:00 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:00 executing program 5: r0 = socket$nl_xfrm(0x10, 0x3, 0x6) sendmsg$nl_xfrm(r0, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000001240)=@newsa={0xec, 0x10, 0x713, 0x0, 0x0, {{@in6=@local, @in=@dev}, {@in=@empty=0x60, 0x0, 0x33}, @in=@empty, {}, {}, {}, 0x0, 0x0, 0x2}}, 0xec}}, 0x0) 03:41:00 executing program 1: writev(0xffffffffffffffff, &(0x7f0000000000)=[{0x0}, {&(0x7f0000000100)="47b11773de316dc71485047831478d575b3a11255ea7c440ee6a9ff6336d64007c278ffb4024afdeb0ccfc22c6f90cb47bf72fec9133d633dfc1ea3bfec52ff1bb80e6f469aa21bbae3eec819eaf5d8f5e09dfd743087cc07eca62b89009aa69c1548ae3f2ec6e572cb727ec93f6cb47e0726c8233b26b897c91bd66736995d6d1c096c0a321f5cd5abf73c5a2581416fe7bf3ab0ed0c35610e1d97b3bc9ce385ca5249c4a498b37a25c34768c4f5984c49a069a148ff9bb8a1d745fbbd62fe0ee6c10d3fc5faf0292e406b09bba86d55104578b284c1a8acd95f1d6ac70a7abf4dd392620d31890fbdea7006dd146b3c9c153c8a3776991345de45b858aeaaf2a38dcf91b3212f69869de73b47b91d719d384207f08d4d97c033913d1f9dd2aaf1bef5d2b723e54416daf10ed207d55434028e06d02647d9f5bbafeb18a5700d004df0e4720c4ef8a9d129b06be49205ff1aaa5385effc734ef387aaaa20c003c507d55734da9963ad9beb90ce5ce357128280c550019ea6f32c7aa7d3f5a07d838b62e9f7d53c13c52cc58bc99e21662688810cd6453eaa567b67ad294b12de8229c6438f924b2bc70cf5b336a912ddf62060447cceccfd52a442e2ed29e760e17ecd53597677cfdaa5ccc33b7caf6571ad30ded33f250155d90e4571347e708466723833cb6fcd9099b0f01c6d25a6b52effc60826c75814b473e15ac586fbd85cb01d438acfb835f823be5e9e20481927bcdfe2a77d72aa4c2f0ec677ddc54b1dbe89c6218f7b3d5699ec745ec2e96178c4bb0d681f507799430dcc7ba141c7114cb605c3d83fef727d343497082ea3004931dac32e2e5bf928b6cc9aa90d1776488d7a525134c38676ac237f9673a4e75dbfc378d9800dad0f22770e64a5c0124693004dfc9b66c548da389f3d5ff0824476275b13382278ecb1dec8b9e96495df2bbef1f012892e8542a30230f36c8fadf6cb4baa37d1e295f64ddd352826a45f8f0b6241986fd17d724fa1a7ee97b992088a121e40ebb10cf35c98d9bb7eddb762fe2014d0f8822323c6c2a4663fcf276f44693c6ddb285d7d8d0ff2fff8fef3946ebb90fd1b6c2d38e6e301c0ac31fe091cdf33719f8bf3d1115c9d0719166782dad2d0abc30545daa723dcee1ac3c0335b7ede58ca4ab150f6ff0e00cd03dac1fc8677cd4ae790201227a84d5703ab743c9ee71e1e352ad5e2ef99bbbc72a20c52fa3ca4bc4324606fea0c3635698e491ab7fa217854c39639f62a98329aba14e3b8bce05b0eabd12a5c5298b84e2916c95817f24716a0618fb8ac4dadf176c6726653cd095c29589670ceb8f40ef9550bbb653f0610c93f73630605fb31d6d2c164af57c3bd835453312457bab769bf909a1934b4da894167f02f3b79faa399edb625d36da14cc6818dfef0440fea9da82cda6b4c502f5c6ed991269ff602a6f18f94f37ac0eb8416afede910593360532ba8f3a16e4f0a62ce53f34f7995577f949f1e176c4f2f5dc0b20ea449f53ac20fd42674c14ab71f15a451548cfbf3febb3c6ef28b4addce2ca5b33fbcc9e2f8c3ee8c71ced8eae59913709a1720ef0f0c571d1631e389640337a2e3694284b3d06cd6e0eb41fae84dbf4753f3f3547a9a332778124147e4fcef9c00f755b77cf3193489ae0c684cdb9e29b9f5042edaa1980764b45ae4f897d74f5df72341999084bfb63202f5e33f7de62f4c9c63b76ce028c58cbcfcbf19e6baed58e1aa4b9ae4acf4c2d00a52b7d6f469f15a79fd9d257ffa0db4b1d0a5501fbdbe60caf4f0ee584c5a632b9f3b675396132ba98fa84f6389d1a2c25eafdcfda63dfcdde2abc766d610b739614bd8148d7fe83ed2a4b418c51ed08ebc0abcebacd1821f698dd57acf245fabc8277c30ec6bbcf36ad6d0ccb8a7e51179b37bd4107bec406d3b2907974ff8c7edc11caea22351289e99b0f9e8af07bfcde759cfb288104dbe427de6a90a1304e5f10a40c94afc1d57848c3fdc26c5e91eb52bca0b14374ec348f2fd7239733836f30dac9febb9524df4c0542c19ce1e8ff518f52d557930cdc1cfa63c9f8a3dc4924383c1f003863bc64540f2ea9272dfef75b34fbd85a72bb18e588d9912f6f2e9a21955a76dd552f88b3fbb90a40a56b5508f32931823c2158f7c96aa6f347a8ce30e013484e33148bdf7a475a3099c5de45b628f783754f4e745744311163554b5c82f8d00ce4291f38b2469651a6a85a382cbf72f88d8ebd978f34e50487edb3626e6507b6fd58f61432c1bfae139b727c030d709552045322d2ce7f453fb0aea0bda2312edc0022ea3c882d40f77cbba3cf7e593b454478d526827b96a8e11daa93947df9fd25d509542f83960c5a80fbe9ace85ce1d3bbaf10126ede4fec316804707183609ffa7f578bd073154eca63d6959cea2162c714222f4f4a3b7a375a30c5e34783d14eed5d82028fe30fc3526fd0484b766a89d263c34d58ab08f36d9a7430200415ed9066aced107f3d275b300bb5eeac87c2d04ddb808e0d5f4df0a7436b1f2c55a1cf430f19f67cc51cc40f534761e83c5f87439b76b86490a4413a7fee32fa4352dacd2314fc0201c1f932111374c59374ef85df463c7c2417a1d8426612d260e6bd376a80030fddefaf3e5571b6060c3e7bd9d9f378a2c911abdd36c70990d6fa8bc0ecfaa4303c7f89039c70105898768f4b48fbc354b4fd047ace01466591860526138b665753b0d877abb67391db7d82fb9a293f19831d8ec1a47b1e094fdf863a8e64867a87a9736fc2347856133074f356184e502718b5860ca826d3bc72659e12ab4b29b1163282b2cabf2babb0b87effb250eef4b4d0e61f921dc4be2e8795d021df43fec4941fdde81d549445c5b4fde0717fb018f059eba0d9cdf98c0492eabd688e5fefa0c5ffd777fb485005983cb2f53fa0fe59e30f8bab1d4c916fb6ecc3a3b75cecd83d13da60ed1229dab45e53832a9c225653a8ee68a44e466fa98f20eba7d22c0bca09c4a3332a57af27de5ec8abde0dcfc386a3a5cb91ecb9c234098c3e810fc7d4d4ba3c58de4b52d0f1fd5efa7b990281d4a8553978d128d6e199a16bafed2ac3edc78ed42228153a0c1813540bb61e3d7f61b3cc87f0b043bb483cda8cff219b323acd235d71b254b9d4a33728286716a1f0117878fd6dfc21970fcb0bcae833df47ee6b4c9198e819a9532d475baac700abc8e500b405e70196beaa6fef9d7cce7b74f17f6e3e9904ae71cb7566c805906049bc4f139d508471f6bf4a13ef86f6d6c13c940dae34e135f9e3c5b92065a9465a484935ae879bcb960503f26d2a2b5b0116a71ff53203456fabaac9874d6d33de76dba39087a26fd2c051f8536109979bef671f944b291e2e4bf4c2d44f3529f0f8d5fa9bbe40d4da8ec8a21c220ae88ce12a192f5438ed6d1de2c24946c207b480aab91875e4ed005fbb75cb1394496ee8ae6757081c1e16c68350c66c2a0099eebadf6080bb0f27f043bbf473af3567c00a03ca893633eb06ec38dd58633bcaa41de8319e4f5d05e0b6b12b0386b149aaef0849b5f8e4ecc4c80f45b73525ac7ff151b8ac738000a7dd1fd3557e733da36283b09f1040b042c8fdb142f7ed85c4d006a8cdfd8a28f975e8d68a3a09b75dedc307f469d3c21dd8009afb2e1daa7daefaabc1df2c5eaaf9f83cd230697205f901b3ad39ebba8abad3d98dbd491fbf442eb5c554e3896e703fe864358a8773bba0578e6713ee82d941523f01e364947c6cb17f0892ad8d3a9488d326ad253948da92d77136147b8c21852caeb605d97399cf1c18dca4c90abbff5d2123f4c7a9846d76c967189d8212c87401fdedbd2f1d11e72908c5e9f38e1ad031cd33c4466a073ede83bb05fd137e7b175500f9acc3c5fe92c3716c16b30cb2129f93a8ef6fb9229cae578079b93300acdbebc17c18de2b4f9a509bb2f3d3337ec4facfa8078bc4c486d40c5dfb5d52b73240c59313c66be84d1b3c42e999e37cc510e336825a61a1a1c15021dcff777b4c812f5a5ac0288b789fcde8c03379421c88f60f47e3c56a335aa605a4c03c7ef84e73bafee9b543f896297a5750a709313a9f2d82c8b973c6aefed5384479c57f47d68758f1dc005ed33996c8c74815c21ff9a12ba093b4017573475afa321a80f66e6ef6612ea3073c176efa4cb188afcdacf968ccd36188884e9391086d90ff99d06a3a0b0fe59b286a95d673d20b9ced55ddc4683a055753b9abc7dd50f921c508bee1294713b91184a71a368963a3372b13dc18feeb00e0532e60facfb9c7203d6207e59d109c0d13f545ccc8491ac49929d421fa496660d3eb7860fd3318b3b4af088846d4ec7617c7516f0d871ff24ac85e9cfc9ed35308752042fc1e46692dcc6721aabfa68178024de08529c4f67137a410b80d773d68dd2d77689fef9c7a48c7f356456bda37c6d9f93eb0bb9bb1f66a9dfaf6f33b5e272b9a48958ff60ba5d64fc5449cbf24e7abc37e827cdc349a8e4c5ab0c27bab3931c3f666c040cdf44ded80c013ac6f6c832c2a9c8c86ef7022a49b195e92f6eb478709fba76f11dbae2d21b6eaf6f88e7bf63ef818725471c2c97323d41e01ace71575b570316ac18e4371ccb2e48d4e349b04fd1e5a0ee351b99a7d27349ea62d46e43f697daac5e2f831db8fcaeb0e2ebd1bf2ae8ec9c2cf7eae0529399025beb9cec537d8f3b73abb4a020e4f5362064891ca66dcf91eb64766ca90f2742b45cc866288199f0e8d5c2fc0103f69bb81d2549cb2ef589d858abd581727fb31364d8c611585738916cf60525d12f05bb060f52d99be4482d38bb8dd19773733232bb170f0802fc5bcd5864712307e48c10f160da5722c8e0037f16706ede000e6233fca03ac378f5bb7d7d34f90636b6caa0513efb64f15d71257b31ab9b2132cc0ab22ebff40ed5ad7e794b0870c4e3bef913b36479d94a368a1e765e9cb31d2f4bbbd40eef9ad629ec9d1f60db5c973302b37d46ad2956222f77342252be74967b684f38dc905457f5da2b93ea298f2dfcf940d15761391b65ab963de5e7c169c4d1a8b7ff904cedf644a2d93ce669990c56bb38cb5b71f75c1a256c8fb1b405742b3906f9bdb47fe5a20dc149a8e61ce302a9ab32c7b278c4830a0636ec9b5508c1cbcef526083239b59662a1c40fefe96a725aeaf47aa1018c6b230fe68bbae940ee04e6e4d0a1a60a554313f89a231b3d0633b498d61b974599b1aa59e8abd2e5d77d33e94b0aaf698e87eef2de16c4d03c174e3db9f13c54f11b76d91e3d54af4af69fe16082e57c28e517f8b0d6b7066be9df5aa8a54cedbcf0eaf37e88384203142ec73e469ac3da689d077f55076389a758988fabd4f8b4da246e68c6a96eb78a25e1f82e2e20a1fb192af147303420ae3feeca9e199bb34b029e920fbda77031ff12440b36c45af5c6cd9725494658de0f0bbcd420238692e3fb57b0e45369c1d4e44fa91427386e31730b74455610d9f53ed95e27c81547abbc7d5460e99a844790f745867d8fb8c729d87d1423baa86b221de3228c492f750dbfaccc3ce7f1866ea02f5132716059305b14c79fbebd96c249471e5f097c85c845629943be9024ad7ea9179849905d52671df5ae04dd071c41e6d030dbfe4b0267b6dce628934fef9ab0066226201121ef2d902e4b3f3ecd2a2c10c703ac584a3b6bedc61e7ee62b280109ce00b4d577047fe9129935dd1ecabd6d0b22a878ab79b341b7ae4d104e440d2909e1cb10eb391927d85a1c7b73632da96fcc4d2c5be6fbf"}], 0x1000000000000295) 03:41:00 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2, @ANYBLOB], 0x1c}}, 0x0) 03:41:00 executing program 4: openat$cgroup_int(0xffffffffffffffff, &(0x7f0000000200)='memory.min\x00', 0x2, 0x0) openat$tun(0xffffffffffffff9c, &(0x7f0000000240), 0x105000, 0x0) 03:41:00 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) write$P9_RMKDIR(0xffffffffffffffff, &(0x7f00000000c0)={0x14}, 0x14) 03:41:01 executing program 1: r0 = socket$inet6(0x18, 0x3, 0x0) close(r0) 03:41:01 executing program 4: openat$cgroup_int(0xffffffffffffffff, &(0x7f0000000200)='memory.min\x00', 0x2, 0x0) openat$tun(0xffffffffffffff9c, &(0x7f0000000240), 0x105000, 0x0) 03:41:01 executing program 5: r0 = socket$nl_xfrm(0x10, 0x3, 0x6) sendmsg$nl_xfrm(r0, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000040)={&(0x7f0000001240)=@newsa={0xec, 0x10, 0x713, 0x0, 0x0, {{@in6=@local, @in=@dev}, {@in=@empty=0x60, 0x0, 0x33}, @in=@empty, {}, {}, {}, 0x0, 0x0, 0x2}}, 0xec}}, 0x0) 03:41:01 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2, @ANYBLOB], 0x1c}}, 0x0) [ 769.732168][ T25] usb 3-1: new low-speed USB device number 38 using dummy_hcd 03:41:01 executing program 1: r0 = socket$inet6(0x18, 0x3, 0x0) r1 = getpgid(0x0) fcntl$setown(r0, 0x6, r1) 03:41:01 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) [ 769.932233][ T25] usb 3-1: device descriptor read/64, error 18 [ 770.206839][ T25] usb 3-1: new low-speed USB device number 39 using dummy_hcd [ 770.422325][ T25] usb 3-1: device descriptor read/64, error 18 [ 770.547469][ T25] usb usb3-port1: attempt power cycle [ 770.983734][ T1200] ieee802154 phy0 wpan0: encryption failed: -22 [ 770.988499][ T25] usb 3-1: new low-speed USB device number 40 using dummy_hcd [ 770.990283][ T1200] ieee802154 phy1 wpan1: encryption failed: -22 [ 771.214251][ T25] usb 3-1: device descriptor read/8, error -61 [ 771.502116][ T25] usb 3-1: new low-speed USB device number 41 using dummy_hcd [ 771.717121][ T25] usb 3-1: device descriptor read/8, error -61 [ 771.842589][ T25] usb usb3-port1: unable to enumerate USB device 03:41:04 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:04 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2, @ANYBLOB="010000000000000000"], 0x1c}}, 0x0) 03:41:04 executing program 5: r0 = openat$tun(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) ioctl$TUNSETQUEUE(r0, 0x400454d9, &(0x7f00000001c0)={'syz_tun\x00'}) 03:41:04 executing program 4: openat$tun(0xffffffffffffff9c, &(0x7f00000000c0), 0x60000, 0x0) 03:41:04 executing program 1: r0 = bpf$MAP_CREATE(0x0, &(0x7f0000000140)=@base={0xa, 0xc, 0x1000, 0x1}, 0x48) bpf$MAP_DELETE_ELEM(0x2, &(0x7f0000000080)={r0, &(0x7f0000000000), 0x20000000}, 0x20) bpf$MAP_GET_NEXT_KEY(0x4, &(0x7f0000000380)={r0, &(0x7f00000002c0)='d', &(0x7f0000000340)=""/46}, 0x20) 03:41:04 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:41:04 executing program 5: r0 = bpf$PROG_LOAD(0x5, &(0x7f0000000080)={0x3, 0x8, &(0x7f0000001740)=ANY=[@ANYBLOB="620af8ff0c200021bfa100000000000007010000f8ffffffb702000003000000bd120000000000008500000006000000b70000000000000095000000000000003faf4f2aa3d9b18ed812a2e2c49e8020a6f4e0e4a9446ca2b5f1cc1a100a9af698393aa0f3881f9c24aa56f15199fad0093c59d66b5ece9f36c70d0f130c5077da80fb982c1e9400c693146cea484a415b76966118b64f751a0f241b072e90080008002d75593a280000c93e64c227c95aa0b784625704f07a72c2918451ebdcf4cef7f9606056fe5c34664c0af9360a1f7a5e6b607130c89f18c0c1089d8b85880000c29c48b45ef4adf634be763288d01aa27ae8b09e00e79ab20b0b8ed8fb7a68af2ad0000000000000006f803c6468972089b302d7bff8f06fa1918d65eae391cb41336023cdcedb5e0125ebbcebddcf10cb2364149215108333719acd97cfa107d40224edc5465a932b77e74e802a0d42bc6099ad2300000080006ef6c1ff0900000000000010c63a949e8b7955394ffa82b8e942c89112f40cfd7c3a1d37a6ab87b1586602d985430cea0162ab3fcf4591c926abfb076719237c8d0e60b0eea24492a660583eecdbf5bcd3de3a83209da17a0faf60fd6ad9b97aa5fa68480366c9c6fd6fa5043aa3926b81e3b59c9f081d6a08000000ea2b1a52496dfcaf99431412fd134a996382a1a04d5bb924cfe5f3185418d60532be9c4d2ec7c32f2095e63c8cdc28f74d043ed8dba2f23b01a9a6b980aff9fa740b5b7632f32030916f89c6dad7603f2ba2a790d62d6faec2fed44da4928b30142bdda5e6c5d50b83bae616b5054d1e7c13b1355d6f4a8245eaa4997da9c77af4c0eb97fca585ec6bf58351d599e9b61e8caab9c70764b0a8a7583c90b3433b809bdb9fbd48bc873495cbff8a41326eea31ae4e0f75057df3c9d13330ca006bce1a84521f14518c9b476fccbd6c712016219848624b87cec2dbe98223a0eb4fa39f6b5c02e6d6d90756ff57902a8f57010000009700cf0b4b8bc22941330000000000000000000300000000000000000000000010008bc0d955f2a83366b99711e6e8861c46495ba585a4b2d02edc3e28dd271c896249ed85b980680b6c4a000000002b435ac15fc0288d9b2a169cdcacc413b48dafb7a2c8cb482bac0ac502d9ba96ffffff7f00000000df73be83bb7d5ad883ef3b7cda42013d53046da21b40216e14ba2d6af8656bfff17addaedab25b30002abbba7fa725f38400be7c1f001b2cd317902f19e385be9e48dccff729433282830689da6b53ffffffff631c7771429d120000003341bf4a00fcff5e1c7c3d1d6e3a52872baef9753fffffffffffffe09fec2271fe01589646efd1cf870cd7bb2366fde4a59429738fcc917a57f94f6c453cea793cc5ee0c2a5ff870ce5dfd3467decb05cfd9fcd41df54cdbd9d10a64c108285e71b5565b1768ee58969c41595229df17bcad70fb4021428ce970275d5bc8955778567bc79e13b78249788f11f708008b75d4fe32b561d46ea3abe0fa4d30dc94ef241875f3b4b6ab7929a57affe7d7fa29822aea68a660e717a04becff0f719107000000000000002d7e8c7123d8ecbbc55bf404571be54c72d978cf2804107f0238abccd32368e57040906df0042e06000000000000002c06f815312e0c6dd022c074eb8a322fb0bf47c0a8d154b405c37feaf3dd95f6ef44cd1fe582786105c7df8be4877084d4173731efe895efc71f665c4d75cf2458e35d2c9062ece84c99a061887a20639b41c8c12ee86c50804042b3eac1f879b136345cf67ca3fb5aac518a75f9e7d7101d5e186c489b3a06fb99e0aa7f23a054de2f4d92d6bd72ee2c9fdc75aaaf1e3e483b4ad055e4af403269b4a39ce40293947d9a631bcbf3583784acbda216550d7aec6b79e30cbd128f54c2d3335457ac0eaaa99bf0bdc14ae358c3b377327ac9ecc34f24c9ae153ec60ac0694da85bff9f5f4df9b3ff372b5f2ee10cebb2c5ea1393fdf24285bf16b99c9cc0ad18570b6f1a985f369191ae954febb3df464bfe0f773ee9afe72f32a2befb89d3777399f5874c553a2ebe9061fe86e66964ae09bb6d163118e4cbe024fd452277c3887d6116c6cc9d8046c216c1f8a9778cb26e22a2a998de44aeadea2a40da8daccf080842a486721737390cbf3a74cb2003efb9d346030cc8bba1016f1d14216bdf57d2a40d40b51ab63e9600040000b8a8c9ae3d14f93100c2e0893862eef552fcde2981f48c482bde6e4a4304e50c349f4f9ecee27defd83871c5f99b355b72d538ba4958ea8e4aa37094191e10096e7e60fc3541a2c905a1a95e9571bf38aebd1517a8250df98674152f94e32409e2a3bce109b6000000000000000000d6d5210d7560eb92d6a97a27602b81f7636df1535bef1497f92186086e29c61137abf9010000007750890200d627e87306703be8672d70d1ab57075228a9f46ed9bd1f08fb8191bbab2dc51de3a61f0868afc4294859323e7a45319f18101288a0268893373750d10a3fc22dd704e4214de5946912d6c98cd1a9fbe1e7ef8c08acaf30235b920500d2eca55f74a23641f61f2d5b308cf0d031b0c7f0ced69993e9960ff5f76062adae283d9756237badf4e7965bbe2777e808fcba821aa8e8c5c39609ff854356cb4900000000000000000000000000c1fee30a3f7a85d1b29e58c77685efc0ceb1c8e5729c66018d169fc03aa188546b3ad2a182068e1e3a0e2505bc7f41019645466a31c72ad53bc19faa5401020000793ac48c1b539c75ab40743b2a428f1da1f68df75cf43f8ecc8d3726602111b40e761fd210a1920382f14d12ca3c3431ee97471c781d0d1280fb00818654a53b6df4b2c97cc1c98d85fda8f80fe908b65550b441233151122b41a8d73062197655b7f0469250a5989cef0e10773920ed3ccee4472c3eb80159daed092511e6eb93842054cfce2ac306cb6e472db3fd67a49b6855a694a8d359add43907003223a47a7fae4f3748d5a432825bc40a03aaef1c8488d86dc211dd2a3ba71e0f45492ef1f8b65ccb3dcd0e1a61b152d02c29ca0a3328fa7753a5cddea1acaae55ae8263fb284b7a6ab2a8826c1b948207c498cf4824ab1ea3225a53072423b907c6602f8999e0311da5b8378bc841e1787e3a8128dda381a26cb2b365702ff8a27831375b2ddaa2f56e21169f7ca4fd9655ccd4a584acd244e966d0afedaff7c415ff682a4044b3381cc2df28278c9a6824c52048a7cfabda294925cc0956bffa8e950ff5e49f41ae6edd830207bf728cd9807933c3e16d80bbea611a18becc2dc38ca0a6f5740f340b76edcd1f539bd43007231dcef58c7b88b5aeedaab37d4f98a934b0f900e0eb639878a45e4629f5503cf679154d27681d7a3744cbcd42af59407c9c8e39c5271868917954e604352ba26171d004f1c5524f061378f94fb453786c3a6f78b10d383b49e31d1568bd43ee34ce6e6be235aa6207285665c2fba773671da41959f51610963b48930658e2d6125a26085b11345b0473240b7e5e91811312c43663e76f711d7219ecdec75c7ea1cf0f8f8fff40247d59bbde2ebb8659197e0f37a71be1b12a182ed7de3acba28561a04b807f7a4647e2ea6d8fb92541d07c3d5e4ba077d3cad9f8ba1919592014c00c8eccb2ca5d48ba7b1c3fb185a4bb79700cf51f818b0c701c8de47d12281a67bdaf4b0c50bee9e8f5936250df2e15c1172e7ea6619f7db330447d1e9e42a035e6fd532f61fbfed9c4a7124a1e38eee50a6bbcd1d4e3f68c3f27dd9a70f1a7c6046237ddfb0b26e1973222263603498010458cd4df10af249ce717f6f45e5176e0ddae3054d7289d4e13ab0912703ee39ce264572b89194fdf7acecc35cf8309d4b680a08eed367dad855fce210f1a7c7222dd360eafb4bef7d58bf83362930af6e3f3f851abdc0003bdf9401b533019e90feb06b189100007a82df8d9b5f44ebf9355e7b1b01c9470608d4f306d21004730396a4d6c6d46e1ffac97aa93c36123532a36186575266be4981c847160079421d0137801e553069f8d025c40f287378810defc7f2ed4e15f68f17b21153394f8bcfa6a23a77c8d61c9bbc127a57b8d631f36558d9093dee08bc53d97a8003363421738650a26c8fd87b13026799caf58e59951b125e7f1629a34e2c0dd65a23d01a3cb191e743de07247c7f993cf01166fa2ac1ba02f60550e63a7f50422e478c6b5d87f9bd0567a279a9d85a380db25c43bd0529ad783b9d64aaac5cdac24b0c23c3d2671b793afb44b7126e17c2b7c0d6be650de7eeef3f3605af344015d03c3e7819145cb9fe1978c98bf9ef10773db59505ae33708c728844c872df4e7748c1f9d2cb0b29754f928c59306ce105ca18cb72f0944d0e4fea0a0abd0285bdaf1b41520a1089d640c2facb0d1e6243873ac4b1e1068c45c715b68effb7d58d1f9e726dbf6bd910ca4ce0e075658ede42192cf393a50dcc197b033a2fed75083628e5dd38213d353b9049e71f037064b05e73ec00c710f14ec5737d397d555d1cf8859cc05fea8dc3c6a5b3b6fa1c81707479db1833d593a271253aa11efdb37c74784f2fc286814848e92d8ee541bc179813297a0a4cc3c8f80c28701185bea091f32475e859479b734727afc110e1abcff460172fd1b42e3c0e2a4bf94a060069007735232c87c7572a1e7596f89e5c3d5e70640c90815f77b7b13dd43d9be585a1e1e84900000000000000000000000000b422fc160a458ee5a91a2471e6e56fdabec6c73ce8983fc68f0b7cdcdde63230abf3e6f54a07620e8aa116ce9e84fc3cd5e8288a333dcebb233da91867633e594790fe7cbcbd79c096995ba69487d8f77d2f963df02d690fc70a08b231cad1bdcf3740a95d4dd1cfe0f417f275493cf33b19f3e093dfdaf7eb3fb8ad87cdf7c21bab5af8e2bac54ee5597e6508c1158124a538c36f9bb11fea7d8b8c7e954b1bc7811654a6636b33f271d0923e9ecd1b724b8feffadfc23c5bcd4e95f0785fb722f346d6a5dffe1884d4d0cd8f"], &(0x7f0000000100)='GPL\x00'}, 0x48) bpf$BPF_PROG_TEST_RUN(0xa, &(0x7f0000000180)={r0, 0xb3, 0xe, 0x0, &(0x7f0000000280)="5f39868de2639b12c1a2ff010602", 0x0, 0x1df, 0x11, 0x0, 0x0, 0x0, 0x0}, 0x48) 03:41:04 executing program 4: r0 = openat$tun(0xffffffffffffff9c, &(0x7f0000000180), 0x0, 0x0) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f00000007c0)={'pim6reg0\x00'}) 03:41:04 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2, @ANYBLOB="010000000000000000"], 0x1c}}, 0x0) 03:41:04 executing program 1: r0 = bpf$MAP_CREATE(0x0, &(0x7f0000000140)=@base={0xa, 0xc, 0x1000, 0x1}, 0x48) bpf$MAP_DELETE_ELEM(0x2, &(0x7f0000000080)={r0, &(0x7f0000000000), 0x20000000}, 0x20) bpf$BPF_MAP_LOOKUP_AND_DELETE_ELEM(0x15, &(0x7f0000000040)={r0, &(0x7f00000001c0), &(0x7f00000000c0)=""/125}, 0x20) [ 773.162726][ T3146] usb 3-1: new low-speed USB device number 42 using dummy_hcd 03:41:05 executing program 1: bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000780)={0x18, 0xa, &(0x7f0000000080)=@framed={{}, [@jmp={0x5, 0x0, 0x1, 0x0, 0x0, 0xfffffffffffffffe}, @call, @initr0, @generic, @cb_func={0x18, 0x0, 0x4, 0x0, 0xfffffffffffffffb}]}, &(0x7f0000000100)='GPL\x00', 0x2, 0xe3, &(0x7f0000000340)=""/227, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 03:41:05 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) [ 773.532635][ T3146] usb 3-1: config 168 has an invalid descriptor of length 0, skipping remainder of the config [ 773.543326][ T3146] usb 3-1: config 168 has 0 interfaces, different from the descriptor's value: 1 [ 773.866026][ T3146] usb 3-1: string descriptor 0 read error: -22 [ 773.873180][ T3146] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 773.882609][ T3146] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 774.270359][ T116] usb 3-1: USB disconnect, device number 42 [ 774.300300][ T5261] udevd[5261]: setting owner of /dev/bus/usb/003/042 to uid=0, gid=0 failed: No such file or directory 03:41:07 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:07 executing program 5: mmap(&(0x7f0000ffc000/0x4000)=nil, 0x4000, 0x0, 0xfc1f, 0xffffffffffffff9c, 0x0) 03:41:07 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2, @ANYBLOB="010000000000000000"], 0x1c}}, 0x0) 03:41:07 executing program 4: ioctl$TUNGETIFF(0xffffffffffffffff, 0x800454d2, &(0x7f0000000000)={'bridge_slave_1\x00'}) socketpair$nbd(0x1, 0x1, 0x0, &(0x7f0000000340)) 03:41:07 executing program 1: bpf$BPF_BTF_LOAD(0x12, &(0x7f0000000080)={0x0, 0x0, 0x0, 0x0, 0x1}, 0x20) 03:41:07 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) ioctl$EVIOCGPROP(0xffffffffffffffff, 0x40047438, &(0x7f0000000180)=""/220) r2 = dup(0xffffffffffffffff) write$P9_RMKDIR(r2, &(0x7f00000000c0)={0x14}, 0x14) 03:41:07 executing program 1: openat$tun(0xffffffffffffff9c, &(0x7f0000000000), 0x80002, 0x0) 03:41:07 executing program 5: socketpair$nbd(0x1, 0x1, 0x0, 0x0) socketpair(0x0, 0x0, 0x0, &(0x7f0000000000)) 03:41:07 executing program 4: syz_clone(0x8c00, 0x0, 0x0, 0x0, 0x0, 0x0) 03:41:07 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2, @ANYBLOB="01000000000000000000030000"], 0x1c}}, 0x0) [ 775.814315][ T9814] netlink: 8 bytes leftover after parsing attributes in process `syz-executor.3'. [ 775.824368][ T9814] nbd: must specify a device to reconfigure 03:41:07 executing program 4: bpf$BPF_GET_MAP_INFO(0xf, &(0x7f00000008c0)={0xffffffffffffffff, 0x0, 0x0}, 0x10) [ 775.902828][ T116] usb 3-1: new low-speed USB device number 43 using dummy_hcd 03:41:08 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2, @ANYBLOB="01000000000000000000030000"], 0x1c}}, 0x0) [ 776.326417][ T116] usb 3-1: config 168 has an invalid descriptor of length 0, skipping remainder of the config [ 776.337265][ T116] usb 3-1: config 168 has 0 interfaces, different from the descriptor's value: 1 [ 776.598490][ T9821] netlink: 8 bytes leftover after parsing attributes in process `syz-executor.3'. [ 776.609036][ T9821] nbd: must specify a device to reconfigure [ 776.642728][ T116] usb 3-1: string descriptor 0 read error: -22 [ 776.649467][ T116] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 776.659338][ T116] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 776.981599][ T3146] usb 3-1: USB disconnect, device number 43 03:41:09 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:09 executing program 1: socketpair(0x2b, 0x80000, 0x0, &(0x7f0000000080)) 03:41:09 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) ioctl$EVIOCGPROP(0xffffffffffffffff, 0x40047438, &(0x7f0000000180)=""/220) r2 = dup(0xffffffffffffffff) write$P9_RMKDIR(r2, &(0x7f00000000c0)={0x14}, 0x14) 03:41:09 executing program 5: mkdirat$cgroup_root(0xffffffffffffff9c, &(0x7f0000000000)='./cgroup.net/syz1\x00', 0x1ff) r0 = openat$cgroup_root(0xffffffffffffff9c, &(0x7f0000000000), 0x200002, 0x0) r1 = openat$cgroup_freezer_state(r0, &(0x7f0000000040), 0x2, 0x0) write$cgroup_freezer_state(r1, 0x0, 0x0) 03:41:09 executing program 4: bpf$BPF_MAP_GET_FD_BY_ID(0xe, &(0x7f0000001280)={0x0, 0x0, 0x28}, 0xc) 03:41:09 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2, @ANYBLOB="01000000000000000000030000"], 0x1c}}, 0x0) [ 777.902892][ T9827] netlink: 8 bytes leftover after parsing attributes in process `syz-executor.3'. [ 777.913616][ T9827] nbd: must specify a device to reconfigure 03:41:10 executing program 4: socketpair$nbd(0x1, 0x1, 0x0, &(0x7f0000000340)) 03:41:10 executing program 1: openat$tun(0xffffffffffffff9c, &(0x7f0000000300), 0x101802, 0x0) 03:41:10 executing program 5: socketpair$nbd(0x1, 0x1, 0x0, 0x0) socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000000)) 03:41:10 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2, @ANYBLOB="010000000000000000000300000008"], 0x1c}}, 0x0) 03:41:10 executing program 5: r0 = openat$tun(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) ioctl$TUNSETIFINDEX(r0, 0x400454da, &(0x7f0000000080)) 03:41:10 executing program 4: socketpair$unix(0x1, 0x0, 0x0, &(0x7f0000002180)) [ 778.598258][ T9842] nbd: must specify a device to reconfigure [ 778.612605][ T25] usb 3-1: new low-speed USB device number 44 using dummy_hcd [ 778.992380][ T25] usb 3-1: config 168 has an invalid descriptor of length 0, skipping remainder of the config [ 779.003124][ T25] usb 3-1: config 168 has 0 interfaces, different from the descriptor's value: 1 [ 779.283369][ T25] usb 3-1: string descriptor 0 read error: -22 [ 779.294812][ T25] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 779.304729][ T25] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 779.615473][ T25] usb 3-1: USB disconnect, device number 44 03:41:12 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:12 executing program 1: openat$cgroup(0xffffffffffffffff, &(0x7f0000000fc0)='syz0\x00', 0x200002, 0x0) 03:41:12 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) ioctl$EVIOCGPROP(0xffffffffffffffff, 0x40047438, &(0x7f0000000180)=""/220) r2 = dup(0xffffffffffffffff) write$P9_RMKDIR(r2, &(0x7f00000000c0)={0x14}, 0x14) 03:41:12 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2, @ANYBLOB="010000000000000000000300000008"], 0x1c}}, 0x0) 03:41:12 executing program 5: socketpair$nbd(0x1, 0x1, 0x0, 0x0) socketpair(0x1e, 0x0, 0x0, &(0x7f0000000000)) 03:41:12 executing program 4: socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000280)) socketpair$unix(0x1, 0x1, 0x0, 0x0) bpf$OBJ_GET_MAP(0x7, 0x0, 0x0) 03:41:12 executing program 4: bpf$BPF_PROG_ATTACH(0x8, &(0x7f0000000400), 0x14) 03:41:12 executing program 1: r0 = socket$inet_udp(0x2, 0x2, 0x0) setsockopt$inet_mreqn(r0, 0x88, 0x0, 0x0, 0x0) [ 780.605761][ T9856] nbd: must specify a device to reconfigure 03:41:12 executing program 5: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendmsg$inet_sctp(r0, &(0x7f0000001840)={&(0x7f0000001600)=@in={0x10}, 0x10, 0x0}, 0x0) setsockopt$inet_sctp_SCTP_RTOINFO(r0, 0x84, 0x1, &(0x7f0000000000)={0x0, 0x1, 0x0, 0x80000001}, 0x10) 03:41:12 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2, @ANYBLOB="010000000000000000000300000008"], 0x1c}}, 0x0) 03:41:13 executing program 4: r0 = socket$inet(0x2, 0x5, 0x0) bind$inet(r0, &(0x7f00000000c0), 0x10) 03:41:13 executing program 1: r0 = socket$inet_sctp(0x2, 0x5, 0x84) setsockopt$inet_sctp_SCTP_CONTEXT(r0, 0x84, 0x11, &(0x7f0000000100), 0x8) [ 781.253604][ T3565] usb 3-1: new low-speed USB device number 45 using dummy_hcd [ 781.323247][ T9869] nbd: must specify a device to reconfigure [ 781.612970][ T3565] usb 3-1: config 168 has an invalid descriptor of length 0, skipping remainder of the config [ 781.623901][ T3565] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid wMaxPacketSize 0 [ 781.634205][ T3565] usb 3-1: config 168 interface 0 altsetting 0 has 1 endpoint descriptor, different from the interface descriptor's value: 2 [ 781.992931][ T3565] usb 3-1: string descriptor 0 read error: -22 [ 781.999820][ T3565] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 782.009397][ T3565] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 782.115911][ T3565] adutux 3-1:168.0: interrupt endpoints not found [ 782.320110][ T25] usb 3-1: USB disconnect, device number 45 03:41:15 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:15 executing program 5: r0 = socket$inet_sctp(0x2, 0x1, 0x84) getsockopt$inet_sctp_SCTP_DEFAULT_SNDINFO(r0, 0x84, 0x21, &(0x7f00000000c0), &(0x7f0000000100)=0x10) 03:41:15 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:41:15 executing program 4: r0 = socket$inet_sctp(0x2, 0x5, 0x84) getsockopt$inet_sctp_SCTP_ADAPTATION_LAYER(r0, 0x84, 0x24, &(0x7f0000000280), &(0x7f00000002c0)=0x4) 03:41:15 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2, @ANYBLOB="01000000000000000000030000000800"], 0x1c}}, 0x0) 03:41:15 executing program 1: r0 = socket$inet_sctp(0x2, 0x1, 0x84) sendto$inet(r0, &(0x7f0000000080)="9a", 0x1, 0x0, &(0x7f00000000c0)={0x10, 0x2}, 0x10) [ 783.233542][ T9880] nbd: must specify a device to reconfigure 03:41:15 executing program 1: r0 = socket$inet6_sctp(0x1c, 0x5, 0x84) connect$inet6(r0, &(0x7f0000000400)={0x1c, 0x1c, 0x1}, 0x1c) r1 = dup2(r0, r0) getsockopt$inet_sctp_SCTP_AUTO_ASCONF(r1, 0x84, 0x18, &(0x7f00000000c0), &(0x7f0000000100)=0x4) 03:41:15 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2, @ANYBLOB="01000000000000000000030000000800"], 0x1c}}, 0x0) 03:41:15 executing program 5: r0 = socket$inet_sctp(0x2, 0x1, 0x84) setsockopt$inet_sctp_SCTP_INITMSG(r0, 0x84, 0x3, &(0x7f0000000100)={0x8000}, 0x8) connect$inet(r0, &(0x7f0000000140)={0x10}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x0, 0x0, 0xffffff6c) setsockopt$inet_sctp_SCTP_DEFAULT_SNDINFO(r0, 0x84, 0x21, 0x0, 0x0) 03:41:15 executing program 4: r0 = socket$inet6_sctp(0x1c, 0x5, 0x84) r1 = dup2(r0, r0) getsockopt$inet_sctp_SCTP_ASSOCINFO(r1, 0x84, 0x2, &(0x7f00000003c0), &(0x7f0000000040)=0x14) 03:41:15 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) [ 783.983214][ T3146] usb 3-1: new low-speed USB device number 46 using dummy_hcd [ 784.090413][ T9898] nbd: must specify a device to reconfigure 03:41:16 executing program 5: r0 = socket$inet_sctp(0x2, 0x5, 0x84) bind$inet(r0, &(0x7f0000000300)={0xffffffffffffff6e}, 0x10) listen(r0, 0xe9) setsockopt$inet_sctp_SCTP_AUTH_CHUNK(r0, 0x84, 0x12, &(0x7f0000000100), 0x1) r1 = socket$inet_sctp(0x2, 0x1, 0x84) connect$inet(r1, &(0x7f0000000080)={0xfffffffffffffe55}, 0x10) r2 = open(&(0x7f0000000480)='./file0\x00', 0x80400000000206, 0x0) mmap(&(0x7f0000000000/0x200000)=nil, 0x200000, 0x0, 0x20011, r2, 0x0) sendto(r1, &(0x7f0000000340)=')', 0x1, 0x0, 0x0, 0x0) [ 784.352998][ T3146] usb 3-1: config 168 has an invalid descriptor of length 0, skipping remainder of the config [ 784.363780][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid wMaxPacketSize 0 [ 784.374658][ T3146] usb 3-1: config 168 interface 0 altsetting 0 has 1 endpoint descriptor, different from the interface descriptor's value: 2 [ 784.792448][ T3146] usb 3-1: string descriptor 0 read error: -22 [ 784.799198][ T3146] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 784.808809][ T3146] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 784.938946][ T3146] adutux 3-1:168.0: interrupt endpoints not found [ 785.157149][ T116] usb 3-1: USB disconnect, device number 46 03:41:17 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:41:17 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16=r2, @ANYBLOB="01000000000000000000030000000800"], 0x1c}}, 0x0) 03:41:17 executing program 1: r0 = socket$inet6_sctp(0x1c, 0x5, 0x84) connect$inet6(r0, &(0x7f0000000400)={0x1c, 0x1c, 0x1}, 0x1c) r1 = dup2(r0, r0) sendmsg$inet_sctp(r1, &(0x7f0000000200)={&(0x7f0000000040)=@in={0x10, 0x2}, 0x10, 0x0, 0x0, &(0x7f0000000140)=[@dstaddrv6={0x1c, 0x84, 0xa, @local={0xfe, 0x80, '\x00', 0x0}}, @sndrcv={0x2c}], 0x48}, 0x0) 03:41:17 executing program 4: r0 = syz_open_dev$loop(&(0x7f0000000000), 0x75f, 0x1) ioctl$LOOP_SET_DIRECT_IO(r0, 0x1277, 0x0) 03:41:17 executing program 5: syz_clone3(&(0x7f00000001c0)={0x28000000, 0x0, 0x0, 0x0, {}, 0x0, 0x0, 0x0, &(0x7f0000000180)=[0xffffffffffffffff], 0x1}, 0x58) 03:41:18 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) [ 786.110950][ T9911] nbd: must specify a device to reconfigure 03:41:18 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) 03:41:18 executing program 4: r0 = syz_open_dev$loop(&(0x7f0000000000), 0x75f, 0x1) ioctl$LOOP_SET_DIRECT_IO(r0, 0x1277, 0x0) 03:41:18 executing program 5: r0 = socket$packet(0x11, 0x3, 0x300) sendmmsg(r0, &(0x7f0000004040)=[{{&(0x7f0000000000)=@nfc_llcp={0x27, 0x1, 0x0, 0x0, 0x0, 0x0, "4ea5f6e6a591b24d18af244bd9afafcfbfbc19861b0cfd04c7c01eeb6b9311d6110bc53695ef65b690f32931ceccd4124000da3262a74f65669d1a52d62974"}, 0x80, &(0x7f00000001c0)=[{&(0x7f0000000080)="e85e6eb724a8b8ee1495fb628b06", 0xe}], 0x1}}], 0x1, 0x0) 03:41:18 executing program 1: syz_emit_vhci(&(0x7f00000002c0)=@HCI_EVENT_PKT={0x4, @hci_ev_cmd_complete={{0xe, 0x4}, @HCI_OP_LE_DEL_FROM_RESOLV_LIST={{}, 0xbd}}}, 0x7) [ 786.733887][ T3146] usb 3-1: new low-speed USB device number 47 using dummy_hcd 03:41:18 executing program 4: syz_emit_vhci(&(0x7f0000000040)=@HCI_EVENT_PKT={0x4, @hci_ev_conn_complete={{0x3, 0xb}, {0x6}}}, 0xe) 03:41:19 executing program 5: syz_emit_vhci(&(0x7f0000000040)=@HCI_EVENT_PKT={0x4, @hci_ev_conn_complete={{0x3, 0xb}}}, 0xe) [ 787.103436][ T3146] usb 3-1: config 168 has an invalid descriptor of length 0, skipping remainder of the config [ 787.114373][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid wMaxPacketSize 0 [ 787.124673][ T3146] usb 3-1: config 168 interface 0 altsetting 0 has 1 endpoint descriptor, different from the interface descriptor's value: 2 03:41:19 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:41:19 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) 03:41:19 executing program 1: syz_emit_vhci(&(0x7f00000002c0)=@HCI_EVENT_PKT={0x4, @hci_ev_cmd_complete={{0xe, 0x4}, @HCI_OP_LE_DEL_FROM_RESOLV_LIST={{}, 0xbd}}}, 0x7) [ 787.485236][ T3146] usb 3-1: string descriptor 0 read error: -22 [ 787.492487][ T3146] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 787.501805][ T3146] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 03:41:19 executing program 4: openat$kvm(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) prctl$PR_SCHED_CORE(0x3e, 0x1, 0x0, 0x2, 0x0) r0 = syz_open_dev$sndmidi(&(0x7f0000000040), 0x2, 0x141101) r1 = dup(r0) write$6lowpan_enable(r1, &(0x7f0000000000)='0', 0xfffffd2c) r2 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000180)='pagemap\x00') pread64(r2, &(0x7f0000001240)=""/102400, 0x1ff000, 0x0) 03:41:19 executing program 5: r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f0000000240)={0x26, 'skcipher\x00', 0x0, 0x0, 'cbc-camellia-aesni-avx2\x00'}, 0x58) setsockopt$ALG_SET_KEY(r0, 0x117, 0x1, &(0x7f0000000100)="640c263fa9d14c782a4b0fe5d1f8ef1b5675faf4ab0ab8e3", 0x18) r1 = accept4$alg(r0, 0x0, 0x0, 0x0) recvmsg(r1, &(0x7f00000002c0)={0x0, 0x0, &(0x7f0000003780)=[{&(0x7f00000001c0)=""/25, 0x19}], 0x1}, 0x0) sendmmsg(r1, &(0x7f00000000c0)=[{{0x0, 0x0, &(0x7f0000000180)=[{&(0x7f0000000080)="c285df687183f20cc878edc15e0e1298", 0x10}], 0x1}}], 0x1, 0x0) [ 787.658964][ T3146] adutux 3-1:168.0: interrupt endpoints not found [ 787.884074][ T3146] usb 3-1: USB disconnect, device number 47 03:41:20 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:20 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) 03:41:20 executing program 1: syz_emit_vhci(&(0x7f00000002c0)=@HCI_EVENT_PKT={0x4, @hci_ev_cmd_complete={{0xe, 0x4}, @HCI_OP_LE_DEL_FROM_RESOLV_LIST={{}, 0xbd}}}, 0x7) 03:41:20 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:41:21 executing program 5: r0 = openat$procfs(0xffffffffffffff9c, &(0x7f0000000500)='/proc/mdstat\x00', 0x0, 0x0) readv(r0, &(0x7f00000003c0)=[{&(0x7f0000000100)=""/159, 0x9f}], 0x1) 03:41:21 executing program 1: syz_emit_vhci(&(0x7f00000002c0)=@HCI_EVENT_PKT={0x4, @hci_ev_cmd_complete={{0xe, 0x4}, @HCI_OP_LE_DEL_FROM_RESOLV_LIST={{}, 0xbd}}}, 0x7) 03:41:21 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16, @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) 03:41:21 executing program 4: openat$kvm(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) prctl$PR_SCHED_CORE(0x3e, 0x1, 0x0, 0x2, 0x0) r0 = syz_open_dev$sndmidi(&(0x7f0000000040), 0x2, 0x141101) r1 = dup(r0) write$6lowpan_enable(r1, &(0x7f0000000000)='0', 0xfffffd2c) r2 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000180)='pagemap\x00') pread64(r2, &(0x7f0000001240)=""/102400, 0x1ff000, 0x0) 03:41:21 executing program 5: syz_emit_vhci(&(0x7f00000002c0)=@HCI_EVENT_PKT={0x4, @hci_ev_cmd_complete={{0xe, 0x4}, @HCI_OP_LE_DEL_FROM_RESOLV_LIST}}, 0x7) syz_emit_vhci(&(0x7f00000001c0)=@HCI_EVENT_PKT={0x4, @HCI_EV_VENDOR={{0xff, 0x1}, 'e'}}, 0x4) [ 789.722802][ T3146] usb 3-1: new low-speed USB device number 48 using dummy_hcd 03:41:22 executing program 1: 03:41:22 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16, @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) [ 790.083934][ T3146] usb 3-1: config 168 has an invalid descriptor of length 0, skipping remainder of the config [ 790.095038][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 790.106231][ T3146] usb 3-1: config 168 interface 0 altsetting 0 has 1 endpoint descriptor, different from the interface descriptor's value: 2 03:41:22 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) [ 790.774499][ T3146] usb 3-1: string descriptor 0 read error: -22 [ 790.781145][ T3146] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 790.790735][ T3146] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 790.898457][ T3146] adutux 3-1:168.0: interrupt endpoints not found [ 791.102540][ T3146] usb 3-1: USB disconnect, device number 48 [ 791.173281][ T3509] Bluetooth: hci5: Controller not accepting commands anymore: ncmd = 0 [ 791.181801][ T3509] Bluetooth: hci5: Injecting HCI hardware error event [ 791.189663][ T3509] Bluetooth: hci5: hardware error 0x00 03:41:23 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:23 executing program 5: syz_emit_vhci(&(0x7f0000000180)=@HCI_EVENT_PKT={0x4, @hci_ev_remote_name={{0x7, 0xff}, {0x0, @none, "3052a4a873e31a9e468aa9079d9733f2789277ba1d07157db873a833cb55a1de15500a8cef6716340feba161e38e04bbfa60edac7bacf743ad1ef4d2742f765acdc54469ca3c1a05d09e32b6c3e9e87045154d47e3b34a08b327d38e14a4051bf6da84ce6e1c238ed5e4e330eb8a13b9fa45696ff58a827eb9808a3f698558eab0fd52a3d382a28754bf9325c89cd0f52a8a844f120e1e3338441bb6ededd02b7d624b714ccbe91e0cac0ec0f71ab441356883c8d9e885b819b95e90788c352d1cf5e4e71b3963b1efd6607fbd09a6157011a04cefb1789fb0fc6ba50cdebf2cec3c4d374fa04d6ca2c41a25865ce1e58f580faf931389e9"}}}, 0x102) 03:41:23 executing program 1: 03:41:23 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c000000", @ANYRES16, @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) 03:41:23 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) ioctl$EVIOCGPROP(0xffffffffffffffff, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(0xffffffffffffffff, 0x4020744f, &(0x7f00000003c0)) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) r2 = dup(r1) write$P9_RMKDIR(r2, &(0x7f00000000c0)={0x14}, 0x14) 03:41:23 executing program 4: openat$kvm(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) prctl$PR_SCHED_CORE(0x3e, 0x1, 0x0, 0x2, 0x0) r0 = syz_open_dev$sndmidi(&(0x7f0000000040), 0x2, 0x141101) r1 = dup(r0) write$6lowpan_enable(r1, &(0x7f0000000000)='0', 0xfffffd2c) r2 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000180)='pagemap\x00') pread64(r2, &(0x7f0000001240)=""/102400, 0x1ff000, 0x0) 03:41:24 executing program 1: 03:41:24 executing program 5: r0 = epoll_create1(0x0) r1 = epoll_create1(0x0) epoll_ctl$EPOLL_CTL_ADD(r1, 0x1, r0, &(0x7f00000021c0)) 03:41:24 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYRES16=r2, @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) 03:41:24 executing program 1: syz_emit_vhci(0x0, 0x0) 03:41:24 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) ioctl$EVIOCGPROP(0xffffffffffffffff, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(0xffffffffffffffff, 0x4020744f, &(0x7f00000003c0)) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) r2 = dup(r1) write$P9_RMKDIR(r2, &(0x7f00000000c0)={0x14}, 0x14) 03:41:25 executing program 5: timer_create(0x0, 0x0, &(0x7f00000013c0)) clock_gettime(0x0, &(0x7f0000001400)={0x0}) timer_settime(0x0, 0x0, &(0x7f0000001440)={{0x0, 0x989680}, {r0}}, 0x0) [ 792.942812][ T116] usb 3-1: new low-speed USB device number 49 using dummy_hcd [ 793.292741][ T3509] Bluetooth: hci5: Opcode 0x c03 failed: -110 [ 793.332996][ T116] usb 3-1: config 168 has an invalid descriptor of length 0, skipping remainder of the config [ 793.343975][ T116] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 793.355069][ T116] usb 3-1: config 168 interface 0 altsetting 0 has 1 endpoint descriptor, different from the interface descriptor's value: 2 [ 793.783027][ T116] usb 3-1: string descriptor 0 read error: -22 [ 793.789792][ T116] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 793.799363][ T116] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 793.869454][ T116] adutux 3-1:168.0: interrupt endpoints not found [ 794.086575][ T116] usb 3-1: USB disconnect, device number 49 03:41:26 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:26 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYRES16=r2, @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) 03:41:26 executing program 4: r0 = syz_usb_connect(0x0, 0x3f, &(0x7f0000000840)=ANY=[@ANYBLOB="11010000733336088dee1adb23610000000109022d0001100000000904000003fe03010009cd8d1f00020000000905050200de7e001009058b1e20"], 0x0) syz_usb_control_io(r0, 0x0, 0x0) syz_usb_control_io$printer(r0, 0x0, 0x0) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) ioctl$EVIOCGMASK(r1, 0x80015b1a, 0x0) 03:41:26 executing program 1: syz_emit_vhci(0x0, 0x0) 03:41:26 executing program 5: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) r2 = ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x0) ioctl$KVM_CREATE_VCPU(0xffffffffffffffff, 0xae41, 0x0) openat$bsg(0xffffffffffffff9c, 0x0, 0x200, 0x0) ioctl$KVM_CREATE_VM(0xffffffffffffffff, 0xae01, 0x0) ioctl$KVM_SET_CPUID(r2, 0xc008ae88, &(0x7f0000000100)=ANY=[@ANYBLOB="0100000000000000fb"]) syz_open_dev$sndmidi(&(0x7f0000000040), 0x0, 0x0) socket$inet_udplite(0x2, 0x2, 0x88) ioctl$sock_SIOCGIFINDEX(0xffffffffffffffff, 0x8933, &(0x7f0000000340)={'bridge_slave_0\x00'}) sendmsg$nl_route(0xffffffffffffffff, &(0x7f00000003c0)={0x0, 0x0, 0x0}, 0x0) 03:41:26 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) ioctl$EVIOCGPROP(0xffffffffffffffff, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(0xffffffffffffffff, 0x4020744f, &(0x7f00000003c0)) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) r2 = dup(r1) write$P9_RMKDIR(r2, &(0x7f00000000c0)={0x14}, 0x14) 03:41:27 executing program 1: syz_emit_vhci(0x0, 0x0) 03:41:27 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYRES16=r2, @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) [ 795.402355][ T7633] usb 5-1: new high-speed USB device number 48 using dummy_hcd 03:41:27 executing program 5: syz_emit_vhci(&(0x7f00000000c0)=ANY=[@ANYBLOB="03d1bdea1c9350e4531dfbbab7bda2a4771deb56c80000a93a9251b696c7a95b361f8434ccd718cc344b08f30ab656745d61aefadd4f864d9f42e9f918a2d724d2aada789577699933706efef9affda2d16f5de7c03d22d0a8fd62bb3a07ca4ab5ae3bebf68d"], 0x4) syz_emit_vhci(&(0x7f00000001c0)=@HCI_EVENT_PKT={0x4, @HCI_EV_VENDOR={{0xff, 0x1}, 'e'}}, 0x4) 03:41:27 executing program 1: syz_emit_vhci(&(0x7f00000002c0)=@HCI_EVENT_PKT={0x4, @hci_ev_cmd_complete={{0xe, 0x4}, @HCI_OP_LE_DEL_FROM_RESOLV_LIST}}, 0x7) [ 795.653505][ T7633] usb 5-1: Using ep0 maxpacket: 8 [ 795.682426][ T3565] usb 3-1: new low-speed USB device number 50 using dummy_hcd [ 795.774151][ T7633] usb 5-1: config 16 interface 0 altsetting 0 endpoint 0x5 has invalid maxpacket 56832, setting to 1024 [ 795.785658][ T7633] usb 5-1: config 16 interface 0 altsetting 0 bulk endpoint 0x5 has invalid maxpacket 1024 [ 795.796036][ T7633] usb 5-1: config 16 interface 0 altsetting 0 bulk endpoint 0x8B has invalid maxpacket 32 [ 795.806268][ T7633] usb 5-1: config 16 interface 0 altsetting 0 has 2 endpoint descriptors, different from the interface descriptor's value: 3 [ 795.819603][ T7633] usb 5-1: New USB device found, idVendor=ee8d, idProduct=db1a, bcdDevice=61.23 [ 795.828966][ T7633] usb 5-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 03:41:27 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB, @ANYRES16=r2, @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) 03:41:28 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) [ 796.053300][ T3565] usb 3-1: config 168 has an invalid descriptor of length 0, skipping remainder of the config [ 796.064095][ T3565] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 796.076013][ T3565] usb 3-1: config 168 interface 0 altsetting 0 has 1 endpoint descriptor, different from the interface descriptor's value: 2 [ 796.162731][ T7633] usb 5-1: usb_control_msg returned -32 [ 796.169568][ T7633] usbtmc 5-1:16.0: can't read capabilities [ 796.473257][ T3565] usb 3-1: string descriptor 0 read error: -22 [ 796.480015][ T3565] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 796.489505][ T3565] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 796.662606][ T3565] adutux 3-1:168.0: interrupt endpoints not found [ 796.873056][T10021] usbtmc 5-1:16.0: send_request_dev_dep_msg_in returned -71 [ 796.926659][ T3565] usb 3-1: USB disconnect, device number 50 03:41:29 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef080584"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:29 executing program 5: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000280), 0x0, 0x0) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) ioctl$KVM_CREATE_VCPU(0xffffffffffffffff, 0xae41, 0x0) ioctl$KVM_SET_IRQCHIP(r1, 0x4188aec6, &(0x7f00000004c0)) 03:41:30 executing program 4: syz_emit_vhci(&(0x7f0000000140)=@HCI_SCODATA_PKT={0x3, {0xc8}}, 0x4) syz_emit_vhci(&(0x7f0000000080)=@HCI_EVENT_PKT={0x4, @hci_ev_qos_setup_complete={{0xd, 0x14}}}, 0x17) 03:41:30 executing program 1: syz_emit_vhci(&(0x7f00000002c0)=@HCI_EVENT_PKT={0x4, @hci_ev_cmd_complete={{0xe, 0x4}, @HCI_OP_LE_DEL_FROM_RESOLV_LIST}}, 0x7) 03:41:30 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB, @ANYRES16=r2, @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) 03:41:30 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:41:30 executing program 5: r0 = socket$inet6_tcp(0xa, 0x1, 0x0) sendto$inet6(r0, 0x0, 0x0, 0x24000004, &(0x7f00000000c0)={0xa, 0x0, 0x0, @loopback}, 0x1c) [ 797.996229][ T3565] usb 5-1: USB disconnect, device number 48 [ 798.232768][ T7633] usb 3-1: new low-speed USB device number 51 using dummy_hcd 03:41:30 executing program 1: syz_emit_vhci(&(0x7f00000002c0)=@HCI_EVENT_PKT={0x4, @hci_ev_cmd_complete={{0xe, 0x4}, @HCI_OP_LE_DEL_FROM_RESOLV_LIST}}, 0x7) 03:41:30 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB, @ANYRES16=r2, @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) 03:41:30 executing program 5: r0 = socket$inet6_udp(0xa, 0x2, 0x0) sendmmsg$inet6(r0, &(0x7f0000000500)=[{{&(0x7f0000000040)={0xa, 0x7fff, 0x0, @initdev={0xfe, 0x88, '\x00', 0x0, 0x0}}, 0x1c, 0x0, 0x0, &(0x7f0000000480)=[@flowinfo={{0x14, 0x29, 0xb, 0x8000}}], 0x18}}], 0x1, 0x0) 03:41:30 executing program 4: syz_emit_vhci(&(0x7f0000000000)=@HCI_EVENT_PKT={0x4, @hci_ev_conn_request={{0x4, 0xa}, {@any, "78951c", 0x1}}}, 0xd) [ 798.663473][ T7633] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 798.671133][ T7633] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 798.682858][ T7633] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 has invalid wMaxPacketSize 0 03:41:31 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c00", @ANYRES16=r2, @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) [ 799.043256][ T7633] usb 3-1: string descriptor 0 read error: -22 [ 799.050117][ T7633] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 799.063965][ T7633] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 799.305973][ T7633] adutux 3-1:168.0: interrupt endpoints not found [ 799.508795][ T116] usb 3-1: USB disconnect, device number 51 03:41:32 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef080584"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:32 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:41:32 executing program 1: syz_emit_ethernet(0x76, &(0x7f0000000380)={@multicast, @random="e6a92f1f3a15", @void, {@ipv6={0x86dd, @generic={0x0, 0x6, "7e1e93", 0x0, 0x0, 0x0, @local, @empty}}}}, 0x0) 03:41:32 executing program 5: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = socket$nl_generic(0x10, 0x3, 0x10) sendmsg$DEVLINK_CMD_RATE_NEW(0xffffffffffffffff, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000000100)={&(0x7f0000000180)={0xf4, 0x0, 0x0, 0x0, 0x0, {}, [@DEVLINK_ATTR_PORT_INDEX={0x8}, @DEVLINK_ATTR_RATE_TX_MAX={0xc}, @DEVLINK_ATTR_RATE_PARENT_NODE_NAME={0x95, 0xa9, @random="b88f9bdf8c3a4ab18740166fd7f3aedb3e60c430d311550cc3407a2b6117a9b2538344b4cd1e86e5834e7cc7827fd5ac6dce8e33e388b10838781d8604943a209de4ce0bbac0789e54eba4ff93202be4ba876384d92a416e9a7de629ab0d48ceadf0c4f101f75399ff9ff0ad1db50e456172fb82dd2b4a60bed9bd10e9db063d0ee12615471538d2fc4010877878198233"}, @DEVLINK_ATTR_RATE_NODE_NAME={0xf, 0xa8, @name2}, @DEVLINK_ATTR_RATE_PARENT_NODE_NAME={0xe}, @DEVLINK_ATTR_PORT_INDEX={0x8}, @DEVLINK_ATTR_RATE_TX_SHARE={0xc}]}, 0xf4}}, 0x0) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000140)={'wlan0\x00', 0x0}) r3 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000080), 0xffffffffffffffff) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000a80)={0x0, 0x0, &(0x7f0000000000)={&(0x7f00000000c0)=ANY=[@ANYBLOB="f0020000", @ANYRES16=r3, @ANYBLOB="010400000000000000003b00000008000300", @ANYRES32=r2, @ANYBLOB="d2023300802b0001080211000000080211"], 0x2f0}}, 0x0) 03:41:32 executing program 4: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) r2 = ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x0) ioctl$KVM_SET_VCPU_EVENTS(r2, 0x4040aea0, &(0x7f0000000040)={0xa5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7}) 03:41:32 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c00", @ANYRES16=r2, @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) 03:41:32 executing program 1: r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f0000000240)={0x26, 'skcipher\x00', 0x0, 0x0, 'ecb-camellia-aesni-avx2\x00'}, 0x58) setsockopt$ALG_SET_KEY(r0, 0x117, 0x1, &(0x7f0000000100)="640c263fa9d14c782a4b0fe5d1f8ef1b5675faf4ab0ab8e3", 0x18) r1 = accept4$alg(r0, 0x0, 0x0, 0x0) recvmsg(r1, &(0x7f00000002c0)={0x0, 0x0, &(0x7f0000003780)=[{&(0x7f00000001c0)=""/25, 0x19}, {&(0x7f00000003c0)=""/228, 0xe4}], 0x2}, 0x0) sendmmsg(r1, &(0x7f00000000c0)=[{{0x0, 0x0, &(0x7f0000000180)=[{&(0x7f0000000080)="c285df687183f20cc878edc15e0e1298ff7e4a4e05798053945736", 0x1b}, {&(0x7f0000000300)="32d610e2e4", 0x5}], 0x2}}], 0x1, 0x0) 03:41:32 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c00", @ANYRES16=r2, @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) 03:41:32 executing program 5: epoll_create1(0x0) r0 = epoll_create1(0x0) r1 = fcntl$dupfd(r0, 0x0, r0) syz_emit_vhci(&(0x7f0000000040)=ANY=[@ANYRES32=r1], 0x7) 03:41:33 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r0 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r0, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r0, 0x4020744f, &(0x7f00000003c0)) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) r2 = dup(r1) write$P9_RMKDIR(r2, &(0x7f00000000c0)={0x14}, 0x14) [ 800.973324][ T3565] usb 3-1: new low-speed USB device number 52 using dummy_hcd 03:41:33 executing program 4: syz_io_uring_setup(0x1c16, &(0x7f0000000100), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, 0x0, 0x0) r0 = syz_io_uring_setup(0x1c16, &(0x7f0000000100), &(0x7f0000000000/0x4000)=nil, &(0x7f0000000000/0x2000)=nil, &(0x7f0000000040), &(0x7f00000001c0)) io_uring_enter(r0, 0x4236, 0x0, 0x0, 0x0, 0x0) io_uring_enter(r0, 0x2000, 0x0, 0x0, 0x0, 0x0) [ 801.212492][ T9977] Bluetooth: hci1: command 0x0409 tx timeout 03:41:33 executing program 5: r0 = syz_open_procfs(0x0, &(0x7f0000000000)='net/nf_conntrack\x00') preadv(r0, &(0x7f0000000040)=[{&(0x7f0000000300)=""/177, 0xb1}], 0x1, 0x0, 0x0) [ 801.334095][ T3565] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 801.342348][ T3565] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 801.353506][ T3565] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 has invalid wMaxPacketSize 0 [ 801.704998][ T3565] usb 3-1: string descriptor 0 read error: -22 [ 801.711822][ T3565] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 801.721292][ T3565] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 801.899105][ T3565] adutux 3-1:168.0: interrupt endpoints not found [ 802.101500][ T3565] usb 3-1: USB disconnect, device number 52 03:41:34 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef080584"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:34 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c0000", @ANYRES16=r2, @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) 03:41:34 executing program 1: r0 = socket$inet_udp(0x2, 0x2, 0x0) setsockopt$SO_BINDTODEVICE(r0, 0x1, 0x19, &(0x7f0000000140)='wg0\x00', 0x10) connect$inet(r0, &(0x7f0000000040)={0x2, 0x0, @multicast2}, 0x10) sendmmsg(r0, &(0x7f00000039c0)=[{{0x0, 0x1e, 0x0, 0x0, 0x0, 0x0, 0xa}}], 0x40000000000017f, 0x0) 03:41:34 executing program 4: r0 = socket$inet_sctp(0x2, 0x1, 0x84) connect$inet(r0, &(0x7f0000000140)={0x10, 0x2}, 0x10) recvmsg(r0, &(0x7f0000000180)={0x0, 0x0, 0x0, 0x0, &(0x7f0000000100)=""/7, 0x7}, 0xba603413b9ba1ab2) 03:41:34 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r0 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r0, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r0, 0x4020744f, &(0x7f00000003c0)) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) r2 = dup(r1) write$P9_RMKDIR(r2, &(0x7f00000000c0)={0x14}, 0x14) 03:41:34 executing program 5: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) ioctl$KVM_CAP_HALT_POLL(r1, 0x4068aea3, &(0x7f0000000180)={0xb6, 0x3}) 03:41:35 executing program 4: syz_clone3(&(0x7f0000000280)={0x0, 0x0, 0x0, 0x0, {}, &(0x7f0000000140)=""/50, 0x32, 0x0, &(0x7f0000000240)=[0xffffffffffffffff, 0xffffffffffffffff], 0x2}, 0x58) 03:41:35 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r0, 0x6, 0x80000000000002, &(0x7f00000000c0)=0x2000000000000074, 0x25d) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) writev(r0, &(0x7f0000000ac0)=[{&(0x7f00000004c0)="a3048eaa131daf2bedb03d893df4ab0eeaaec6ad829d2347049264e6802ed9d99cfd00f5ec0971e68c4049796085c1415b9464431b4a5999e36ad918a4e5948fbb0f8d29f7850276843d65bcc856cd804ab6b13dc1047c092fe386081e4d5bafd791c36f71194910a8", 0x69}], 0x1) 03:41:35 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c0000", @ANYRES16=r2, @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) [ 803.502408][ T116] usb 3-1: new low-speed USB device number 53 using dummy_hcd 03:41:35 executing program 5: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000280), 0x0, 0x0) bind$packet(0xffffffffffffffff, &(0x7f0000000140)={0x11, 0x17, 0x0, 0x1, 0x0, 0x6, @link_local}, 0x14) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) r2 = ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x0) ioctl$KVM_SET_USER_MEMORY_REGION(r1, 0x4020ae46, 0x0) ioctl$KVM_RUN(0xffffffffffffffff, 0xae80, 0x0) ioctl$KVM_RUN(0xffffffffffffffff, 0xae80, 0x0) ioctl$KVM_RUN(r2, 0x8090ae81, 0x20000000) 03:41:35 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r0 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r0, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r0, 0x4020744f, &(0x7f00000003c0)) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) r2 = dup(r1) write$P9_RMKDIR(r2, &(0x7f00000000c0)={0x14}, 0x14) 03:41:35 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r0, 0x6, 0x80000000000002, &(0x7f00000000c0)=0x2000000000000074, 0x25d) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) writev(r0, &(0x7f0000000ac0)=[{&(0x7f00000004c0)="a3048eaa131daf2bedb03d893df4ab0eeaaec6ad829d2347049264e6802ed9d99cfd00f5ec0971e68c4049796085c1415b9464431b4a5999e36ad918a4e5948fbb0f8d29f7850276843d65bcc856cd804ab6b13dc1047c092fe386081e4d5bafd791c36f71194910a8", 0x69}], 0x1) [ 803.882980][ T116] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 803.890655][ T116] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 803.901790][ T116] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 has invalid wMaxPacketSize 0 [ 804.273422][ T116] usb 3-1: string descriptor 0 read error: -22 [ 804.280385][ T116] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 804.289779][ T116] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 804.559222][ T116] adutux 3-1:168.0: interrupt endpoints not found [ 804.846696][ T25] usb 3-1: USB disconnect, device number 53 03:41:37 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r0, 0x6, 0x80000000000002, &(0x7f00000000c0)=0x2000000000000074, 0x25d) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) writev(r0, &(0x7f0000000ac0)=[{&(0x7f00000004c0)="a3048eaa131daf2bedb03d893df4ab0eeaaec6ad829d2347049264e6802ed9d99cfd00f5ec0971e68c4049796085c1415b9464431b4a5999e36ad918a4e5948fbb0f8d29f7850276843d65bcc856cd804ab6b13dc1047c092fe386081e4d5bafd791c36f71194910a8", 0x69}], 0x1) 03:41:37 executing program 4: syz_clone3(&(0x7f0000000280)={0x0, 0x0, 0x0, 0x0, {}, &(0x7f0000000140)=""/50, 0x32, 0x0, &(0x7f0000000240)=[0xffffffffffffffff, 0xffffffffffffffff], 0x2}, 0x58) 03:41:37 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) ioctl$TIOCSETD(0xffffffffffffffff, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r0 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r0, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r0, 0x4020744f, &(0x7f00000003c0)) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) r2 = dup(r1) write$P9_RMKDIR(r2, &(0x7f00000000c0)={0x14}, 0x14) 03:41:37 executing program 5: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000280), 0x0, 0x0) bind$packet(0xffffffffffffffff, &(0x7f0000000140)={0x11, 0x17, 0x0, 0x1, 0x0, 0x6, @link_local}, 0x14) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) r2 = ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x0) ioctl$KVM_SET_USER_MEMORY_REGION(r1, 0x4020ae46, 0x0) ioctl$KVM_RUN(0xffffffffffffffff, 0xae80, 0x0) ioctl$KVM_RUN(0xffffffffffffffff, 0xae80, 0x0) ioctl$KVM_RUN(r2, 0x8090ae81, 0x20000000) 03:41:37 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef0805840200"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:37 executing program 3: r0 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r1 = syz_init_net_socket$nl_generic(0x10, 0x3, 0x10) r2 = syz_genetlink_get_family_id$nbd(&(0x7f0000000080), r1) sendmsg$NBD_CMD_STATUS(r0, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000140)={&(0x7f00000001c0)=ANY=[@ANYBLOB="1c0000", @ANYRES16=r2, @ANYBLOB="0100000000000000000003000000080001"], 0x1c}}, 0x0) 03:41:37 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r0, 0x6, 0x80000000000002, &(0x7f00000000c0)=0x2000000000000074, 0x25d) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) writev(r0, &(0x7f0000000ac0)=[{&(0x7f00000004c0)="a3048eaa131daf2bedb03d893df4ab0eeaaec6ad829d2347049264e6802ed9d99cfd00f5ec0971e68c4049796085c1415b9464431b4a5999e36ad918a4e5948fbb0f8d29f7850276843d65bcc856cd804ab6b13dc1047c092fe386081e4d5bafd791c36f71194910a8", 0x69}], 0x1) 03:41:38 executing program 4: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) r2 = ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x0) ioctl$KVM_SET_MSRS(r2, 0x4008ae89, &(0x7f0000000040)={0x1, 0x0, [{0x2ff}]}) 03:41:38 executing program 3: r0 = shmget$private(0x0, 0x1000, 0x0, &(0x7f0000fff000/0x1000)=nil) shmat(r0, &(0x7f0000fff000/0x1000)=nil, 0x5000) 03:41:38 executing program 5: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000280), 0x0, 0x0) bind$packet(0xffffffffffffffff, &(0x7f0000000140)={0x11, 0x17, 0x0, 0x1, 0x0, 0x6, @link_local}, 0x14) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) r2 = ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x0) ioctl$KVM_SET_USER_MEMORY_REGION(r1, 0x4020ae46, 0x0) ioctl$KVM_RUN(0xffffffffffffffff, 0xae80, 0x0) ioctl$KVM_RUN(0xffffffffffffffff, 0xae80, 0x0) ioctl$KVM_RUN(r2, 0x8090ae81, 0x20000000) [ 806.362281][ T3146] usb 3-1: new low-speed USB device number 54 using dummy_hcd 03:41:38 executing program 3: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) prctl$PR_SCHED_CORE(0x3e, 0x1, 0x0, 0x2, 0x0) r1 = syz_open_dev$sndmidi(&(0x7f0000000040), 0x2, 0x141101) r2 = dup(r1) write$6lowpan_enable(r2, &(0x7f0000000000)='0', 0xfffffd2c) r3 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000180)='pagemap\x00') pread64(r3, &(0x7f0000001240)=""/102400, 0x1ff000, 0x0) 03:41:38 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r0, 0x6, 0x80000000000002, &(0x7f00000000c0)=0x2000000000000074, 0x25d) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:41:38 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) ioctl$TIOCSETD(0xffffffffffffffff, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r0 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r0, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r0, 0x4020744f, &(0x7f00000003c0)) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) r2 = dup(r1) write$P9_RMKDIR(r2, &(0x7f00000000c0)={0x14}, 0x14) [ 806.723215][ T3146] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 806.730968][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 806.744870][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 is Bulk; changing to Interrupt [ 806.756181][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 has invalid wMaxPacketSize 0 03:41:38 executing program 5: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000280), 0x0, 0x0) bind$packet(0xffffffffffffffff, &(0x7f0000000140)={0x11, 0x17, 0x0, 0x1, 0x0, 0x6, @link_local}, 0x14) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) r2 = ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x0) ioctl$KVM_SET_USER_MEMORY_REGION(r1, 0x4020ae46, 0x0) ioctl$KVM_RUN(0xffffffffffffffff, 0xae80, 0x0) ioctl$KVM_RUN(0xffffffffffffffff, 0xae80, 0x0) ioctl$KVM_RUN(r2, 0x8090ae81, 0x20000000) 03:41:38 executing program 4: syz_emit_vhci(&(0x7f0000000000)=@HCI_EVENT_PKT={0x4, @hci_ev_remote_ext_features={{0x23, 0xd}, {0x2, 0xc9, 0x40, 0x0, "426491f60c5a2511"}}}, 0x10) [ 807.233312][ T3146] usb 3-1: string descriptor 0 read error: -22 [ 807.240158][ T3146] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 807.252705][ T3146] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 807.455821][ T3146] adutux 3-1:168.0: ADU100 now attached to /dev/usb/adutux0 03:41:39 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r0, 0x6, 0x80000000000002, &(0x7f00000000c0)=0x2000000000000074, 0x25d) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) [ 807.601827][ T3146] usb 3-1: USB disconnect, device number 54 03:41:40 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef0805840200"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:40 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) ioctl$TIOCSETD(0xffffffffffffffff, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r0 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r0, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r0, 0x4020744f, &(0x7f00000003c0)) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) r2 = dup(r1) write$P9_RMKDIR(r2, &(0x7f00000000c0)={0x14}, 0x14) 03:41:40 executing program 4: syz_emit_ethernet(0x2a, &(0x7f0000000500)={@local, @local, @void, {@ipv4={0x8864, @igmp={{0x5, 0x4, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0, 0x2, 0x0, @local, @private}, {0x0, 0x0, 0x0, @broadcast}}}}}, 0x0) 03:41:40 executing program 5: syz_emit_vhci(&(0x7f0000000000)=@HCI_ACLDATA_PKT={0x2, {0xc8, 0x1, 0x0, 0xffffffffffffff75}, @l2cap_cid_le_signaling={{0xe}, @l2cap_le_conn_rsp={{0x15, 0x0, 0xa}}}}, 0x17) 03:41:40 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r0, 0x6, 0x80000000000002, &(0x7f00000000c0)=0x2000000000000074, 0x25d) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:41:40 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:41:40 executing program 3: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) prctl$PR_SCHED_CORE(0x3e, 0x1, 0x0, 0x2, 0x0) r1 = syz_open_dev$sndmidi(&(0x7f0000000040), 0x2, 0x141101) r2 = dup(r1) write$6lowpan_enable(r2, &(0x7f0000000000)='0', 0xfffffd2c) r3 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000180)='pagemap\x00') pread64(r3, &(0x7f0000001240)=""/102400, 0x1ff000, 0x0) 03:41:41 executing program 5: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f00000000c0), 0x0, 0x0) ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) prctl$PR_SCHED_CORE(0x3e, 0x1, 0x0, 0x2, 0x0) r1 = syz_open_dev$sndmidi(&(0x7f0000000040), 0x2, 0x141101) r2 = dup(r1) write$6lowpan_enable(r2, &(0x7f0000000000)='0', 0xfffffd2c) r3 = syz_open_procfs(0xffffffffffffffff, &(0x7f0000000180)='pagemap\x00') pread64(r3, &(0x7f0000001240)=""/102400, 0x1ff000, 0x0) 03:41:41 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r0, 0x6, 0x80000000000002, &(0x7f00000000c0)=0x2000000000000074, 0x25d) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) [ 809.382214][ T3563] usb 3-1: new low-speed USB device number 55 using dummy_hcd 03:41:41 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:41:41 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:41:41 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) [ 809.892672][ T3563] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 809.900281][ T3563] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 809.913596][ T3563] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 is Bulk; changing to Interrupt [ 809.924320][ T3563] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 has invalid wMaxPacketSize 0 [ 810.392451][ T3563] usb 3-1: string descriptor 0 read error: -22 [ 810.399061][ T3563] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 810.409204][ T3563] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 810.686995][ T3563] adutux 3-1:168.0: ADU100 now attached to /dev/usb/adutux0 [ 810.918064][ T3563] usb 3-1: USB disconnect, device number 55 03:41:43 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef0805840200"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:43 executing program 1: bind$inet(0xffffffffffffffff, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(0xffffffffffffffff, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:41:43 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:41:43 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:41:43 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:41:43 executing program 3: r0 = socket$inet6_mptcp(0xa, 0x1, 0x106) connect$inet6(r0, &(0x7f00000000c0)={0xa, 0x4001, 0x0, @loopback}, 0x1c) setsockopt$SO_BINDTODEVICE_wg(r0, 0x1, 0x19, &(0x7f0000000080)='wg1\x00', 0x4) sendmmsg$inet6(r0, &(0x7f0000005a80)=[{{0x0, 0x0, &(0x7f00000001c0)=[{&(0x7f0000000140)="cf", 0x1}], 0x1}}, {{0x0, 0x0, &(0x7f0000002680)=[{&(0x7f0000000200)="fd3e2e8c19e802af7ab2a433a8966f0a508b30a3cf3827261a717caa52007275549ae8d1ada644380af9edf7f4135cfd5e346e3fc92714cdaf2534f7fb61d01be202509f1daaeb5b28144c4d9b8991c0cee53c0097ac33a3ada9c6efb27fb2abb2ea34526b6ff2bf7e750e6110c93eb50b848d0d01d584aec2fad96e4fc426c1da24f266be8039f622903d8dd64fea14381d09ba6ac2ecca6f9ea23562cdc5bbb8a6849d5e055cbd983d6ecd5d1d0644f01837ea3a5301c1fea0ba4e7fc6e5a968ee8586e4ac9ba322772551b1cda1c208b30bfca305ef9a72ec40f6bb1e585afdaac87bed4a369d8b6581aa23cde8df09716965d44bcf330903c063d0d24c4c4e1c0a2b5099f9e68635fa76f89aba2a7be77315c7282adbbfb61b74ffa2a46ef58a4fd024eb5bcf49adf4f36459d41b747f630301608694eed4fccc2423819a6ff990e786de1322dc8ee65e45f2caeafc13ba3bb27792acb334598a6b250c94ce1c0a9ccf7d1097c35ccae86d4326268a7efc82bec5231f4e64bae66eeb34386b25272c347e4f7b0174961e962ea43694800b5520a6bba5de92fc7ab5fcb01a9adb5cf711ae83dd5e79555584f6f771a8c8c999471047e1d16db89e08b8ceee1d9c62bea3d35b89fa6e06d6b17cf1ccc12b3f486b0550f2cdc5fd2d978e0ce8290b060ea68dae654740749a34191a55b549ea6655b97513c1c028f30f70a9c3ca7cfcec94fae0357e3212ecb063250a370366ec6a350b94ebd3c22ed93afee93c9416fbc04eb14f854f6aa2160a283cc80395e4089ae4b2abf84dba348514ebbf5de26455aa8597e0c8fb4cc3c10014ee5e8dbd7586a7b90b4545871da23ac7282b9fd424b5260c5f58670220da305d1ffec0dad4f7a42b0940061ce8dfb97ac17250aa2903fd2e183b5baef9cbe9936dda64f054484bfea1356c917f674a8739e41f28ff0c01e3ba2be0980446bd7e00d7dbf4a345513087246907d536a1a95cdd1a340839cfc656e0cec968476eda72abaa639427821d84d3dd559bd83eccf0b391fdc9a5fb72830b53d47c82a3450633c571d092571e04e976d767fad5d3fb39e6486bb2760d512f8e851116b49adc0167374096bcdfd6398192b3960c8ef8bd8a4a9906d82d0c102574fb7bfd069c4791ba01afe8233bc64526c06f6526e6917f832e3f386f172da271871c651d5d29c2b7af24de8e9aa02ccb1e0f0e4e31f989de566f6d2eee05bb3e21d8cdb5ae9b4066fc4f90e5c27acc67a5c44925e76fcfe4c62fc7eed8fd336a75bdfa2dfa2476520ab097eb02140880d27b66598cfdc1ebcf676a278d8894b2834a51469af320d2a091b8b51814b54bbe11db8b9a0b73ab71b4dc158d510cd64bfb5d2b285960d9f92c581e2a11c63db59d80d9ff99d7dee1e3a383921af273843f0fd24cfc08b2a3844bda05808609d02c9d3d21622ad71f536fb598593ffbcd5e6c7e9bc4d22e59b393487a09ce973edf04d2363ec00a0a9b1fb64ddc0f320fa562cdb93806f54fe9f8a6f3093dbd0308632712a3563747b0143064b0607a40dac41a70d1f7d43da352f9304021b2e131e02f9a591657b1905a5dc0ad8ddd2f441a455297e5f41461045802b13495781fc10a4ac59700b5ae9f16352d1ce372cd0012297d53d87faae172e626b868f08aa8ba8bdd89cbfd8f4878b4fd60cb42d38f54b71abb37717721756dd20fb254be117a713ac74488c69e180d8016d526ee6efb8a5ae547a216dfe555936df5b604761e9e79038adcf75a715a86c0c0099e30edb4648a2b272de144b9ffac72dbcec748b76c2508bea5680505e5188a508daa9e14fc56ce1c7184f7da016114326e08c85cb5f9db682979ea2949d336deadba777de0a255328cb9a4892a31aa0a4d7153814b36cf9b4b5b7bb246ddba3fa64d695ad81426c99ecf1919db87c77415adc054561a6386b4b1a328bec632c896cbbd31029056ed6e6f3096423f40733bd21203dce27ffaec8f106927252f1076265e52db7f99af9dd1dadc7a53dd52d7f4e7a3a8018217b719f9a08997408456a806e44e9438f0dc1de318e1c97fda5021c14d41f812a7dfa5107b2911308a2274c015b2a1c49419ac6192dae7bb9a6f14566a593eac776904b8e389fee3b3b131714314cc0e3a74e35d866206933b6ff8bceb764f599392546ecc4db130bc2d15623cd73fc59a775a801abb30d79b2b1944a988a8c883f9861148e7d8ad108f9a3122bd8ff307c147a4fcf08788d35e87b91155bf8338d5104bbe7c9eb5ea1a20bd4f89fdd953e72661fc384faee6dde46ecc84af337a3954677358d65526e0944985278573161afc2cadf7550512cc6902fbf20d9bf20d25bd0ca6744fe5d6098b4b09d23168f3938219a7e42837749d3901a813c749c4ce368b3df593b717f164b89b7d3e2669b04a3ac13b797165854360faa546c94a39de90a6bef8c4f496745833360c74ab37a8c1b0be8a504b2dbe86adb35672332fe18faebd59899b823dd3bd31be5658dcebdf9bf1ef6e5c6bbd4ecce0c99e82ec975be72d4866cbc4b0d6a6adc1d0b508c141dc0006eecea7879c041cc78b388f6801309057c50a26a49f8fcf4ade63dfdba5b6dc8eb187ad38aa26476bea6132a22abcb09027034c3b1e9b81e6b11a19ca4a6bee7a84b262d72a7592bc7fbced2c4615c39f3c917bf96b2253cca5fe302f68d56d08c32ea9f1fe7e02ed9d90052575802d34b2cc43e6e39d473f28abb1afe83e507f9c56298ad781d86d7dc46e46c9f76124cf85ddf71116cedc6618dde711130469a965d746bbd3fe04f2d70dd90800f403103d22b746f15193b4397acf20d0e63134970799503ab231f903bca1cfe7e0cf0077aa7f9a064663f4440e0c5ce28b10307d8225e6d43f497670527d7477db76451662500be305d0a5bb65057825660899888c11f2cfb955a076c584ea530d8a29638fbd3a3dc8b0e0389a2142e9eb2bc7d96090fede3b47b4e31cc265a49a9040e3f8f04d773482dfcebfb905304febff20c037b16df514780589e618fc9baaa79a149eaf693a2c34d93d07e777ec5fcb56d6258113ebd6c62b10781641827d975e60cbae8e7109afe5340115fd0901933986543ba221801538f7702b87f43b99bd147914d45b2c55a4256b7f18a64702b3f3aa7cc14a4815bb805040e8682b4a3eaf5d6d4047141eee04bad05e0507cf79401ea9538c43a1daf787769520cb073e2253a3236c1b248d86d648b41018439db0ac28adcd9028c27b99495176432822e23bc0641365b226bb8c3faff14ddbcb5ac24ab129ce1bde9af6ab371d2bfd2ffce54528dc2d01d81e8734a9dd5ed65622156aed933be4101a29d0004275c64917334e2f9c92a091cefb5d569408ecaba047bc2d40d205cb651aa03379b5b6c3d097de5f2fc6ca81c7cbc318028a794f22b1a2cb31c664c4413e3778ceb169f1fa75b4515eca3aa507b62ff3d0330444960bf1f6f95c6be2875ebdc58d3005df74a4f0bd89d39b2e0342dc190178edfb953feea691dae842d06b8042b8e2d87ead5fcdd08eef4746eae925adf02c5af32faedb702ee4a523147a3bfe93b7d4136023bbf193b4ef5389dfc5c715bc2231c9fad47b91eadf93d34fcda9d9df9d2195c2c2f68a33a905a98dac4ebb20a900699d0ebf68053dc000c38d33b3018afd82a0b39c45de0795aebbc7916852c205c94d1ff85ad631bd79ee6e1478ded580d5bc1cb1518780f21d770c5c1173f2486efe088e791203f20e427339ccda1e4efcac2ac1fee58e6ad1de3f073c133e43d5c26797b5cf3c8f05b21ed0a22bee080c5cee6a7c12fefee6842723a3958bc982f853ef9812ad56676c5bc9831016fd35e3822678d82a2a9b8d8f0cb18d51c5162612e5d102d825151b3e77c4a813029a44a929d2c6b42649b8e36ca18438aea32e72b8a6541b58bf012aa82a888ababfde3c4c79ddc9d9242a7745ff26f15b689cc6dd72a9ede6c4b466b902ae7a37aadecf30a8e68e04fe526873f1db9391cb12840c3fa0ee2956e9751579065f585dd6dd55d486f4417bd122933b837bca1b2cf440dfe7b8fe1c2550e75d7091e5586c708c137e63b793c1a37e2cbb7c862cfd6aea427949fb8c66c983a03996d5842f621bf42b39be7f4df26486a8a57811465e549019c428617c165d3239433a281beb43c4b6a75b17395bfc2e7981101e774a82a660231928b6856a9869dea3fcd028f08238a47c52c5c3f0d170bcb744f211c2f87da48f453bc009c26850215df48541ac9c83a0f0d83441023df735b33c10daef378af6648130b11e0a753224577fd082e1f9220feef5fadb2fcc21c5b1d435a8e5bf5138e2f004760505650059594fb00dd7f029a0ce6732f0aa10769984600a91285f707e952056ca5941f098e212fc86e6d9127c966541d3fa8e0638470b3a79aa09bbb6cfb54a1096dceed71d88f5cf3a41dee2ec65a47fa15adf2de80276f2123706616a7c5ec9dc1249eff4f51deb7ff38839b584a3493aff7293eeca2131eb3a820c81a56611a52819c4e3a33298ae73e3290e7eb0f43f0c8848134519f573204a854dd4db04f957cd3a299b0a26524090341396de8bb24da1055fa103852bb3bfc5ff90caf0beb8636fb40fa887e8756e8442fc1c00ab26e4c48c3a11e82b88520fa9d66df0460491a2a78cedee36717a8ca4d447a9d4f82b784718e33037618f6ab8780bf22c020447d74d0ed2105adec7efa191c7ca1c8b123f2b518933ed0c6818921045f245541fc25727bfb7721753eb37a58e79fd6f6250896617dea5da3c24c1edcb8eb96c4385c1e90352cf3332fccfdc3b6bff78b4b59031e2b5fef6449bee141fb74c39ae5d91e805f7108a6ed55c58f25ba724cdfb33950c14d6ddfd4e2f8b02a297d650e9c2511573670ba4a0bd28e2dcc1550d05c28bea97cb9834116bef41d99779f9d426c47dad07e2ed047990578b265538246b145421dfa759b7b3d07460377c032053cd3d43ab00b12a85387069cfffc2c344286daf4af284e27436603bd341cf0850f1b84442c1ae0cd750ef00647bdc254dec11075e28fff63d3e264dd0c95368c95187ac8927525a89e9c7a971f4150ad0cbb36256959ed1b109e2e828101154ebc7d52a23c640a91acf087ba68164fab28eb1b51cf3480509421ac19d55ef33d36a603aee94cf3700f0baec536b41782ea6a8548ab1233772d4e1a16b59d204669e09d3df9fc4accedfbf2f2ee6be0f68231164688f1f8f2b26b1334b4006dff8ba7be6265373638f028591a9d01d5b233bfb1e2f1ddb5aeacdbfbeca997295fa91c52c75ad849ab5eb919cb9c562fb4b18d6b4b3684d6a63436c69d4154a2d42569447aa185cde5bfd0a74d3ca6bcd4185b977c5b882579097de988294e266f5dcd7e1937400039269756cc41b5415214665d98ec80e83e7db4947ce9fa4772f743e5197923b96d4c9f173eed628f56c4e7c3a6c4e26e3257aa77f0de0a825b357b329d1dad89beeb2b508ccec9c4c65d4f35d7d336f17160b150c0d4829f0e8a0c5232fa8981d4db31613ec159c071604a1c1c9584c4842f21dbdf19b428f8601b7023352a1c5c8399ffe2d7e98fd56f0d1f6e047b756bc14d204834ea9153627da837bbc7a5634baa0afa3ae908f46109921c1627735515b913ffeec55de44278ecb516119ab372639bf367f4e03c7dc47c423ba4973afd5a2ddd56722f4e45010e63e213da9c2569e148ea2117dc24f6a6a24a8668b695d9fa14a23b42e1f57f820836a583f8072739fed9099", 0x1000}, {&(0x7f0000001200)="73a27ac8856bf3d4430de6bdf07ad99ff36cbb7ccd88133f676f9c06c40f8c84951ef8f14aee66492928f0f2f77cc2a992273b1e78ac1b95e3777fcfa4ed4d2106fe1b56bd4cd14eee88499cf4ed3d1d18361e2b3f4667060b7a88e96e76ddf9a7234b2f9fd55b7300e7dc407e66589db02be81cb3d631099c8eb207a6125a3a640d98d12352cfab21c70e3fd283c52b1af4bc21f0d126c48f7886e8495ba4e8dcf777c4c183984f7b3e0492e164faa64a87b6919978250c48e4aa40658485ed7c197d75998c8019c8a4180883b5a1d0b02664e76618526e04d0c493768a17f5", 0xe0}, {&(0x7f0000001340)="5eb169d07489e954948109383e3590bd980bf68eeeef4971687ed76a1b75273e5ec5430d40303d3960259436b70de950ff623b578471fcd249b93b93af54a7d509e730cb80a83b85e733066521cc403655cfa5eb70bdfcf35cc038017b2057dfbd750943f92e660c61359aca24029a721b5a4fb547bb", 0x76}, {&(0x7f00000013c0)="b21634a3f7a7fe2dae2622b14dda192c619dea1c4b3fb686c5749e4de6eebd0436eab5d5d71d7a0fffd950d989a96f5a2c59690d6336e8706d110584b3eeb4ab8b3758b88897272b3807dc3cd19dc1afd931fb690b0ca00fe10f36af626854a19af7689c6813e002d9dc6b42c93980eccfec853defaf6b1e3b61c51f17f523b106daa572c6906d1b3e232c2473881e6da9adb2f2793034f0b5e52370242d", 0x9e}, {&(0x7f0000005c80)="c819d160f6f335cd5d521f2ded35c747c3fff8e6c789580afc69460067bc8764ec707e7c30a39a721110f9624763f53d9d8ba49693c913b2aa86699437de9665f656d08bf0e89de139038b12081fa78adf90fa9ca4c238fdf67bb6991cf6a606277b3dc77c62f7874d24f854a17094198bb5280fb324cbb5c2658921e9e0dd3cee22803a443100752cbec875d7e0b481f89447fd123bf2bb1a6e345108791348797a700c7e8ca5bd3e60f30dfd8ba899c95571eea7c36772a00de8b659872f26b62ba38c563b40e43d8236963ea9d208f39419c7503093d90be507d17b4126ff2926ea4a87818f710a0de7e72534f534cb05bf6783b15eed65e8bc9df97167c84d958ee9f0f4f6734e359eae28bf794a1e6e645916878dadf3699a04d72d9b4bccb07b12633d22e48a1532eb1870403d05bd21a5e01809b2c58014ca26dbda805593401c0cf17a7c831f1053e9cb5fa09d348b604889f4937027f2d584719e7ff4fa0521da03877b0a36acf3d27d1c3a3dde8827187cc532ded295f527eb29d0ad3b09cfe5bc0cfc81420ec5a6d113e4a20feec1709a01a5619d7cc56933a0ed8274b59fddd0b0fcfe149d9b5d6aafad129e7d0b7e9ae7f573851ba6b19b3dbfcd6c4d19edd5728d95525ac2d086e8cd11d277e342dd01b5838a69255343dfbdbdc86c3641602f6d2ae56fb140d66d806836892033f8eea1768ec0d69bd1c02d8d838e578fafea66c9a1b9595ea94a99c4b7a19a8affd605aafd970702ca5a70b3bbd67839196169193632d485c4fc87d109a02a7e827884a9aa2d270ec9761ae27783b212fb562cdfeaf39de993848732470d7051fca7609ff3433eebcff028ba6f9582547e5751e68f55df0b4bb8627eede0cdab320d83e5503714b05ae109aabb5ab9cab2efd743d834dc581c28c75c51d29d99f86fb683ebd645a33d360a3b729bdea90d7b3aa8edaf85e511bd7f7d7c10596115cda778b5aeba910370d6295065fa6e7622351a6cdabc1646b5c975f57c003db98b34f31f7344a2aec2d7ef910cbb1443522d734cff400608c5d75105c57f72341b4adb5f36782b541ee7fbd94208add9b52d016a9bbe62446a8982fe72361af6218b73b25812e08dcf01c56744f7d6cae41387e093d6b0d5d24d05cc8227a8cdf36d4f2007ae16acc325adbb5428ac0df383919191525c03fe4220a2df076471e8bb159b88ed0e515cd21dc030fd654770f5953ea26cfe641a0f961ec8ac0ae12c4bbb81942d0ca6978513faff440bce169799173b4f84f197e7c6cc603bd1d464b45758a25ab7339c7e5a9c6ede8e1374f2d6943ec01103ddd33fc7d3e3689ea1eb629ac233f68490b27a839eea5ce990d7de25a98137ad3daeb5b1777d7633a90107af6101a8401762057fc561bd4ab60c7601e41a15b69365e6dd527d5515e9b3caef116973a6f6474c06a5a24f22301a5f79fa93e2db02318578e4c1a294cf28b21c104d5aa00437f5cf17600c8c83b6ddce752899c95ae0d33c4b87d5d77f689df006e71a8f9290157103c387d73a1d53bed24884832d2c5c36db88209aaf6a1252672d241c318cc6aff96eb64ed7b25dcef5e69759ea2089be5abafd3b4d1af32d45a53658d4cdca6d9601c56b4a4581ee561af2092d698fb3247ec78452c041c63f4919fb0c7a5f4a7e73362801449f4bf58ced3cbbcec5670cbfdb357314e619d22990012b9742d4492762c0f0887bb87acd7faee60fa05b514a1d696d752815395adc19b6e869106b4230650aecda3b8cba1dd10773b3d71c5e592c0039f84d4788574bc1ced781bcfc8ad15091a07a74f77a312673c45c6007b81dcaa9d00d338b9753b12b81eb725337c5c9e9948dd927940f69792d72d0551997c077d6511318d75ba04a72e0f85fca2705f2b49d310cf0df67e495dbf175f8a322167c8937fd9ca36a28069f3e8861d6c7b1d5ae10c9728ea6b38a38e61364d8da4b65b5e1d674665ab088ceb63085e24ed5fb8604f57b08a5d9994c943eceb8d99a65889c6cc6b52eda24e3dcd18bbb07e451d3199b4d183d2d1c3e51e2e41fe416df283904dd4a0ed88ef66572074c2b09528985d18daa10c2b60a8054088e0bab0910e687731733f909a09f5c183400068c6365be4b73007db4ca4b3d17941a62447d9644edba4f620f21b6aa72ce1ed6ce360d588c341f0095ab65249b2cbdb22c63ae6b7b0be3a1f76347bcf048f5a8ce798f6b39d40167ddf969e886e0c6d198f58e8167ab716ff8f3d38d9fcfa43779ba6b29ce6ac08727c55d4e75b3dbd0e2c606a4b3e627b3eb3b7e409829be818f761d19d89ed4f0a0eb60e11d30fe7acee6fb6a6976c69c83a198f2a0e88fb819dade7aa0cf472decd3558b08044aecc6016e1f840e98ba4b9d101c1609d62c5937d020eff3e28b11006bfc6b3b251937b9003db87ea403dc15ac0831bcd242e5d50ed05dc76a9897e9b063ad54671e36972ebb296177db304c0c46c053d38c995f2ad890a180c2ad2e1e67e06bf542cdcbad7fb957ee5fc7333e826518d8baad3a098480a88814ca1ce192e0e5e204f0a15f9e5ab8cc62d4dfd2c7e58bb4386ba6302d19621a83fc49ad64255dbd1dbe07d36b84f0bc6a77483c994d91cca00d25b0ac536f1e254614512db9a0099c84c043c2758f389809e3c2e81fc6457c4a57be81d5d959ec104b42365e62d28e8fc302b46c8ac956dc133e98a6e7199307a80d907ad3eff40e53f7b289615f65092cf2b5d64119ba0de5331fb30df6ff89f70e5efeecf22e963c1208c0381f52b690356dc35a1ce82a5089cdd233edfbc8478372cc5f322e3cc32910e10b0738f7c6ac8336b777f2664d1a3545fc2a63a53b8caac3ce3b1128c58bdbfe99ed381535cbf18ebf7ba5a689ffaa22e8504715e767fb97f7840a9e181523a14a2fb8e2e63ee6ce8f81170a308ee8df0bef348d7572ed486b7b826c5534db56f037be48512ea4444d5c23239ca5c69926644a8123c51fdf856d7135c285532e68f4111da3699d66a2d12e47fdbfc3fbd876d8d29219d0f79490ce436f085d14dc7971dff8c2398cb97a514f5707327e530ba0071e2e3c896df2a74f45fcc5786db8b289952a753bec42e7e7e2e196822e98d8207555c11f96c840806a33a8d38eded9c68f9cc144269fde69147dab327eb9afc9d3a90e0b984bbdd38b31a7fdd1adbbe1c4b2ede893fbb6d0d5b5c9f870c32012d5404c527ee464c6bcd9223a90e8f065145a11b85b8987ae38e1a1e4d4c64670e656bbe5704a8da512866be5480287001525207a3cfb61204a2146df748c148ef0b79bae38281801bb933c3d462a26ccbc319b4fbf46abcf799bf42e297dd11d7329be45c4100952410386318e6931162fa27f76cde534a47344eb6b0722a24c2727e946eeb69c4a2890a0a9dedc667932307388c4f664ae1637ede9c915e4181026dc9ba63c779afdbc2d903c71c9a8db89b32c45d869ef8bde4a57450ec5d739427de4591189fc390f9a368cca1d986438ca51582fd2244352526e180b28308411729b9e12af29ac4adb0e040d4872cc881698d5ee27d01223d88e1764b463ee542dc0d7870a0ac7883f2a58d6cd4d058b168d6c39f249f9dc8c30318f71e8737259fdab8a1fc3c141a2d903277cd6a6531a15015975dd2fdf599ed243cacf8488f17fac6b3724495b0252e6ac84da3a74ed53252b8f661bf1d93868a9cf615866f46a8ad06e705a549a8d1c629207e964b77dc16ab69351eb266e82d57e197d2a3a76fbd7834dba97e6369bc004888b0df579c806c1ccd8116fab99136adcec1f78df044763b9e2f18ddd20885e3546b46a29f8ca601340c35654f487f2ed6dfa69399ab70e2c75de0db24b572c6841d7a81fb6875887bbfd0b73ad649db0b234305fe12773412ca0672fe78aea21f3bd9d2b16f0610731dfc92f19a41566a10811838a7d3d6cccd79c4647caee4a8d638f1903bf6eeceb5e0a6dc330f642a3c7aaad56acb95d7ca2af1b0e0a56018434b77f9d89f333406c732092b2f05080b45fb260be2d000ed6dd2a4b8e248e817170847a633b0dda1254721607bf5a1b87c66c388af14b403e2b6920580fe3bb6a1f50f3117fa752fb386e5362d3795da44a28c84e0fc919bcd16e7009d6943e9ea576715df7ce6e00765bc2af4ef53f27bb2da1e1077c5f144fb5d6bfdf260d886e3826af16dc55d720b65bf2a6d15f05f92f3a021ca217c6f5e4be269d218fed71361fcf5b8271604a14d4eda353902a1e97d652d281175ba6e94f14decfe025bdf45546d68979198a3144cca3fa47cf5943688d8b5fc45f6f05a0e34cf0f05535575cf46cc94b162ee1550da2278c0a48e92a8dbba7fb86949638e0c95b7b6e1803dd29d0fdb0cf10c826373bda12f6cf56924db29f7e1c7a772ddb25bdd8964d35a0878f3f23e764f48f00f113e3ae32480c846d03951a3dac49e455c4e5321533a62ad4eb27cc6f5cf9924082561568cada13d540e9f4d53c96d03979cd77ba4b823d2b3ea8735aa4b13bd85a1d301d52e1a982412970535d08478a89692d7ae1593048236d394db75fa621388d02f2f90994207131ef643c19edf98f361783bb99f1956d8e3d3577ba3d401b4cc9636d0ea21c15195896e5d4d8762e6085a4e69d971eab92860740fcbaf0caef5905c13bb900b97b06f7abb9a201eaafb2f9520dc9a0cb221ab3648c93d0baeb598fcf0e6a20e1a858c979398175e3fe352afe71831576a406f941fbd5907b8fabcdfa2a506bfd9e17fff85311592e98af22e547f454e47e474b941c4242c7c5ea1ad8b2def45c17bf2eabbe7d4a7f7672c736077a715862a08700dc3f27f88b90e06cdf6088518dd6e87e674f94c5b70e950553ce4715ac5c1567ef8720ba2e2d2a1a0aaf3d3a14869ea632d6c95acb8db598b51db65d547de36a64c7a1a510309ab26b4b7b886299a26e106e89dda2ac53e50b883c726c6a5eb89eec675633803f4b09a9baaf2a5faba68190d27eb9f140d5ca06708b168fb3599422cdb5551cb345c8a5137ec0e13cddffdce1fe525e922b70529555909bbd529d5f7460efa8e23354296bb79218fe728b2ab55fa85c90ae9f6aec9242f26c9d67dcd5050e1ccc005143042cd24bf04956d9a571a14c9f234000dae417284944c4f60ba1fdf2f38a73d2531843ee4dec776933321cfa4176cc1fa73f7346a183b861a5d78abf5cf2c4c2226cdef637c0e1a69ba266a493bd95b05d38209e9f0eb6a22aa7bc86652752066ec53227d442431544f9507b63caa29aef6122797a2da623e9ac09fed6c11c22214c77912a2c4eb98c87d8256340dd4036a354d1f69c0151f0e0f20a772ef9e0c8256641a6f489d86534ceeeccc28935e8632285035de159ebefaed643217e4d479afc6aedbba01fac37e3d0fd0c7510c981b70d999b8320146e0145579bc090c3c644f5d7d64096efab7873647c24ea97f9f4c78fb9afcb4501290cca9f51bc8005ead9d84176dd0b368bb2036a976fef97b3d98bed0346a495cba60ddbdc40ba56ea0ed303e7c6e0bb54f6440153149d7632f752d97f47241f8cacca50e0ed014f973cbfda042e44a40cb4becd76d939c673d838329572212a4d349ebe0e00adfb502097f21f0fd1c257de6cac1ba6ebed0d7dbbf18585dc0ae46a5316a896f60721502539abf1a3601fd134dd3b8d7a83ecfe92076c75b21817b89243a16591c47a3c505dec9516a7ef8710cbfd40f675827ba9967ba9929462f808d671c770fde9c02b3633abb4b77d646ef83e35aa", 0x1000}, {&(0x7f0000002480)="d4518342c4bc677e826958f1982b1b5a7ba9090dfdb61b542b6323fc033030a2ae76c2a8ed232bb7bf6d26de99c259a06e11498149fff36ae195a5c14796959d326c64449361523ef7cb0fabeeaf79efb78bc9e445f7f35dd27e2d72954af1a76171625b27d0643729982abfcb2f8e3169dd0434a7cc7b1c5a69bbcc7f434204da26b7da3453c1d9b40f117a060b1263218e0c3be3c277ed58dfbfe9e4c52499645ce92bb0ceb44b68e07e6fbf2edb5a69335bb9b8f90526e1203550d66a4dc3d3de9a51c82d1f7cc3f8a05dfa597924bf73ad071719bcab7627f3fe9db262", 0xdf}, {&(0x7f0000000100)="00163dd22e54", 0x6}, {&(0x7f0000002580)="6b06289c57beedacc0a3e30fc5c3ab716129927764eed15a1c58bdb553258b1a5f82212d410c220b10c99de2cbbf60a98f94edfd11f77cfafaeef0c192832443ec226971d796374f28ddbb11f77948a30f42bc475dfd4f6b3570f8d5378b60e2ed5c43018259d38c107b77314f4b6ddbd92da6bc128b3bacdd52463c4af8920ff139da3fc97da20751069f44c8b34e82c2b9c0f71eea19a84936d1d846bcab253bd2691c1a455004c310c005c4434c7f0012b9e59e5024d5b0d0ae6985c8351f793fced3f79c4b22cae605c5f84cbcf4", 0xd0}], 0x8}}, {{0x0, 0x0, &(0x7f0000003840)=[{&(0x7f0000002700)="d844a5cf76c10e369f6da70c9ed80ddff5d5e1dd4a3ad1d9246d31b25654e5ce31654d5b698527a1f9edd2fa0b6b16d1d995b09b00cb09bd5813a65848447288ca874d63db6b4268684be39c9d9ac2fd7c788ee930611995e26f20bf487897bd28e055740e60c53a530e2a4e6fe31211a2dd77d15e80643a61a4e51b6e12e1e1bc3fb41aceeb10130c2b7d739331fb1feced5c4430ca968c897323d5d4dc1550cce3f5b4b9a35e7404480138bc9449aa946e9b67ae1c8f12216a7ced403f4af47532570335da2d1c851261652f349af2482a3bbadb616d6dd267074f87a994972563fefd9053f86daf8ba99c291a081ba8c30b3b03f6a7b5c431763569ffa64a9a4a3cef91777cbf4b7323900c381d234c54610039318e8d7ae172813356b24132b7ae96ec5bb5d8e436d152416390c991a952a63a286e0c661e873656f497c7a08de0197b7e3ac8ec346d108ca3fd2a82cfad2e8411bb18d2b50eb67a38eb8b2a9cf452e2d0bf14ee5c93df33f680afd7e58ccc9c025e63ecb62775546ffa50e3d132273430eb6a63fefba3081ad284c4cc0477c53f4d39a6838f6c44ed4d53dca24182d04b2a18aeb6b530f8dfecdfeeafaeb4146233f361025af8b5b68f379a56011e8bf108b17c934113258f6827b08629d14cd8e96fd8cd705eb59a690beb1e61c71abd4ec9b1d3ea602313b90f0e56b34a6a6c2c26146c9d34d7d6f85b62e40e04cd13e7e09003fbf3d87051ade9df13f03d1339358043920da9b58254f4249a1dab5f6d60f797fbb7d13819c301387cf2e36c5cc792cad5227716146177fa2e1adb5aa2aedb3a15238179be7ecc66862cd66f9a20ba1262a2fa0723d56f279f24f092475b8679c2ac8f8718e1600b7a3e8cb4a9e482200fea3419c4b2142441f551c4a35850bfb033e06a41d3e5946c32f23ded447e0a5744e77ba39d0c1230e0e308a8b68489202d0607ebcacb6b8b71e4eae00d87cf75fea9909d15c04424bc15d99d86018b50c9dcc8c8311512275f9ff02c6a5561aeb0260671246765a0f8bd5cecf59a56400390b0ba55f947639191b14ad83dd5a9be3d396486f2040b6cedc9e0316f15a559c920808ccafd4bbc215c26084b0cf13b332265c6df41e248ca6a2fbf47e1a9c14144a7ca7e30df757f18cc3fc8ffe6826165cf3e2600350c45dcda0c523b66fe3c7f32bc2483353111821066e051707f2328c359c9085517a3522fe694dea26fda182a6f2ad028d8567e20c23df8fbf60241c94b990fa2679a418c8e1b5372504dc5e2555b67cb7c1ec0d00a76d8f507287832e160c5aee8b12d06d979eb1ae3e7e5a5256cb941b4f19e207a6c933f9b66f2921567c0bd6e42a3fece691baea9f4293f74fa4c10c0be743c8a3d2900a538d618ac0347395b8f8b5a8f695105b7caf98b35f16cdc65380a9592792ac285f1dd0396f73aca34dcbbc9f98ef305a19e2a185236a0b91fcf21bd4134ca0e5a1059581ae3cb1cd7ae2a0da39b8c2016cb9b4a164c09122e21b3da088cb8405e5caa4f92e9e0f7f933cee27e13b25f0a961a75de95d94aa0797202ee79f0703ed434db94a033880345f863a16adb4548ef74d6ad38dcf8932add88af2a26eb4c245c6c1f94c4eed338c3df185939afcc2f1c05cb83150185d3f6091e59f075ea67612659508981a6d6c06fab458cfb7780e7f6fe47e7f185584c4dc1ecdc8d15eb0abb144d0cde314739faa7f42f3fce227ed4f321e1fe4922ec8881ee7805e3c2b9db54993b42628462cd8d49ee5de1107aaafd41707a2c997dcfd999c095ed326e969748214cbf6ee0c01a1b9957c98cdca8cf0183acae1fbdc951c804f1ae313b3fd9965a5ccef96ca8becc8593ea23d88b6d2d0a2bbcc7da9463044a3d461c3cc0b27bec02cf8b0ea9745eccbbd00e160049da4d7189aa7da61f53bc719d43faa168e2a045386a59a472041e4a3a5f55c1a692ecf0a9606c00aeae5b17786b553ab5ee1b24c2fe5a9cd091d3e82c90cb27eb4f733a6dec0403a81740bb1132fe5b2bcbb8224661ad035b5abfefb26a991d4bdd86bb9229e7274ffcb60b1e9f4440bf069dfe95d88733e29f8f4b682d157ae5e575e534b068fb379ff0264210ecc96d03c348988bae7ba3d461c952a8a40f37bb64b76022556d44653ef58559425b0bc3ef582c59a05648c4b4a47dd2d893035189d63e5e8e5b2dad5b34bdbc1ff1108fbff1ee521e8c326c77ade6d771b03a25a71b1b4236f7e5e8cd2accc13b848eb56666bb472269fdb50a02083fa772b11e57523ad920a0239e2151adae12adf884a5824e4574763412585d0fc75c4cd7089bbf1559279ad83c12795b93b76fa471afc49ed46e0f9c3bce72e214b66b87bf01494676d8622988d23145d7e05e11cb476d6d3bce83165a764a522ba8dcf00516599bb9649b7c4ccafec3e7452ebe7e6589008b8d88912a41fefb9376f1799bff30287260375d088bdb6fc499340ea9d3491df78f8055704fbc555f15b84c8204481c8f94ccd4934a4b30b4cefe5fc03d0b8e219100b3d161b6766c5040a3f2b575b079a761422452c98f888dede10f2fba1d785835505ced29573c901313f18d0913dada9f7bab715a6fa0b3c54a766709a07d10c340d345af3a466b39c5fe3092003816fb03be4af73576d63fbad36b17c01b9a3bbbbdf6eade8957e2af7b3053a10b0ec53f3804078f4b0735e2326569b98101e6675dcffc9c341e259caf9d6b8c7968d114e778158e1ed468e673c1d0d454204cc1f544a2405bd82a385e3dd018ebe1eed6d2cb148d4ccd10be914a4ec3f45dd69f9a97055d18a9ebc0ab6f0fea6d8c3c36ed41ba6a50ce2be094c0c22e830f30c830f1b86c3aec848481e3403522fa3797952c60ef53ba418405a44baac992f0269482fdb5cad119dbe67cd0347649e1fd69dd8056baad0f4740f04b4d38ac8901d170bbf6a40272d256f4646b867490d54082303a4405fd16d63a2694c2557e73dc74c40314afeb81af2ec82cf5ea54297fc9cb097da276fdb5575ceca08f5fc0b762c7c90d0ad99043a9a9764f77c7e817f1b3a6fe7b67716e6d1ea6bf974032b6e5ebdf00fc415a8a4e81acef78e7ce35879cbdd8b9acdb031658b2aee366871ee98155369186863ec6fcaaf5f543ebe247f1515309d0aedde08b158c6216002e30dbdbe998a5195a515fa8ea8f3512b214f29815884d5d706f0ee3587c2977055f24ce20bc55ebe1de063806e538b99b62368f4d98fd50cbee517c04a511920edf7e8c9730ab469a5f3f040e650e3cf19246e4fbf89098416f7d5bc2ffda0b3f68d813ccac26aa477019bdae6f0a918caddf7f90d9101ca6a0125bfa06c90024fdd78f50fc52801a1e56b6288e2a11be28a578d2120fabbebabdeabef69d258b353f3759be4568b32b07d69302d1841381f14f57fbebe9c0fec721cf85c724d64149f037118e59ff7781f9815e12eca311558b92c546b8c293eefebdb3b9bb14e5c2e229127fab0b961691c9aae625d1151ff72b764b5af15687184531b100e1cd267ba835b84cde3182972352a14e0536bf26e31e7bd77ec30ae1aad1f793e2afb126b63b25fdfbdbfb874c2a9010f01aed42a389a3c9adb2b35b5953a72efd3da3926777d15c8d9b073c5ef37be45e226cca59a7ef3d91e9223462e405a9d3f6f05f8de7b83b075159eae7fe36c74dfad229e2f88cbb6a099f9ccddf383a8344191a6b155e9200e7d53456329d5e2d85ec2b4a9180582566c8204819b5be94bbde6f4aeceef5288fef33339ff407030c8bfae568058558fe7940821c04a3f4ce779651c9cd42de246a4d955f5a08a6067b8ef635276593250b434fffd2ef616714693b7e47f5e68bbfe4e911dd3884dfee3f849f1034026882b720296b9e8799df2c0104078f039bccd78f0d1ac8f2957424f70fa626b9fdd8412f64845834f015c022257905250070f95a919f2c1b7e6d8adf63172913548eaa6ab3b1aefa726f24d32a0fe18faa5ca9509c3f8975ee8ef69b3725ae3d18b1939e74f4aa1539fe5563fec0498ef1920dc398f7b7bec68f06e8db4528ab1535b26610763b2671c9f3e637e36e9a7142a5820598d39db9d466b2696529815163dad968c5ac3dab11835cf6d81bb7656bd7855756a750daa0da67da843065a5eab1330dab336fdb2058a60c134df672bb27af8cae9051d44e086f62e674e2f08065545f607f057e96cc8a49b64284eadc34d27910901807dfe77b4a2a06afa3757edb8737686ec41747fdc907c3600a3e16baf2ad7f1f79e83728edeec78ecbbd9b5c5731f0093c85ab358668a69d3af7599f415027698a7ca88669dd3c9814ff2dad144cb411dd61969c5f0e23bf29e5575551d982c419699b9b1f84013817c2a1da019d20569c6a372c548304e0bfb0d4e63fc3f9e0d560e174ded63f0d99d23cdebb2bda666fed45410dd84104a79d82dcf621675614b46c7c890091204ecc9bf929339611414c3bde84c5f2c5888dc1cd554c23cfaa766b2b4b336905da99cdbc8a01299e40392dc220168c81bf8fd2af69d5f82e4205025033c87e57950f8907e8c731d56beeba1dcdf4e65bb824d797f2bd8d05f1a9e15d0ba1dba94d0a244e8838a54cf77629d36a4052959ed7a91dcf8f3a75fabffdb0034f60c1d94ac132be96a24e970f3a01f62fccecf81953fab75fd7f785ca7be05debfccca97e47597131b28f7ef3b726cd5ec4c858f8e83f8a4cd193001de535ac93118b42e10680c0ef611ca4466ba0a2af889c04ee52aef5c98fb6cbc06147d37b3d01b800df396a97f7eaf6958307ede4fb3f7e932dce7ee74659d3f9cda95936eb95925108368da51bd9c63988978c6b903b7cf71d3838b3a985a037e8730332020b771c2b36c100615dcdffd96aeb95c25a97e85d65b341bff02d4721090749c1a2b771f5e325a4fc6af736eb3934a162ef993b918ea0bb65eba9d1a12382f77638bf93fe3f5c9efb39177505d73627594114248f7ca430887fecd1de04589aa5f77f4f0ab7c803fe1695526509c45146d37d01f94ee14ee7769c9f7f9de76a12bc6d5d6db25b3764568d5155c496a06fe6a8de50c16a0249b96e666f0150d30e683ed7d37076f3bb96ab481aaf3d6ff41bca589bf82e3f0fda04db6e588e6a3d5459a04baae0e5d3cb3c76f6e7b0791978f911a0218a920182669e1bece42a7d0f3eab40411a33f924ba69962cb87cf6157be9a6590f106a344261d4a81c8ea3a7fe1ed21ed5590a45efd7643cf70813c1bb4b026bf9bbe036bdaf74b8402ba25b2dd3c718918ea82fdd73882fe1484d693f394dec048cfb101f64b3753ac5c2b0bc3535bac236cca638e5b025e974bdfec58061548b806da5af82a0510b9f2c34dbe2e0197dcecec9b91a93fe1ae51b648652ff748cc131411c98a299d142a8dce20608e1161224526456bc4d92cec5cbe144f56070e83d56ff6eaf6166724abcf1cd2cd9f90f4e41309839d941a268ad3fe7f4a3ffb168b555a8f81eff9d31cd668b8b598ed08da6ea3fdc64885a56366ead9a0309b8dc5895b75754d3ac45c2f6406a11523c2180751dc4e94ba9f2d60827eaca8eecc7fa41a09f43c0c90739f6816a6749702c0f7bae017657a52aa89651cdc7e8650fd505511e37b8350acbc29a846c03f1a5d6cb41b6629c3c6a20ee5ba14500d7e77c29aa1de266cddee0ba486fdb921f66c149a7fb3fe0ca013ea8d96e6d6d6bbb6dde2059b358eb80341bf1b72254ecdd3ba589ed8ce6cef9c31d3847945b3dbefc10db239b47dc87", 0x1000}, {&(0x7f0000003700)="352519882c287707d1d63b343242187394a89d7bfecd24057a3f440806845ee08351fe6b2154cb0546e588c0b35ee18049d009818e3b120e9d9274e799e8fd4a9ebda6fec7fe07bbb2bd6f4670aece60da6ca876472a4569dcc4ce9b17c494dc5ff63b6e0e6aa9eb7ceef54293eea14701d5139cf690e6e51f15bc5a", 0x7c}, {&(0x7f0000003780)="dc9861be498372425c50dcb3b4e5d292927998a7594a31eae9068fe095f98448e2fbadadbb304b4bfc38cfb1d1ad03dd62bb0efe05730b75e72e9b8c1a4ca9cc2f9cbc79fafca2e6c0d7d55e5de259c961a17eecfc54a9221e5018ce8372005d7bf844c777b1ab45425d51bc6bad3b801d5db0de35239beb19422db889292797e451d822046c9c6f990a05e49545c70c236839b114994b8c2a7c0b9bfde4ef784d2e56df6a2236b3d42b63b401", 0xad}], 0x3}}, {{0x0, 0x0, &(0x7f0000003bc0)=[{&(0x7f00000038c0)="be2b7fd83fe496aa5583ff172253b4d642f07fccc9ac8102b66e929466f908893ccfde78c40dd8584ce3603fff84bbcd21fae462dd262920bf60b725075117a17f981327ffd81b3b7b507ae4814c5d1deb086835ff3470c74e8fea37cb6731e2e505658a13c603a2500c7bf693a44448730e4b2085e82839d07a447ef054d1b7fa2ba940f43d428503979f6596d9da34c8ebee190bd0572394a7bdf92b08512a42e0a9d74db7fc647a1586c6376fd5048a61a1830cefdca17bdf6a23aa1882392a52b00a8196478c7b71d2c275000f7bfffa5918d5e3f3886a5dd69d3c8dc9e6bb9cc29bd700560c88834f343622bdbde289fcafa8b55bc4f93c1f7e", 0xfc}, {&(0x7f00000039c0)="8856f6045dd45c2279415494ff63219c6f21d7b3ab00b7eb688090b731593ac6497fdf6b7d99eeb2fc41fb769819c4d98cdb3b3a00cc8f131e3dd4a4149ee004049e2a7c729df034c6b23348510e049bb65f2596db250694cdf8ea96eb9250ac378a937fb05f449e4d8b1d2a01fb5f4391d9217373f4bdb18090454f0fe434ec451d87ab41b16cce474e8dd455af9d306918b8752cb2379a9362b64b8438286b54cc6f44394af6ba5eb3753cb77d73eb4dd8f09cd92298b335332be634c914d191138866148f81", 0xc7}, {&(0x7f0000003ac0)="07f9b6cc76471ff6a34cacac67561e62d9ceb51b3f61b1faebf7aec1f70143a038e1489d9908c12a821473461c43b45d44effc6fb63f1b6dc0be1f4a", 0x3c}, {&(0x7f0000003b00)="f2b1c649a610f6196179fa71f944f62d7e26eadac76f4504a9d3eb4df78de268731c8d9c21d188f4a05e4a8eb34cc2dd5ff5fd7e641f840e9bada74bd2a3fc6970c28999a3dfa29fcb3d02c8baf396407e2ac3937148015ae1defdd6bfbbb0e950f702b83e4626ee280960485ce14655bb1eb190fa04e98060b7993781cd15fe63f1854e939f020d4001ea8967da8c8da806b3dca7c73fb0012b", 0x9a}], 0x4}}, {{0x0, 0x0, &(0x7f00000040c0)=[{&(0x7f0000003ec0)="40c3b8bd30e35d5e334b6d06039f3c89e530f6b1acb9312eb685a792566232abe2c7a5d6403fd2beb7904fab98e9e03e492756b7a7e3cfcc59a76cd9e612a184c8729040931b1a0a", 0x48}, {&(0x7f0000003f40)="ecf196fa1261f61de2818c7013974d06a54a2e7cf9300518213a46f9eb3c7d4db11bead9e22c7263e68a09c3fe5c155ca1a802d2376fde3a852e7b10dc1e698584c809e29d5f7dd36fc5c12b83eb6302320573446cf5db4b2541e5cf62c468d7a898ac51e2a1e78bfd323d82500bbecfdf51a7b2d3937cb8d30834e559a810", 0x7f}, {&(0x7f0000003fc0)="fcc7ec0872d934d263eb99662caace570dd451a7753f26910bb740636bb730345fd70d8edab7ef4da335e2b9620b2af2e39883752efccf218b088cb8f3d8611d3f14eb92e0a7faa720d1b714348bd195f9136726ce35f92fc5d5c61914b7b4e345277e4eb621060283bf90889b9b7517dda4a9bb586c22c6cf181949b67b", 0x7e}, {&(0x7f0000004040)="5cc2efdaf50c48d4ec8ca93de7dfc7", 0xf}, {&(0x7f0000004080)="1164e2df126ca2bcd9e107d0cf34e6c08a93ff3bb045a0454ceba681513ec6407ac3cfb3e6b871b9a4ec565e4c136acacd3f7811aa0be8e9713194ac3a", 0x3d}], 0x5}}, {{0x0, 0x0, &(0x7f0000005480)=[{&(0x7f0000004180)="0a04ea3a8962455c4fc258b2f71ea2fd6c3d169e3d9ff1c4c729d62213c3f20ee94b530b50f0", 0x26}, {&(0x7f00000041c0)="d5241b9868a816c17a66c2a079deaf6cfe5799e0f4d7ecd5dba63d845a44af9e1401667b0a609996a007ff548b265ca04a022c4a2013dab7361250bfcf5628ed8b12c112ca0de85a465ae552ad3d732ca321c715bb035f8f43530108f185f2683ca3d1412967341f81c4ba8d649d00e0fb747a39b471b054b373fc9e7c406eab028a6ac0c81dc3e5579d86a89826f0a6321fd81643ea7e0452677008158e98439a594281", 0xa4}, {&(0x7f0000001700)="02e0c987306a40bff60457d69c973f6a317c1068d17b7797b6840c037c55fc55cb6011c63d71ee97333d5d800c2cc516d4e8f11e854234e8", 0x38}, {&(0x7f00000042c0)="d6895e6d847cab0399d88ca20434f053ab9d8b563affd500a83a8cd74f698801232afb88c586eb7fb46cf5e121bb3145d61ebc5d81f48ea01d30b2f95ed9e395103fa0daefeaba9b13fa4b3041d18188a99b297f01d9693d23a30dea7942ef8b51be64dff055c0fc2972ba8c8aca8f0893d88b0d473322a848480aaf464eccbf867fa05fc50a4d72e4131034e1ebc8402e8291aaa99f0f89725ec70c2d0f9e717cb24135c3b5d68664a65448d728a2f86d9dcc7637ba7d4221e65cd7d0ea7e2da24046c15e465463e8d9e4926b7835a60245546d0ab36df93556a35a802e80a8366cc33a148cf37212ae1c0f", 0xec}, {&(0x7f00000043c0)="d4f34146afcfce81dcee014cceb1870d326ac9e01951c011cfd0e54fc474f988ddcbe8f6012a5e5eb2d3690d73638fc7ef8e5ce32c9b87eb7c82fa785217c92d58b40ae36c416a7241dd01805faceefaa957802aa447f325224c570674fe2dceeb680db08538ecde47f93a044f1b7b5be4cd06eaecd7b3d187df21104a0117808e7d16868db5136884ee385c05df951a7f49e07c613262cc8a515f09851508ef459e35eb9fb65eeb4149d0e8ecda1e6f2284dd21a5ab0f1b19ea0bf568142c642a98d8528b37f0fff7993e5e8a5b28e8714e968a5789f9cd48500a40a232b63d2c6a156ce9e2255c1066486828e66c80272cf5ad9011dcf597616a76251e3abce446364dbfae8ec6a8e3c302cf83d7d6e41562ec493a3a8f4af9b2e6a46c372fa6595a6f12382ad655b94feaa12be5029d6c642c905a6ddfd210066bed3ceabf322f08e0e783722382bbed2bf563809aa8cf4bc06838a27c397e4ff01792e94c7bb5844541792fe444a88f8cee98f919a475c77b3402e3f0781f86dd09840bcf0782595c25ecacb479c26cf85fb48a19a3b9789e4c13a0921df0e4197dc110dbf19e053efe55c003e9bb0458675ff99dff843e10db8a70f9fe3b950129bd5ba718beae5c227f144d3ebdf7f56eab03b8b5e9fcb742e1f8ed286a53cae854eb317b49daa3d18baba115905bba86f1ff75c4ab0b7531f430974023777c4a13aeadafaabd9f5730206667f52876a335bcac3896876c117485142a4f370bdaf825cf4382e1d82403b87cb030558ab78eea65d2e69f1ccd598d8dbf2e9ee15519618b05e3c1d23744c8671429b460eb1cbd93f59ef343f47376e43530d8fc072dcb558eea15fb9036ba7e6b3bcb1ea19fa01cb644969d97018afeb42af75301e820d7e58d6bc8a5936096c3e12cf940984bfb5e636585f8add82836733bbf1028e1e2cdae9ce5e0b686e2701e7043c56cbcba3371c9a985f17be34f41c17856942de5060d34c348c769b8f33940e51da51940751fa99b33d6509c2d5fcd42f7862b9135cb6f8a6c564a7cdb61c659aa7e6f6a7a5cc63bd6345736f3759ae0d08ee14414fa97ab2b90df72e1110b64566982d1328ccb634b674c3a5072ea918ad099e74411e813a401737cad69adc26703e0971eda0c39611dd100cdbb71f8bc6dcc16d0e85289fef3b69df40797c6c7c29a88b7fa9051e313395fc87e9fd97e26d8a1d92cebb2f182391fc7f833a880de03b06af0d75e36cac504781d226f8ad9cf467510b4a9d6c1d7e0b80314997fe6ebbe444abafc22127333a7ca4d1a362b587d2a67434c096ad05be4239f302290c38ab2196f051e8333bf61bf0e88d6aeb93770b7b70a23b4d5bf8cdecdb01150aed15bcd8869c62cb7e1d879164969287420c2ce7bcf88e08bc95e99582cf681a0cf4bad", 0x3f2}], 0x5}}, {{0x0, 0x0, &(0x7f00000057c0)=[{&(0x7f0000005640)=':', 0x1}], 0x1}}, {{0x0, 0x0, &(0x7f0000005940)=[{&(0x7f0000005880)="d1", 0x1}], 0x1}}], 0x8, 0x0) setsockopt$inet6_tcp_int(r0, 0x6, 0x19, &(0x7f0000000000)=0x7, 0x4) 03:41:44 executing program 1: bind$inet(0xffffffffffffffff, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(0xffffffffffffffff, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:41:44 executing program 3: syz_emit_vhci(&(0x7f00000000c0)=@HCI_EVENT_PKT={0x4, @hci_ev_simple_pair_complete={{0x36, 0x7}, {0x0, @fixed}}}, 0xa) 03:41:44 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:41:44 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:41:44 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) [ 812.473177][ T116] usb 3-1: new low-speed USB device number 56 using dummy_hcd 03:41:44 executing program 0: unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) [ 812.873721][ T116] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 812.885800][ T116] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 812.897425][ T116] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 is Bulk; changing to Interrupt [ 812.907847][ T116] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 has invalid wMaxPacketSize 0 [ 813.332726][ T116] usb 3-1: string descriptor 0 read error: -22 [ 813.339473][ T116] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 813.349111][ T116] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 813.481093][ T116] adutux 3-1:168.0: ADU100 now attached to /dev/usb/adutux0 [ 813.687765][ T25] usb 3-1: USB disconnect, device number 56 03:41:46 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef0805840200ab"], 0x0) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:46 executing program 3: r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f0000000240)={0x26, 'skcipher\x00', 0x0, 0x0, 'cbc-camellia-aesni-avx2\x00'}, 0x58) setsockopt$ALG_SET_KEY(r0, 0x117, 0x1, &(0x7f0000000100)="640c263fa9d14c782a4b0fe5d1f8ef1b5675faf4ab0ab8e3", 0x18) r1 = accept4$alg(r0, 0x0, 0x0, 0x0) recvmsg(r1, &(0x7f00000002c0)={0x0, 0x0, &(0x7f0000003780)=[{&(0x7f00000001c0)=""/10, 0xa}], 0x1}, 0x0) sendmmsg(r1, &(0x7f00000000c0)=[{{0x0, 0x0, &(0x7f0000000180)=[{&(0x7f0000000080)="c285df687183f20cc878ed", 0xb}], 0x1}}], 0x1, 0x0) 03:41:46 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(0xffffffffffffffff, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:41:46 executing program 1: bind$inet(0xffffffffffffffff, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(0xffffffffffffffff, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:41:46 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:41:46 executing program 0: unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:41:46 executing program 1: r0 = socket$inet(0x2, 0x0, 0x0) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:41:46 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(0xffffffffffffffff, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:41:46 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) [ 815.222463][ T3146] usb 3-1: new low-speed USB device number 57 using dummy_hcd 03:41:47 executing program 0: unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:41:47 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(0xffffffffffffffff, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:41:47 executing program 3: syz_emit_vhci(&(0x7f0000000080)=ANY=[@ANYBLOB="0405047fc8"], 0x7) [ 815.589220][ T3146] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 815.597121][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 815.608278][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 is Bulk; changing to Interrupt 03:41:49 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef0805840200ab"], 0x0) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:49 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) accept4(r0, 0x0, 0x0, 0x0) 03:41:49 executing program 1: r0 = socket$inet(0x2, 0x0, 0x0) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:41:49 executing program 3: syz_emit_vhci(&(0x7f0000000080)=ANY=[@ANYBLOB="0405047fc8"], 0x7) 03:41:49 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:41:49 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x0) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) [ 818.022973][ T3146] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 818.032489][ T3146] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 818.129974][ T3146] usb 3-1: can't set config #168, error -71 [ 818.170490][ T3146] usb 3-1: USB disconnect, device number 57 03:41:50 executing program 3: syz_emit_vhci(&(0x7f0000000080)=ANY=[@ANYBLOB="0405047fc8"], 0x7) 03:41:50 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:41:50 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) accept4(r0, 0x0, 0x0, 0x0) 03:41:50 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x0) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:41:50 executing program 3: syz_emit_vhci(&(0x7f0000000080)=ANY=[@ANYBLOB="0405047fc8"], 0x7) [ 818.852198][ T3146] usb 3-1: new low-speed USB device number 58 using dummy_hcd 03:41:51 executing program 1: r0 = socket$inet(0x2, 0x0, 0x0) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) [ 819.213120][ T3146] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 819.220790][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 819.234930][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 is Bulk; changing to Interrupt 03:41:53 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef0805840200ab"], 0x0) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:41:53 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) accept4(r0, 0x0, 0x0, 0x0) 03:41:53 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:41:53 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x0) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:41:53 executing program 3: 03:41:53 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(0xffffffffffffffff, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) [ 821.512380][ T3146] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 821.521701][ T3146] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 03:41:53 executing program 3: [ 821.619012][ T3146] usb 3-1: can't set config #168, error -71 [ 821.633959][ T3146] usb 3-1: USB disconnect, device number 58 03:41:53 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, 0x0, 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:41:53 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(0xffffffffffffffff, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:41:53 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) 03:41:53 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) [ 822.222372][ T3146] usb 3-1: new low-speed USB device number 59 using dummy_hcd 03:41:54 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) [ 822.582502][ T3146] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 822.590227][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 822.601466][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 is Bulk; changing to Interrupt 03:41:56 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(0xffffffffffffffff, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:41:56 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:41:56 executing program 3: 03:41:56 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, 0x0, 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:41:56 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) 03:41:56 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef0805840200ab"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) [ 824.932821][ T3146] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 824.942365][ T3146] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 03:41:57 executing program 3: syz_emit_vhci(0x0, 0x7) [ 825.093668][ T3146] usb 3-1: can't set config #168, error -71 [ 825.130148][ T3146] usb 3-1: USB disconnect, device number 59 03:41:57 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r0, 0x0, 0x0) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:41:57 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:41:57 executing program 5: connect$inet(0xffffffffffffffff, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(0xffffffffffffffff, 0x8) accept4(0xffffffffffffffff, 0x0, 0x0, 0x0) 03:41:57 executing program 3: syz_emit_vhci(0x0, 0x7) 03:41:57 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, 0x0, 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) [ 825.712539][ T3146] usb 3-1: new low-speed USB device number 60 using dummy_hcd 03:41:57 executing program 5: connect$inet(0xffffffffffffffff, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(0xffffffffffffffff, 0x8) accept4(0xffffffffffffffff, 0x0, 0x0, 0x0) 03:41:57 executing program 4: connect$inet(0xffffffffffffffff, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(0xffffffffffffffff, 0x8) r0 = accept4(0xffffffffffffffff, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r0, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:41:57 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r0, 0x0, 0x0) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:41:58 executing program 3: syz_emit_vhci(0x0, 0x7) [ 826.123018][ T3146] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 826.130674][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 826.141979][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 is Bulk; changing to Interrupt 03:41:58 executing program 5: connect$inet(0xffffffffffffffff, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(0xffffffffffffffff, 0x8) accept4(0xffffffffffffffff, 0x0, 0x0, 0x0) 03:42:00 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef0805840200ab"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:42:00 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(0xffffffffffffffff, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r0 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r0, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r0, 0x4020744f, &(0x7f00000003c0)) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) r2 = dup(r1) write$P9_RMKDIR(r2, &(0x7f00000000c0)={0x14}, 0x14) 03:42:00 executing program 5: r0 = socket$inet(0xa, 0x0, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) 03:42:00 executing program 3: syz_emit_vhci(&(0x7f0000000080)=ANY=[], 0x7) 03:42:00 executing program 4: connect$inet(0xffffffffffffffff, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(0xffffffffffffffff, 0x8) r0 = accept4(0xffffffffffffffff, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r0, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:00 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r0, 0x0, 0x0) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) [ 828.502808][ T3146] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 828.512715][ T3146] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 03:42:00 executing program 3: syz_emit_vhci(&(0x7f0000000080)=ANY=[], 0x7) 03:42:00 executing program 4: connect$inet(0xffffffffffffffff, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(0xffffffffffffffff, 0x8) r0 = accept4(0xffffffffffffffff, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r0, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:00 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r0, &(0x7f0000000440)={0x2, 0x0, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) [ 828.640991][ T3146] usb 3-1: can't set config #168, error -71 [ 828.713617][ T3146] usb 3-1: USB disconnect, device number 60 [ 828.725638][ T5263] udevd[5263]: setting owner of /dev/bus/usb/003/060 to uid=0, gid=0 failed: No such file or directory 03:42:01 executing program 3: syz_emit_vhci(&(0x7f0000000080)=ANY=[], 0x7) [ 829.213396][ T3146] usb 3-1: new low-speed USB device number 61 using dummy_hcd 03:42:01 executing program 4: r0 = socket$inet(0xa, 0x0, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:01 executing program 5: r0 = socket$inet(0xa, 0x0, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) [ 829.593314][ T3146] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 829.600978][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 829.612138][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 is Bulk; changing to Interrupt 03:42:03 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef0805840200ab"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0}) r1 = syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(r1, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:42:03 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(0xffffffffffffffff, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r0 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r0, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r0, 0x4020744f, &(0x7f00000003c0)) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) r2 = dup(r1) write$P9_RMKDIR(r2, &(0x7f00000000c0)={0x14}, 0x14) 03:42:03 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r0, &(0x7f0000000440)={0x2, 0x0, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:42:03 executing program 3: syz_emit_vhci(&(0x7f0000000080)=ANY=[@ANYBLOB], 0x7) 03:42:03 executing program 4: r0 = socket$inet(0xa, 0x0, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:03 executing program 5: r0 = socket$inet(0xa, 0x0, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) [ 831.853066][ T3146] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 831.862648][ T3146] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 831.983905][ T3146] usb 3-1: can't set config #168, error -71 03:42:04 executing program 3: syz_emit_vhci(&(0x7f0000000080)=ANY=[@ANYBLOB], 0x7) [ 832.036534][ T3146] usb 3-1: USB disconnect, device number 61 03:42:04 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r0, &(0x7f0000000440)={0x2, 0x0, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) [ 832.423534][ T1200] ieee802154 phy0 wpan0: encryption failed: -22 [ 832.430166][ T1200] ieee802154 phy1 wpan1: encryption failed: -22 [ 832.692208][ T3146] usb 3-1: new low-speed USB device number 62 using dummy_hcd 03:42:04 executing program 5: r0 = socket$inet(0xa, 0x801, 0x0) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) 03:42:04 executing program 4: r0 = socket$inet(0xa, 0x0, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:04 executing program 3: syz_emit_vhci(&(0x7f0000000080)=ANY=[@ANYBLOB], 0x7) 03:42:05 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(0xffffffffffffffff, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r0 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r0, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r0, 0x4020744f, &(0x7f00000003c0)) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) r2 = dup(r1) write$P9_RMKDIR(r2, &(0x7f00000000c0)={0x14}, 0x14) [ 833.132984][ T3146] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 833.140639][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 833.154605][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 is Bulk; changing to Interrupt 03:42:07 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef0805840200ab"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(0xffffffffffffffff, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(r0) 03:42:07 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(0xffffffffffffffff, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:42:07 executing program 3: syz_emit_vhci(&(0x7f0000000080)=ANY=[@ANYBLOB="040504"], 0x7) 03:42:07 executing program 5: r0 = socket$inet(0xa, 0x801, 0x0) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) 03:42:07 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, 0x0) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:07 executing program 4: r0 = socket$inet(0xa, 0x801, 0x0) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) [ 835.382617][ T3146] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 835.392097][ T3146] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 03:42:07 executing program 5: r0 = socket$inet(0xa, 0x801, 0x0) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) [ 835.502993][ T3146] usb 3-1: can't set config #168, error -71 03:42:07 executing program 3: syz_emit_vhci(&(0x7f0000000080)=ANY=[@ANYBLOB="040504"], 0x7) [ 835.570507][ T3146] usb 3-1: USB disconnect, device number 62 03:42:07 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(0xffffffffffffffff, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:42:07 executing program 4: r0 = socket$inet(0xa, 0x801, 0x0) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:07 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(0xffffffffffffffff, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) 03:42:08 executing program 3: syz_emit_vhci(&(0x7f0000000080)=ANY=[@ANYBLOB="040504"], 0x7) [ 836.222697][ T3146] usb 3-1: new low-speed USB device number 63 using dummy_hcd [ 836.593533][ T3146] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 836.601197][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 836.612939][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 is Bulk; changing to Interrupt [ 836.913095][ T3146] usb 3-1: string descriptor 0 read error: -22 [ 836.919928][ T3146] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 836.929447][ T3146] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 837.133545][ T3146] adutux 3-1:168.0: ADU100 now attached to /dev/usb/adutux0 [ 837.323966][ T116] usb 3-1: USB disconnect, device number 63 03:42:10 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef0805840200ab"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(0xffffffffffffffff, 0x0, 0x0) syz_usb_disconnect(r0) 03:42:10 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(0xffffffffffffffff, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:42:10 executing program 4: r0 = socket$inet(0xa, 0x801, 0x0) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:10 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(0xffffffffffffffff, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) 03:42:10 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, 0x0) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:10 executing program 3: syz_emit_vhci(&(0x7f0000000080)=ANY=[@ANYBLOB="0405047f"], 0x7) 03:42:10 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(0xffffffffffffffff, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:10 executing program 3: syz_emit_vhci(&(0x7f0000000080)=ANY=[@ANYBLOB="0405047f"], 0x7) 03:42:10 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(0xffffffffffffffff, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) 03:42:10 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x0, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:42:10 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(0xffffffffffffffff, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) [ 838.772276][ T116] usb 3-1: new low-speed USB device number 64 using dummy_hcd 03:42:10 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, 0x0, 0x0) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) [ 839.153687][ T116] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 839.161356][ T116] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 839.172800][ T116] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 is Bulk; changing to Interrupt [ 839.510373][ T116] usb 3-1: string descriptor 0 read error: -22 [ 839.517264][ T116] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 839.526886][ T116] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 839.673490][ T116] adutux 3-1:168.0: ADU100 now attached to /dev/usb/adutux0 [ 839.850975][ T3563] usb 3-1: USB disconnect, device number 64 03:42:12 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef0805840200ab"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(0xffffffffffffffff, 0x0, 0x0) syz_usb_disconnect(r0) 03:42:12 executing program 3: syz_emit_vhci(&(0x7f0000000080)=ANY=[@ANYBLOB="0405047f"], 0x7) 03:42:12 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, 0x0) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:12 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x0, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:42:12 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(0xffffffffffffffff, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:12 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, 0x0, 0x0) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) 03:42:13 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, 0x0, 0x0) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:13 executing program 3: syz_usb_connect(0x0, 0x2d, &(0x7f00000000c0)=ANY=[@ANYBLOB="12010000a527bd40eb030200c0ba000000010902115c01000000000904000001b504b10009"], 0x0) r0 = syz_open_dev$evdev(&(0x7f00000000c0), 0x400, 0x0) ioctl$EVIOCSKEYCODE(r0, 0x40084504, &(0x7f0000000100)=[0x0, 0x5]) r1 = syz_open_dev$evdev(&(0x7f00000000c0), 0x400, 0x0) ioctl$EVIOCSKEYCODE_V2(r1, 0x40284504, &(0x7f0000000000)={0x5, 0x0, 0x0, 0x0, "450146e32e03552aa805920dd3dd844ac95e89a04e981ea320e5b193b5f29ea3"}) 03:42:13 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x0, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) 03:42:13 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, 0x0, 0x0) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) [ 841.433110][ T25] usb 3-1: new low-speed USB device number 65 using dummy_hcd 03:42:13 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:13 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, 0x0, 0x0) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) [ 841.593392][ T3563] usb 4-1: new high-speed USB device number 103 using dummy_hcd [ 841.872972][ T25] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 841.880629][ T25] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 841.891748][ T25] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 is Bulk; changing to Interrupt [ 841.987651][ T3563] usb 4-1: config index 0 descriptor too short (expected 23569, got 27) [ 841.996546][ T3563] usb 4-1: config 0 interface 0 altsetting 0 has 0 endpoint descriptors, different from the interface descriptor's value: 1 [ 842.009920][ T3563] usb 4-1: New USB device found, idVendor=03eb, idProduct=0002, bcdDevice=ba.c0 [ 842.019471][ T3563] usb 4-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 842.166258][ T3563] usb 4-1: config 0 descriptor?? [ 842.212942][ T25] usb 3-1: string descriptor 0 read error: -22 [ 842.219675][ T25] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 842.229192][ T25] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 842.260197][ T3563] igorplugusb 4-1:0.0: incorrect number of endpoints [ 842.430568][ T25] adutux 3-1:168.0: ADU100 now attached to /dev/usb/adutux0 [ 842.482895][ T3563] usb 4-1: USB disconnect, device number 103 [ 842.590407][ T25] usb 3-1: USB disconnect, device number 65 03:42:15 executing program 2: r0 = syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef0805840200ab"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(0xffffffffffffffff, 0x0, 0x0) syz_usb_disconnect(r0) 03:42:15 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(0xffffffffffffffff, 0x8) accept4(r0, 0x0, 0x0, 0x0) 03:42:15 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, 0x0, 0x0) 03:42:15 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, 0x0, 0x0) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:15 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:15 executing program 3: r0 = openat$cgroup_root(0xffffffffffffff9c, &(0x7f0000000640)='./cgroup/syz1\x00', 0x200002, 0x0) r1 = openat$cgroup_pressure(r0, &(0x7f0000000100)='memory.pressure\x00', 0x2, 0x0) openat$cgroup_netprio_ifpriomap(r1, &(0x7f0000000680), 0x2, 0x0) 03:42:15 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(0xffffffffffffffff, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:15 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(0xffffffffffffffff, 0x8) accept4(r0, 0x0, 0x0, 0x0) 03:42:15 executing program 3: r0 = socket(0x1, 0x5, 0x0) r1 = socket$inet_sctp(0x2, 0x5, 0x84) dup2(r1, r0) sendto$inet(r1, 0x0, 0x0, 0x0, &(0x7f00000000c0)={0x10, 0x2}, 0x10) r2 = socket$inet6_sctp(0x1c, 0x5, 0x84) connect$inet6(r2, &(0x7f0000000400)={0x1c, 0x1c, 0x3}, 0x1c) r3 = dup2(r2, r2) getsockopt$inet_sctp_SCTP_GET_ASSOC_ID_LIST(r3, 0x84, 0x105, &(0x7f0000000240)={0x1, [0x0]}, &(0x7f0000000040)=0x8) getsockopt$inet_sctp_SCTP_PR_SUPPORTED(r0, 0x84, 0x26, &(0x7f0000000100)={r4}, &(0x7f0000000140)=0x8) 03:42:15 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, 0x0, 0x0) [ 844.142364][ T3563] usb 3-1: new low-speed USB device number 66 using dummy_hcd 03:42:16 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(0xffffffffffffffff, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:16 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, 0x0, 0x0) [ 844.502490][ T3563] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 844.510155][ T3563] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 844.523969][ T3563] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 is Bulk; changing to Interrupt [ 844.862481][ T3563] usb 3-1: string descriptor 0 read error: -22 [ 844.869225][ T3563] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 844.878946][ T3563] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 844.993835][ T3563] adutux 3-1:168.0: ADU100 now attached to /dev/usb/adutux0 [ 845.183309][ T3146] usb 3-1: USB disconnect, device number 66 03:42:18 executing program 2: syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef0805840200ab"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(0xffffffffffffffff, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(0xffffffffffffffff) 03:42:18 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:18 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(0xffffffffffffffff, 0x8) accept4(r0, 0x0, 0x0, 0x0) 03:42:18 executing program 3: sendmsg(0xffffffffffffffff, &(0x7f0000000000)={0x0, 0x0, 0x0, 0x0, &(0x7f00000000c0)=ANY=[@ANYBLOB="e8000000000000000b210000ff3f7c081e0f315b91fcaec7bf495d5c618332756cbb1bb9ce6d12b9d976d1f33aca41e50a3342bcd67c311f7885a05c3fcf2ae21f1498ec481e7ca2c3ca4c7b3bf94448f62e111e5a79929b9182cc977ba6ae766ce37bdaac6da997fbc15f0c79f42155b99a280667b51fdc7902d7be5ef41f953fedb32aceeada13250626957eff13d5b12cc916541ccbeb0d4060a4dd89664eaba2f6b4ede0c9e3dc1c9446d9284ebe0e46eee7bc145ff0a2779c025553298812978ea53a8c60f254f23344a80a0aac7b141787bad6b0ba090000005f2f3158f0d200000000000070000000000000000701000040000000afbb30c2946e41ef3167d1f6ed47aa1f52bad114a89dbed741f74a23cd8d915e2dcc74a4932646b90f90a9d3956d5cadb642ac79fcb0aae3654482188263abd27e9d57cc28032453dc75f333e1f367ab38b7e7719805a454e79802d07ec60c00b0000000000000000100000001"], 0x208}, 0x0) socketpair(0x1, 0x5, 0x0, &(0x7f0000000240)={0xffffffffffffffff, 0xffffffffffffffff}) sendmsg(r0, &(0x7f0000000300)={0x0, 0x0, 0x0, 0x0, &(0x7f00000000c0)=ANY=[], 0x208}, 0x0) recvmmsg(r1, &(0x7f0000001dc0)=[{{0x0, 0x1c, 0x0, 0x0, &(0x7f0000000400)=""/188, 0xbc, 0xdf0e}}], 0x1800, 0x2002, 0x0) 03:42:18 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(0xffffffffffffffff, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:18 executing program 1: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r0, &(0x7f0000000440)={0x2, 0x4e23, @broadcast}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x0, @local}, 0x10) 03:42:18 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x0) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:18 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x0) accept4(r0, 0x0, 0x0, 0x0) 03:42:18 executing program 1: syz_emit_vhci(&(0x7f0000000080)=@HCI_EVENT_PKT={0x4, @hci_ev_remote_oob_data_request={{0x35, 0x6}, {@fixed}}}, 0x9) [ 846.762475][ T3146] usb 3-1: new low-speed USB device number 67 using dummy_hcd 03:42:19 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, 0x0, 0x0) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:19 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x0) accept4(r0, 0x0, 0x0, 0x0) 03:42:19 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x0) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) [ 847.123231][ T3146] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 847.131074][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 847.143023][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 is Bulk; changing to Interrupt [ 847.552483][ T3146] usb 3-1: string descriptor 0 read error: -22 [ 847.559320][ T3146] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 847.570102][ T3146] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 847.774360][ T3146] adutux 3-1:168.0: ADU100 now attached to /dev/usb/adutux0 [ 848.155064][ T3146] usb 3-1: USB disconnect, device number 67 03:42:20 executing program 2: syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef0805840200ab"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(0xffffffffffffffff, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(0xffffffffffffffff) 03:42:20 executing program 1: r0 = epoll_create1(0x0) r1 = epoll_create1(0x0) epoll_ctl$EPOLL_CTL_ADD(r1, 0x1, r0, &(0x7f00000021c0)) epoll_ctl$EPOLL_CTL_ADD(r1, 0x3, r0, &(0x7f00000001c0)) 03:42:20 executing program 3: syz_emit_vhci(&(0x7f0000000100)=@HCI_EVENT_PKT={0x4, @hci_ev_num_comp_blocks={{0x48, 0x3}}}, 0x6) 03:42:20 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x0) accept4(r0, 0x0, 0x0, 0x0) 03:42:20 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x0) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:20 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, 0x0, 0x0) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) [ 848.774473][ T9977] Bluetooth: hci4: wrong event for mode 0 03:42:20 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) accept4(0xffffffffffffffff, 0x0, 0x0, 0x0) 03:42:21 executing program 1: r0 = syz_open_pts(0xffffffffffffffff, 0x0) flock(r0, 0x2) fcntl$lock(r0, 0x9, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x100004000}) flock(r0, 0x5) 03:42:21 executing program 3: syz_emit_vhci(&(0x7f0000000100)=@HCI_EVENT_PKT={0x4, @hci_ev_num_comp_blocks={{0x48, 0x3}}}, 0x6) 03:42:21 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(0xffffffffffffffff, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:21 executing program 1: syz_emit_vhci(&(0x7f0000000000)=@HCI_EVENT_PKT={0x4, @hci_ev_remote_ext_features={{0x23, 0xd}, {0x0, 0x0, 0x0, 0x0, "426491f60c5a2511"}}}, 0x10) [ 849.413706][ T3146] usb 3-1: new low-speed USB device number 68 using dummy_hcd 03:42:21 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) accept4(0xffffffffffffffff, 0x0, 0x0, 0x0) [ 849.536408][ T9977] Bluetooth: hci4: wrong event for mode 0 [ 849.783631][ T3146] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 849.791319][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 849.803162][ T3146] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 is Bulk; changing to Interrupt [ 850.113525][ T3146] usb 3-1: string descriptor 0 read error: -22 [ 850.120290][ T3146] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 850.130085][ T3146] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 850.276585][ T3146] adutux 3-1:168.0: ADU100 now attached to /dev/usb/adutux0 [ 850.653778][ T3563] usb 3-1: USB disconnect, device number 68 03:42:23 executing program 2: syz_usb_connect(0x1, 0x36, &(0x7f0000000000)=ANY=[@ANYBLOB="1a0100005c6b4408070a64006e00010203010902240001a82200000904000002ca743600090503032000ff00ef0805840200ab"], &(0x7f00000007c0)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x0, 0x0}]}) syz_open_dev$char_usb(0xc, 0xb4, 0x0) read$char_usb(0xffffffffffffffff, &(0x7f00000001c0)=""/12, 0xc) syz_usb_disconnect(0xffffffffffffffff) 03:42:23 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, 0x0, 0x0) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:23 executing program 1: r0 = openat(0xffffffffffffff9c, &(0x7f0000001240)='./file0\x00', 0x200, 0x0) read(r0, &(0x7f00000014c0)=""/35, 0x23) 03:42:23 executing program 3: syz_emit_vhci(&(0x7f0000000100)=@HCI_EVENT_PKT={0x4, @hci_ev_num_comp_blocks={{0x48, 0x3}}}, 0x6) 03:42:23 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(0xffffffffffffffff, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:23 executing program 5: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) accept4(0xffffffffffffffff, 0x0, 0x0, 0x0) [ 851.338656][ T9977] Bluetooth: hci4: wrong event for mode 0 03:42:23 executing program 1: r0 = socket$unix(0x1, 0x2, 0x0) sendmsg(r0, &(0x7f0000001680)={0x0, 0x0, 0x0, 0x0, &(0x7f0000001500)=[{0x10, 0x1}], 0x10}, 0x0) 03:42:23 executing program 3: syz_emit_vhci(&(0x7f0000000100)=@HCI_EVENT_PKT={0x4, @hci_ev_num_comp_blocks={{0x48, 0x3}}}, 0x6) 03:42:23 executing program 5: r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f0000000240)={0x26, 'aead\x00', 0x0, 0x0, 'generic-gcm-aesni\x00'}, 0x58) setsockopt$ALG_SET_KEY(r0, 0x117, 0x1, &(0x7f0000000100)="640c263fa9d14c782a4b0fe5d1f8ef1b5675faf4ab0ab8e3", 0x18) r1 = accept4$alg(r0, 0x0, 0x0, 0x0) recvmsg(r1, &(0x7f00000002c0)={0x0, 0x0, &(0x7f0000003780)=[{&(0x7f00000001c0)=""/25, 0x19}], 0x1}, 0x0) sendmmsg(r1, &(0x7f00000000c0)=[{{0x0, 0x0, &(0x7f0000000180)=[{&(0x7f0000000080)="c285df687183f20cc878edc15e0e1298", 0x10}], 0x1}}], 0x1, 0x0) 03:42:23 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(0xffffffffffffffff, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) [ 851.755936][ T9977] Bluetooth: hci4: wrong event for mode 0 03:42:23 executing program 3: [ 851.982402][ T3563] usb 3-1: new low-speed USB device number 69 using dummy_hcd 03:42:24 executing program 1: r0 = socket$nl_generic(0x10, 0x3, 0x10) r1 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r1, 0x8933, &(0x7f0000000140)={'wlan0\x00', 0x0}) ioctl$AUTOFS_DEV_IOCTL_FAIL(0xffffffffffffffff, 0xc0189377, &(0x7f0000000100)={{0x1, 0x1, 0x18, r0}, './file0\x00'}) r3 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000080), 0xffffffffffffffff) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f0000000a80)={0x0, 0x0, &(0x7f0000000000)={&(0x7f00000000c0)=ANY=[@ANYBLOB="f0020000", @ANYRES16=r3, @ANYBLOB="010400000000000000003b00000008000300", @ANYRES32=r2, @ANYBLOB="d2023300802b0001080211000000080211"], 0x2f0}}, 0x0) [ 852.344072][ T3563] usb 3-1: config 168 descriptor has 1 excess byte, ignoring [ 852.352024][ T3563] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x3 has invalid maxpacket 32, setting to 8 [ 852.363140][ T3563] usb 3-1: config 168 interface 0 altsetting 0 endpoint 0x84 is Bulk; changing to Interrupt [ 852.702536][ T3563] usb 3-1: string descriptor 0 read error: -22 [ 852.709354][ T3563] usb 3-1: New USB device found, idVendor=0a07, idProduct=0064, bcdDevice= 0.6e [ 852.722376][ T3563] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 852.934213][ T3563] adutux 3-1:168.0: ADU100 now attached to /dev/usb/adutux0 [ 853.334289][ T25] usb 3-1: USB disconnect, device number 69 03:42:25 executing program 1: r0 = socket$alg(0x26, 0x5, 0x0) bind$alg(r0, &(0x7f0000000240)={0x26, 'skcipher\x00', 0x0, 0x0, 'ecb-camellia-aesni-avx2\x00'}, 0x58) setsockopt$ALG_SET_KEY(r0, 0x117, 0x1, &(0x7f0000000100)="640c263fa9d14c782a4b0fe5d1f8ef1b5675faf4ab0ab8e3", 0x18) r1 = accept4$alg(r0, 0x0, 0x0, 0x0) recvmsg(r1, &(0x7f00000002c0)={0x0, 0x0, &(0x7f0000003780)=[{&(0x7f00000001c0)=""/25, 0x19}], 0x1}, 0x0) sendmmsg(r1, &(0x7f00000000c0)=[{{0x0, 0x0, &(0x7f0000000180)=[{&(0x7f0000000300)='2', 0x1}], 0x1}}], 0x1, 0x0) 03:42:25 executing program 3: 03:42:25 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(0xffffffffffffffff, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:25 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:25 executing program 5: 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, &(0x7f0000000a80)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000280)=ANY=[@ANYBLOB="4800000010000507000000000000000000000002", @ANYRES32=r2, @ANYBLOB="0000400000000002280012000c00010076657468"], 0x48}}, 0x0) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000440)=ANY=[@ANYBLOB="2800000014002101000000000000000002200000", @ANYRES32=r2, @ANYBLOB="08000400ffffffff08000200e0"], 0x28}}, 0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)=0x14) sendmsg$nl_route(r3, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000440)=ANY=[], 0x28}}, 0x0) sendmsg$nl_route(r0, &(0x7f0000000100)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000180)=@ipv4_deladdr={0x18, 0x15, 0x1, 0x0, 0x0, {0x2, 0x0, 0x0, 0x0, r4}}, 0x18}}, 0x0) 03:42:26 executing program 2: syz_emit_ethernet(0x1e, &(0x7f0000000080), 0x0) 03:42:26 executing program 3: [ 854.129734][T10637] netlink: 24 bytes leftover after parsing attributes in process `syz-executor.5'. 03:42:26 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(0xffffffffffffffff, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) 03:42:26 executing program 2: r0 = open$dir(&(0x7f0000001240)='./file0\x00', 0x4000040000000242, 0x0) lseek(r0, 0x0, 0x40fff) r1 = dup2(r0, r0) writev(r1, &(0x7f00000004c0)=[{&(0x7f0000000040)='\t', 0x1}], 0x1) open(&(0x7f0000000080)='./file0\x00', 0x400, 0x0) 03:42:26 executing program 5: 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, &(0x7f0000000a80)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000280)=ANY=[@ANYBLOB="4800000010000507000000000000000000000002", @ANYRES32=r2, @ANYBLOB="0000400000000002280012000c00010076657468"], 0x48}}, 0x0) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000440)=ANY=[@ANYBLOB="2800000014002101000000000000000002200000", @ANYRES32=r2, @ANYBLOB="08000400ffffffff08000200e0"], 0x28}}, 0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)=0x14) sendmsg$nl_route(r3, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000440)=ANY=[], 0x28}}, 0x0) sendmsg$nl_route(r0, &(0x7f0000000100)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000180)=@ipv4_deladdr={0x18, 0x15, 0x1, 0x0, 0x0, {0x2, 0x0, 0x0, 0x0, r4}}, 0x18}}, 0x0) 03:42:26 executing program 3: syz_emit_vhci(0x0, 0x0) 03:42:27 executing program 1: socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000000)={0xffffffffffffffff}) sendmmsg(r0, &(0x7f00000001c0), 0x10, 0x0) 03:42:27 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(0xffffffffffffffff, 0x84, 0x1b, &(0x7f00000001c0), &(0x7f0000000200)=0x18) [ 855.051062][ T24] audit: type=1804 audit(1667965347.090:9): pid=10653 uid=0 auid=4294967295 ses=4294967295 subj=unconfined op=invalid_pcr cause=open_writers comm="syz-executor.2" name="/root/syzkaller-testdir1700056583/syzkaller.slkPEm/464/file0" dev="sda1" ino=1157 res=1 errno=0 03:42:27 executing program 2: socketpair(0x21, 0x0, 0x2, &(0x7f00000007c0)) 03:42:27 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) [ 855.313529][T10656] netlink: 24 bytes leftover after parsing attributes in process `syz-executor.5'. 03:42:27 executing program 3: syz_emit_vhci(0x0, 0x0) 03:42:27 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, 0x0, &(0x7f0000000200)) 03:42:27 executing program 5: 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, &(0x7f0000000a80)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000280)=ANY=[@ANYBLOB="4800000010000507000000000000000000000002", @ANYRES32=r2, @ANYBLOB="0000400000000002280012000c00010076657468"], 0x48}}, 0x0) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000440)=ANY=[@ANYBLOB="2800000014002101000000000000000002200000", @ANYRES32=r2, @ANYBLOB="08000400ffffffff08000200e0"], 0x28}}, 0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)=0x14) sendmsg$nl_route(r3, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000440)=ANY=[], 0x28}}, 0x0) sendmsg$nl_route(r0, &(0x7f0000000100)={0x0, 0x0, &(0x7f00000000c0)={&(0x7f0000000180)=@ipv4_deladdr={0x18, 0x15, 0x1, 0x0, 0x0, {0x2, 0x0, 0x0, 0x0, r4}}, 0x18}}, 0x0) 03:42:27 executing program 1: mlock(&(0x7f0000ffb000/0x4000)=nil, 0x4000) mprotect(&(0x7f0000ffc000/0x4000)=nil, 0x4000, 0x0) mlock(&(0x7f0000ffc000/0x4000)=nil, 0x4000) 03:42:27 executing program 2: openat(0xffffffffffffff9c, &(0x7f0000001240)='./file0\x00', 0x200, 0x0) 03:42:28 executing program 3: syz_emit_vhci(0x0, 0x0) 03:42:28 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, 0x0, &(0x7f0000000200)) 03:42:28 executing program 1: socketpair$unix(0x1, 0x1, 0x0, &(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) sendmsg$unix(r0, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000001940), 0x9}, 0x0) [ 856.350444][T10679] netlink: 24 bytes leftover after parsing attributes in process `syz-executor.5'. 03:42:28 executing program 2: socketpair$unix(0x1, 0x1, 0x0, &(0x7f00000000c0)={0xffffffffffffffff, 0xffffffffffffffff}) sendmsg$unix(r0, &(0x7f0000001600)={0x0, 0x0, 0x0, 0x0, &(0x7f0000000200)=ANY=[@ANYBLOB="10000000ffff000001"], 0x10}, 0x0) shutdown(r1, 0x0) 03:42:28 executing program 3: r0 = socket$inet(0x2, 0x2, 0x0) setsockopt$sock_int(r0, 0xffff, 0x800, &(0x7f0000000040), 0x4) 03:42:28 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:28 executing program 1: syz_emit_ethernet(0x8e, &(0x7f00000001c0), 0x0) 03:42:28 executing program 5: r0 = open(&(0x7f0000000040)='./file0\x00', 0x200, 0x0) r1 = open$dir(&(0x7f0000000000)='./file0\x00', 0xa, 0x0) writev(r1, &(0x7f0000000340)=[{&(0x7f0000000000), 0x2cfea}], 0x1000000000000013) mmap(&(0x7f0000000000/0x200000)=nil, 0x200000, 0x3, 0x10, r0, 0x0) r2 = open$dir(&(0x7f0000000000)='./file0\x00', 0x400004000011830a, 0x0) pwritev(0xffffffffffffffff, &(0x7f0000002fc0)=[{0x0}], 0x1, 0x0, 0x0) write(r2, &(0x7f0000000780)="089267d3ff4f0b87969f", 0x100ad) 03:42:29 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, 0x0, &(0x7f0000000200)) 03:42:29 executing program 3: sendmsg(0xffffffffffffffff, &(0x7f0000000000)={0x0, 0x0, 0x0, 0x0, &(0x7f00000000c0)=ANY=[@ANYBLOB="e8000000000000000b210000ff3f7c081e0f315b91fcaec7bf495d5c618332756cbb1bb9ce6d12b9d976d1f33aca41e50a3342bcd67c311f7885a05c3fcf2ae21f1498ec481e7ca2c3ca4c7b3bf94448f62e111e5a79929b9182cc977ba6ae766ce37bdaac6da997fbc15f0c79f42155b99a280667b51fdc7902d7be5ef41f953fedb32aceeada13250626957eff13d5b12cc916541ccbeb0d4060a4dd89664eaba2f6b4ede0c9e3dc1c9446d9284ebe0e46eee7bc145ff0a2779c025553298812978ea53a8c60f254f23344a80a0aac7b141787bad6b0ba090000005f2f3158f0d200000000000070000000000000000701000040000000afbb30c2946e41ef3167d1f6ed47aa1f52bad114a89dbed741f74a23cd8d915e2dcc74a4932646b90f90a9d3956d5cadb642ac79fcb0aae3654482188263abd27e9d57cc28032453dc75f333e1f367ab38b7e7719805a454e79802d07ec60c00b0000000000000000100000001"], 0x208}, 0x0) socketpair(0x1, 0x5, 0x0, &(0x7f0000000240)={0xffffffffffffffff, 0xffffffffffffffff}) sendmsg(r0, &(0x7f0000000300)={0x0, 0x0, 0x0, 0x0, &(0x7f00000000c0)=ANY=[], 0x208}, 0x0) recvmmsg(r1, &(0x7f0000001dc0), 0x1800, 0x2002, 0x0) execve(0x0, 0x0, 0x0) 03:42:29 executing program 2: setuid(0xffffffffffffffff) mkdir(&(0x7f0000000480)='./file0\x00', 0x0) 03:42:29 executing program 1: socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000000)={0xffffffffffffffff}) sendmmsg(0xffffffffffffffff, &(0x7f00000002c0), 0x10, 0x0) sendmmsg(r0, &(0x7f00000001c0), 0x10, 0x0) 03:42:29 executing program 5: r0 = socket$inet6(0x18, 0x3, 0x0) sendto(r0, &(0x7f0000000100)="5512fe1553cc4bf499c674289a2ee43844166a7b49a8c8fd68b0f14f94dad3b2957951e3c4472836f208460cfdcba9a5708475e791c3dc3d2940c4b9719e1fe1bb658c03a713f0d8381ba31982a8063b25846f4edd93ff80fc1fbfdf4f0a16fd0c39d05d7bfc91deafb83d4849c83243c834aeb2614c9c72adc4182bf63118d563c40ff916c8a96f765479b44770c3638d2cb1edeaf3d759aa1a5c234477a74a20ad529728b4ede0e5ec0ac3132d8ea26cca9aee087c12f46309971af8692d8e7b4e895ac4f66148d9a9ce51b6948064f9ab7a9274683970bb1c6d11aacb35c3a707c6ccb2333046ad8130da367b6cc228ab433ec77a5d4f059fae44ca839410560537c9adc8177e85cee4cbb705622ebed802de1454ce08689f7174bebd1f6ce838cfbbe778433593efe6dd6b67b36a96043b8f27e2e20e2b1255db26ffb8ad77631f5e64dad9dd7c863bbca6c86710e6875345f78e5215a781bedc8d9fdd4df24ced84c9c7497feda3dce425a80d59cd0038c5023d0d682e7c83e2e92669106f3ab1ae47ec75942760100ee02a121e3f0d362ccb69b0791bae9d9946e7924fc761e711954c098d2f848486ffdf4e10927df1f9f9baa7659fefa3b89ffbbe6e8de1b4edc5a2561edf90dd6b9dc9776bb749c6a7b9f4d952aaabce4c5f0b2c7e1594888e5e8943e67220c4cb73acdc3dfd48dd51269d8382d89dbde0214662b712a194cf44a9d36d74d8ed72a272cb2d6e3de7843536122b80f2a88d240740c251b8869f62a1fd37cdb1d0190d3252debf69833444183690b2987f68da0a322b372014f08b787443312bf3e83808d478e2a0340bb08d4bf8f0bf4a978f1eebbd23e59ca7114282ebdc1caa590b71d721635dc7362d91c5b230def371bff85ba3d31ee3fc0d2b73ff71748881ae93ccda94e522437223299ed5ec1981ad000bcd84cc11dd3fbc41e994bec71f424d22b7d437b0c4a494cc05adef63d39116dc5b4962db6df68b98571edc37ec80d23e87a33b94153a611404e2f7bcd39db69edb30c742dd6f63644fa7246016bd226eb9aac781738135e2ed01cf4309431af6fdea4fe00506137d686fe260d00eb0e9ce82ac8f9d4b579e37770bf2e5dcd000467cf898ab7b977eebd44e445f22a56b3a6dcb4afb079c12b9543ac27be442f5fae586353567755ee312e373b6e346cc5ad77a5edc6be8c77ae2df6fbd6ccd182a7e196ae2d4c80bd0c6d48a019cf24da99625c4b1fcdf4aeb8b4d9069172adec05a3319aeaf70c658a117bb5ed87263f2a70eae0adfef399f12c750ae806640433eb443871e4b00a62410a8c04a1411f255d711086b91d1e96a539b55bf1f9a1503c1bc798cee14b9a989d3887c9f6fa95b8228deaa04f3c6d3a1bf2113eae2aec254e9dc02aff63c65f3069dfeafd4dee967f30e461fdd80fe44bea7fd4f72361b91d816bf8bc21171855543e8912a897bdc49dabfae791c57129a00cbcc1e76b03699543fa2757dc8557790ae533bb88f42a052a054e92997a39ba36a4e2381cef659a8844a8285d919053627c180f243c3d85bd2ebf73781cfc495fc46fedffc6b49a3863f563b53cf52123037fa8768659e9f18e6f38cc36f62af08ddb59e611dc52652f917189d5b679e9b69089e29dd675dc7e60179f1217f95690b9d9a12bcfe398254336acb05af88b654de23e372bff4146943f1666ea738df36d234d8f17e234bee7dae0514aca6c79741fe72cbf8e90b51a144989cfa9281d74242c83f7f35091e03653a5b236db4dfc47793e5975c002c4dcb287f75b39e097c58aafa4432ca8809723ec56400f42007466dcb567dab8c906f01d459e759c5ec74ec57494065570598f98fff1ad20a54c1b2454cd3b553a75875842814464d2e6c7fd11f0fb604a4904df8ba58c6d808cd48506adbde673783541c2248501ebf6b4223c8de6f4f536719e1a0d245e614818b8b0995fb2476ce4746b52ee2307d767f0111193797d1c8db07ce845474172269ac18ccc264b26b5260d64ce09164ee245f12cfd226ca135d64d763dc3666751471986a224acf154a3bc31c55ce7f5d3d4d5593bc203a0ac6f170442b2cdf685a9ca37a0296da08fb957ec3d0a5579b318b7aa75ad2a9435b53fbd305e5cae95177495f2542be162c8a09a3d3f523032bd76cb5a700d372dbd040c0c8affcd230bc03b0c49c7173c5da1b231f8f360b072a44e26bbf4639f9d45dd586c86e48f71435f444591dd839b9b11304b5b817169c214f83ab8f0d4c7b2227c41b2c18d372e0662f9385a2d50b9fb8a8380e235f21672966a179a909aa600bda7ba73a488cfd878de96cab7ab4e26c9f645cc5b825df483870a13e23bfd664811ee80cb91f53b26e20c0686c76aa38d378f6e619c3559c1745e98b845896fd0d6184a7b2fcbbe4baca5d4be322f9d4a9db1562e15e151ea9788622e59c4df3545055e7c3dbed6d79b0adfd7928a07922e0ca418520c3f57419ae77636333192dd943807999e9418e5b4c9a64dae964dea37fdca550b0ccb358ad891cdc13c0f8b2190776ebcb811febf239e1830920f69be4d4c3aedf4f9f424a77887281e2ba618da8d600134f340d04ded6f467deadc80b3787764a3e1248be58345d2666f2c92c4cfcaef8217cd077b88dc22fc0314173d71318a5abef3805c3683a0b94d8af7e7ceeb59e12b6f7117a7e6291b9d0c7f0949191cc63", 0x784, 0x0, &(0x7f0000001100), 0xc) 03:42:29 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), 0x0) 03:42:29 executing program 2: socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000040)={0xffffffffffffffff, 0xffffffffffffffff}) sendto(r0, &(0x7f0000000100)="cb9340fb7ac97a399082ef43c73f7f274051b4247a4ffb0ba21c69836a3d7ce5e818097eac9e2c04859666848986e0ed9768553b4af1e69838e9465c30872c0b70788fc8309ab2b71c3b127cd9eed0bdf60a4fa04ff3c44d89a18f4a8102dbd6f694373ecf7fb7014cef24fc2c6ec977c97ecc3d36c9835c0dd8c76077cdf45f59c23369ed290221c605bceb8decc0ca7c292bda63746689e4c662d6033d2e2551b8aadecc1f45b3f297a30483ba2c8d99a45e731cc9de2f93d2944f951af3125657b13333abbd81acc1ab70a4f5f3e3443c4bb6337d967d1869343256c74abb0c1fdec9c1da848841c1ccd1bc99056120cac8baccd80abeb2fc4f1d3d39ebc5a404999e0b36e956933703355e74fa382286c7b6ecc5f4abf664b78b601cab5b0a9a954c80fd2b02f63540bd76bb4dad1dbe509a16d5a61ec12b9d1a2c10c1f0d7439ffea2ae19591f99010df60e15f2aa338183a9119ba7e76bb6b5250e83ed53814d3d553a8bb88ed35b64a3984068c07491900ddd8ff3c79274943bce3dedcd3e569f01b570a375cd47aed79815fc5a1604bead7a058620e43f97f1f20434d2de1aa3bc01c1bdb0f6daef9587885c31a1b8c9cac381ee60593ba6bf9dbe34471d911103cf4663b3b088033d5edc16f03b4b7f4a7c7892ca578a6b83414808292e2d8fa8529dacb9f3b03ec5845e2d5950af28579a69bdec79c42b8d7107ecdde3e2c556c7f34daf9a8e7f97a2b2f7bc57ffe7e1be3ea36630c956c89e3b9f994af532498e9fa1b68598a5f39e8004263478a6e5e6e079b67084ff6c915a4d7ec9ba07a58c16f41a0f5a4b4d5fb7eacdb0f89967dba4fcafb24217407e65e185eb2efb4c244b2c29d7ae7ef5a435c33e08a5c78d50462dd5f856c6a2207e2881caf33d2e3ae115892e16fe1b1cbcd5562379a091e74da98dbb29783603a38674eade34585f3121c133601886c1affb3f227e6a97804e4a5f40405cf2715e7ef169df874881c4cede85556715891488b2145ac8da862c543b7b11ffd131bd35d824a439a94c9d3e9787421857430bc431540891030fdb82721ccab37bf4aab0e5032f7b479c4d5b55907d48e6b9ffa0913b57fe8f34f7862043ea24998bb5094f6e8a33929f3fea6412a06d4bbb827fdce40029afe00cb70beab7ef6d3d598c2304fd3a816a6f223b8341409972f37b17478386dfb04bc9f06a2c978439255cee664e03d051323734b3e7a18c3ab688674da11ac040cf4190e1620e9aa0003f5ed45526c4b8533c6315b6cd81efcd9be7d1650a12d459a2412749430edd0c9319f6211c4eaa416d428fc91f864bf64eb9f56e8846f406198c78e9852709af037c8c60d4a42239dd1dbba4e4f532da1ff382f9ed64d8758c60521a90365376e2c609b45b7d4a2aa1218329e897e72d184cdde352b4aed3be22d61f340a5c78dea24cf8c492c4cd8c784d0b5f3b0451db529dccf93ec98baeb490363de5a5ee46be224c5aced698aa37a847278276a1a6449bedd4b00a310a41ef7d23ae94c3abae0a73a97b4c8cc5abbb297d74cc6ab2ddd22d54d4ea275b9bffafceb2a05ed05ff90cd94ed2fefa647fe9c43a3731e2b3ee4e30c10ff59867fd09b040c7da50d35d7feba960e285c7298755ad1ba52674d77b3a0ca5320aace715235fdc3c4c64a2d90b9729c973b29b7296a2c6c7d944118f89f8f2a7f01f85a6099deb2d7b39e8f1baac912030f03af6de2a5ccded0c2253ed25eb500ed674814705735b5be9e7bf272846edffba775035acf229cd0540a94543cbf3b85d4afb5fec3b6ea2032a113cb1e5cf94f183efa5f6b957b70021b68f45e00f2dccb9aafed0998342443125157b0398693309f84cc6fa2da15a19ea27e1fa2ad32548a8195840ab7acae9d496214d49c8918307d567ba59f4ffb69b77b856ceffe1756fa5711e7c4fb60c4e75f021457ceb19479588b141ef0cb6f89c0e45591e3e4ea38250f04080503d22e0cf01f959ab086b556bc247b634d3862fcbb518ee707e18f49206a7c82b7111fca47bc76d8dee27ae9552575493e829b8bbe2f3badddf32f7d0c722b640931560db2a2adba307263244547494c9da02b2fb7cd3b1115349917f2a9c2bc2614818a67827b3248c410336d20e432d4ff2d2fc81e92f2603bb5e13b98642c3275df8f084383647266981abe289279871b25730b8ff5b0cda0916afa5bdd34361f55bb27fbe2de8719e9f31abb877c43d1f89eef08ff9bb4d9a2e9f3ddcf3aa0e7568720b9b4b574f3140018659f757ae3b8844f40b6c9fb0b81131df99fc41f77b2d3c86e2474dedd5aba9c2f9ceed83068d3f7ccffa0d22562d3a77f8ff125810c672a6f090c7857526f8f196851b3d12d2eb010b3b49292b1ae92e6ef5c0a87d027c587bc3aa9afb8cc1fdb9849b59c5e5e7ccd7636d3cbdd94ef322b64ea0c1778bb9dd5739c6a36d2e01a9d5a58ec3d770d0c392d9adb767fa1fa447f248c6ac13de029ada99a8f6ac245110023d9c54bed883d49b39b0a0df731f73e5065a89fbc6f49cca999a5d24da92cb5453b156eb977557bced30076dd85ec30f8a2c5fe950e8f09603b934737c93c9f5974e1a46038d94a16ab8a3128d06a25e846547d0dcef4a700c834621c80ae2345454b83366c3f89653ae1e7b6f285c2269eaed6e1388fdef8f56aecb8996991df787c00e4bb3af00f7eba6442d053d0012988190d7e50303056f1d2767185219fd80f2c09d7a15d96f9fce66a46b616ff0d3331f35ca9dbf51fe92d442236dac5c203559", 0x7b5, 0x41c, 0x0, 0x0) 03:42:30 executing program 1: openat(0xffffffffffffff9c, &(0x7f0000000240)='./file0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\x00', 0x200, 0x0) link(&(0x7f0000000100)='./file0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\x00', &(0x7f0000000200)='./file0\x00') 03:42:30 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, 0x0, 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:30 executing program 5: socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000040)={0xffffffffffffffff, 0xffffffffffffffff}) sendto(r0, &(0x7f0000000100)="cb9340fb7ac97a399082ef43c73f7f274051b4247a4ffb0ba21c69836a3d7ce5e818097eac9e2c04859666848986e0ed9768553b4af1e69838e9465c30872c0b70788fc8309ab2b71c3b127cd9eed0bdf60a4fa04ff3c44d89a18f4a8102dbd6f694373ecf7fb7014cef24fc2c6ec977c97ecc3d36c9835c0dd8c76077cdf45f59c23369ed290221c605bceb8decc0ca7c292bda63746689e4c662d6033d2e2551b8aadecc1f45b3f297a30483ba2c8d99a45e731cc9de2f93d2944f951af3125657b13333abbd81acc1ab70a4f5f3e3443c4bb6337d967d1869343256c74abb0c1fdec9c1da848841c1ccd1bc99056120cac8baccd80abeb2fc4f1d3d39ebc5a404999e0b36e956933703355e74fa382286c7b6ecc5f4abf664b78b601cab5b0a9a954c80fd2b02f63540bd76bb4dad1dbe509a16d5a61ec12b9d1a2c10c1f0d7439ffea2ae19591f99010df60e15f2aa338183a9119ba7e76bb6b5250e83ed53814d3d553a8bb88ed35b64a3984068c07491900ddd8ff3c79274943bce3dedcd3e569f01b570a375cd47aed79815fc5a1604bead7a058620e43f97f1f20434d2de1aa3bc01c1bdb0f6daef9587885c31a1b8c9cac381ee60593ba6bf9dbe34471d911103cf4663b3b088033d5edc16f03b4b7f4a7c7892ca578a6b83414808292e2d8fa8529dacb9f3b03ec5845e2d5950af28579a69bdec79c42b8d7107ecdde3e2c556c7f34daf9a8e7f97a2b2f7bc57ffe7e1be3ea36630c956c89e3b9f994af532498e9fa1b68598a5f39e8004263478a6e5e6e079b67084ff6c915a4d7ec9ba07a58c16f41a0f5a4b4d5fb7eacdb0f89967dba4fcafb24217407e65e185eb2efb4c244b2c29d7ae7ef5a435c33e08a5c78d50462dd5f856c6a2207e2881caf33d2e3ae115892e16fe1b1cbcd5562379a091e74da98dbb29783603a38674eade34585f3121c133601886c1affb3f227e6a97804e4a5f40405cf2715e7ef169df874881c4cede85556715891488b2145ac8da862c543b7b11ffd131bd35d824a439a94c9d3e9787421857430bc431540891030fdb82721ccab37bf4aab0e5032f7b479c4d5b55907d48e6b9ffa0913b57fe8f34f7862043ea24998bb5094f6e8a33929f3fea6412a06d4bbb827fdce40029afe00cb70beab7ef6d3d598c2304fd3a816a6f223b8341409972f37b17478386dfb04bc9f0", 0x359, 0x0, 0x0, 0x0) 03:42:30 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), 0x0) 03:42:30 executing program 2: mmap(&(0x7f0000ffe000/0x2000)=nil, 0x2000, 0x0, 0x1012, 0xffffffffffffffff, 0x0) 03:42:30 executing program 1: sendmsg$unix(0xffffffffffffffff, &(0x7f0000001700)={&(0x7f0000000040)=ANY=[], 0x1c, 0x0}, 0x0) r0 = socket(0x2, 0x3, 0x0) connect$unix(r0, &(0x7f0000000040)=ANY=[@ANYBLOB="8002"], 0x10) sendmmsg(r0, &(0x7f00000003c0), 0xffffff99, 0x0) 03:42:31 executing program 3: r0 = socket$inet6(0xa, 0x802, 0x0) connect$inet6(r0, &(0x7f0000000040), 0x1c) sendto$inet6(r0, 0x0, 0x0, 0x8800, 0x0, 0x0) sendmmsg(r0, &(0x7f0000002cc0), 0x1a3, 0x0) 03:42:31 executing program 5: open$dir(&(0x7f0000000080)='./file0\x00', 0x200, 0x400) 03:42:31 executing program 4: r0 = socket$inet(0xa, 0x801, 0x84) connect$inet(r0, &(0x7f0000004cc0)={0x2, 0x0, @remote={0xac, 0x14, 0xffffffffffffffff}}, 0x10) listen(r0, 0x8) r1 = accept4(r0, 0x0, 0x0, 0x0) getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(r1, 0x84, 0x1b, &(0x7f00000001c0), 0x0) 03:42:31 executing program 2: r0 = socket$inet6(0x18, 0x3, 0x0) recvmmsg(r0, &(0x7f0000001b00), 0x10, 0x1, 0x0) 03:42:31 executing program 5: r0 = socket(0x18, 0x400000002, 0x0) setsockopt(r0, 0x1000000029, 0x30, 0x0, 0x0) 03:42:31 executing program 4: socketpair$unix(0x1, 0x1, 0x0, &(0x7f00000000c0)={0xffffffffffffffff, 0xffffffffffffffff}) sendmsg$unix(r0, &(0x7f0000001600)={0x0, 0x0, 0x0, 0x0, &(0x7f0000000200)=ANY=[@ANYBLOB="10000000ffff000001"], 0x10}, 0x0) recvmsg(r1, &(0x7f00000014c0)={0x0, 0x0, 0x0}, 0x0) shutdown(0xffffffffffffffff, 0x0) 03:42:31 executing program 3: r0 = socket$inet6(0xa, 0x802, 0x0) connect$inet6(r0, &(0x7f0000000040), 0x1c) sendto$inet6(r0, 0x0, 0x0, 0x8800, 0x0, 0x0) sendmmsg(r0, &(0x7f0000002cc0), 0x1a3, 0x0) 03:42:32 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, 0x0, 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:32 executing program 5: syz_usb_connect$hid(0x0, 0x3f, &(0x7f0000000000)={{0x12, 0x1, 0x0, 0x0, 0x0, 0x0, 0x40, 0x1b96, 0xb, 0x40, 0x1, 0x2, 0x3, 0x1, [{{0x9, 0x2, 0x2d, 0x1, 0x1, 0x0, 0x0, 0x0, [{{0x9, 0x4, 0x0, 0x0, 0x0, 0x3, 0x1, 0x0, 0x0, {0x9}, {{}, [{{0x9, 0x5, 0x2, 0x3, 0x0, 0x2}}]}}}]}}]}}, 0x0) syz_usb_connect$cdc_ecm(0x0, 0x4d, &(0x7f0000000680)={{0x12, 0x1, 0x0, 0x2, 0x0, 0x0, 0x0, 0x525, 0xa4a1, 0x40, 0x1, 0x2, 0x3, 0x1, [{{0x9, 0x2, 0x3b, 0x1, 0x1, 0x0, 0x10, 0x0, [{{0x9, 0x4, 0x0, 0x0, 0x0, 0x2, 0x6, 0x0, 0x0, {{0x5}, {0x5}, {0xd}}, {[], {}, {{0x9, 0x5, 0x3, 0x2, 0x0, 0x0, 0x1f}}}}}]}}]}}, 0x0) syz_usb_connect$printer(0x2, 0x2d, &(0x7f0000000c40)={{0x12, 0x1, 0x0, 0x0, 0x0, 0x0, 0xff, 0x525, 0xa4a8, 0x40, 0x1, 0x2, 0x3, 0x1, [{{0x9, 0x2, 0x1b, 0x1, 0x1, 0x0, 0x0, 0x0, [{{0x9, 0x4, 0x0, 0x0, 0x0, 0x7, 0x1, 0x0, 0x0, "", {{{0x9, 0x5, 0x1, 0x2, 0x20}}}}}]}}]}}, 0x0) 03:42:32 executing program 2: r0 = socket$inet(0x2, 0x2, 0x0) connect$inet(r0, &(0x7f0000000000), 0x10) 03:42:32 executing program 1: socketpair$unix(0x1, 0x1, 0x0, &(0x7f00000000c0)={0xffffffffffffffff, 0xffffffffffffffff}) sendmsg$unix(r0, &(0x7f0000001600)={0x0, 0x0, 0x0, 0x0, &(0x7f0000000200)=ANY=[@ANYBLOB="10000000ffff000001"], 0x10}, 0x0) recvmsg(r1, &(0x7f00000014c0)={0x0, 0x0, 0x0}, 0x0) shutdown(r1, 0x0) [ 860.542574][ T3563] usb 6-1: new high-speed USB device number 8 using dummy_hcd 03:42:32 executing program 2: r0 = socket$inet(0x2, 0x2, 0x0) connect$inet(r0, &(0x7f0000000000), 0x10) 03:42:32 executing program 3: r0 = socket$inet6(0xa, 0x802, 0x0) connect$inet6(r0, &(0x7f0000000040), 0x1c) sendto$inet6(r0, 0x0, 0x0, 0x8800, 0x0, 0x0) sendmmsg(r0, &(0x7f0000002cc0), 0x1a3, 0x0) 03:42:32 executing program 1: r0 = socket(0x18, 0x400000002, 0x0) setsockopt(r0, 0x1000000029, 0x30, &(0x7f0000000000)="eb", 0x1) 03:42:33 executing program 4: r0 = msgget$private(0x0, 0x0) msgsnd(r0, &(0x7f00000000c0)=ANY=[@ANYRES16], 0x0, 0x0) [ 860.907250][ T3563] usb 6-1: config 1 interface 0 altsetting 0 has 2 endpoint descriptors, different from the interface descriptor's value: 0 03:42:33 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, 0x0, 0x40, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) [ 861.073707][ T3563] usb 6-1: New USB device found, idVendor=1b96, idProduct=000b, bcdDevice= 0.40 [ 861.083137][ T3563] usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 861.091351][ T3563] usb 6-1: Product: syz [ 861.095866][ T3563] usb 6-1: Manufacturer: syz [ 861.100657][ T3563] usb 6-1: SerialNumber: syz 03:42:33 executing program 2: r0 = socket$inet(0x2, 0x2, 0x0) connect$inet(r0, &(0x7f0000000000), 0x10) 03:42:33 executing program 1: syz_usb_connect$cdc_ncm(0x0, 0x70, &(0x7f00000002c0)=ANY=[@ANYBLOB="1201"], 0x0) 03:42:33 executing program 3: r0 = socket$inet6(0xa, 0x802, 0x0) connect$inet6(r0, &(0x7f0000000040), 0x1c) sendto$inet6(r0, 0x0, 0x0, 0x8800, 0x0, 0x0) sendmmsg(r0, &(0x7f0000002cc0), 0x1a3, 0x0) [ 861.360402][ T3563] usbhid 6-1:1.0: couldn't find an input interrupt endpoint 03:42:33 executing program 4: r0 = open$dir(&(0x7f0000000080)='./file0\x00', 0x200, 0x0) utimensat(r0, 0x0, 0x0, 0x0) [ 861.561011][T10748] UDC core: USB Raw Gadget: couldn't find an available UDC or it's busy [ 861.669683][T10748] misc raw-gadget: fail, usb_gadget_register_driver returned -16 [ 861.708176][T10748] UDC core: USB Raw Gadget: couldn't find an available UDC or it's busy [ 861.718141][T10748] misc raw-gadget: fail, usb_gadget_register_driver returned -16 [ 861.835420][ T3563] usb 6-1: USB disconnect, device number 8 [ 862.162518][ T116] usb 2-1: new high-speed USB device number 9 using dummy_hcd [ 862.355964][ T116] usb 2-1: device descriptor read/64, error 18 03:42:34 executing program 5: semctl$IPC_SET(0x0, 0x0, 0x1, &(0x7f0000000100)={{0x0, 0x0, 0x0, 0x0, 0x0, 0x40}}) r0 = socket$inet6(0x18, 0x3, 0x0) sendto$inet6(r0, &(0x7f0000000080)="83", 0x358, 0x0, &(0x7f0000000000)={0x18}, 0x1c) 03:42:34 executing program 2: r0 = socket$inet(0x2, 0x2, 0x0) connect$inet(r0, &(0x7f0000000000), 0x10) 03:42:34 executing program 4: syz_usb_connect$hid(0x0, 0x3f, &(0x7f0000000000)={{0x12, 0x1, 0x0, 0x0, 0x0, 0x0, 0x40, 0x1b96, 0xb, 0x40, 0x1, 0x2, 0x3, 0x1, [{{0x9, 0x2, 0x2d, 0x1, 0x1, 0x0, 0x0, 0x0, [{{0x9, 0x4, 0x0, 0x0, 0x0, 0x3, 0x1, 0x0, 0x0, {0x9}, {{}, [{{0x9, 0x5, 0x2, 0x3, 0x0, 0x2}}]}}}]}}]}}, 0x0) syz_usb_connect$cdc_ecm(0x0, 0x54, &(0x7f0000000680)={{0x12, 0x1, 0x300, 0x2, 0x0, 0x0, 0x0, 0x525, 0xa4a1, 0x40, 0x1, 0x2, 0x3, 0x1, [{{0x9, 0x2, 0x42, 0x1, 0x1, 0x0, 0x10, 0x0, [{{0x9, 0x4, 0x0, 0x1, 0x0, 0x2, 0x6, 0x0, 0x0, {{0x5}, {0x5, 0x24, 0x0, 0x65f8}, {0xd}, [@dmm={0x7}]}}}]}}]}}, &(0x7f0000000940)={0x0, 0x0, 0x0, 0x0, 0x1, [{0x4, &(0x7f0000000880)=@lang_id={0x4}}]}) syz_usb_connect$printer(0x2, 0x2d, &(0x7f0000000c40)={{0x12, 0x1, 0x0, 0x0, 0x0, 0x0, 0xff, 0x525, 0xa4a8, 0x40, 0x1, 0x2, 0x3, 0x1, [{{0x9, 0x2, 0x1b, 0x1, 0x1, 0x0, 0x0, 0x0, [{{0x9, 0x4, 0x0, 0x0, 0x0, 0x7, 0x1, 0x2, 0x0, "", {{{0x9, 0x5, 0x1, 0x2, 0x0, 0x0, 0x3}}}}}]}}]}}, 0x0) 03:42:34 executing program 3: mkdir(&(0x7f0000000080)='./file0\x00', 0x0) r0 = open(&(0x7f0000000100)='./file0\x00', 0x0, 0x0) linkat(r0, 0x0, 0xffffffffffffffff, 0x0, 0x0) [ 862.643315][ T116] usb 2-1: new high-speed USB device number 10 using dummy_hcd 03:42:34 executing program 2: r0 = socket(0x18, 0x1, 0x0) setsockopt(r0, 0x29, 0x11, 0x0, 0x0) 03:42:34 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x0, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:34 executing program 3: socketpair$tipc(0x1e, 0x1, 0x0, &(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) recvmsg(r1, &(0x7f00000008c0)={0x0, 0x0, &(0x7f0000000780)=[{&(0x7f0000000500)=""/111, 0x6f}], 0x1, &(0x7f00000007c0)=""/249, 0xf9}, 0x0) close(r0) [ 862.856666][ T116] usb 2-1: device descriptor read/64, error 18 [ 862.890947][ T7633] usb 5-1: new high-speed USB device number 49 using dummy_hcd 03:42:35 executing program 5: openat(0xffffffffffffff9c, &(0x7f0000001540)='./file0\x00', 0x200, 0x0) r0 = openat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', 0x0, 0x0) r1 = openat(0xffffffffffffffff, &(0x7f0000001640)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x1, 0x10, r1, 0x0) preadv(r0, &(0x7f0000001580)=[{0x0}], 0x100000000000003c, 0x0, 0x0) [ 862.992610][ T116] usb usb2-port1: attempt power cycle 03:42:35 executing program 2: socketpair$unix(0x1, 0x1, 0x0, &(0x7f00000000c0)={0xffffffffffffffff, 0xffffffffffffffff}) sendmsg$unix(r0, &(0x7f0000001600)={0x0, 0x0, 0x0, 0x0, &(0x7f0000000200)=ANY=[@ANYBLOB="10000000ffff000001"], 0x10}, 0x0) recvmsg(r1, &(0x7f00000014c0)={0x0, 0x0, 0x0}, 0x0) [ 863.322343][ T7633] usb 5-1: config 1 interface 0 altsetting 0 has 2 endpoint descriptors, different from the interface descriptor's value: 0 [ 863.423279][ T116] usb 2-1: new high-speed USB device number 11 using dummy_hcd [ 863.513695][ T7633] usb 5-1: New USB device found, idVendor=1b96, idProduct=000b, bcdDevice= 0.40 [ 863.523508][ T7633] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 863.531729][ T7633] usb 5-1: Product: syz [ 863.536274][ T7633] usb 5-1: Manufacturer: syz [ 863.541074][ T7633] usb 5-1: SerialNumber: syz [ 863.547615][ T116] usb 2-1: Invalid ep0 maxpacket: 0 [ 863.702110][ T7633] usbhid 5-1:1.0: couldn't find an input interrupt endpoint [ 863.723282][ T116] usb 2-1: new high-speed USB device number 12 using dummy_hcd [ 863.812503][ T116] usb 2-1: Invalid ep0 maxpacket: 0 [ 863.818741][ T116] usb usb2-port1: unable to enumerate USB device [ 863.899203][T10783] UDC core: USB Raw Gadget: couldn't find an available UDC or it's busy [ 863.909637][T10783] misc raw-gadget: fail, usb_gadget_register_driver returned -16 [ 863.983644][T10783] UDC core: USB Raw Gadget: couldn't find an available UDC or it's busy [ 863.993608][T10783] misc raw-gadget: fail, usb_gadget_register_driver returned -16 [ 864.084312][ T116] usb 5-1: USB disconnect, device number 49 03:42:36 executing program 1: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000b80)={0x11, 0x3, &(0x7f0000000640)=@framed, &(0x7f00000006c0)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000500)={&(0x7f0000000240)='sys_exit\x00', r0}, 0x10) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x0, 0x0, 0x0, &(0x7f0000000080)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 03:42:36 executing program 3: socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000040)={0xffffffffffffffff, 0xffffffffffffffff}) sendto(r0, &(0x7f0000000100)="cb9340fb7ac97a399082ef43c73f7f274051b4247a4ffb0ba21c69836a3d7ce5e818097eac9e2c04859666848986e0ed9768553b4af1e69838e9465c30872c0b70788fc8309ab2b71c3b127cd9eed0bdf60a4fa04ff3c44d89a18f4a8102dbd6f694373ecf7fb7014cef24fc2c6ec977c97ecc3d36c9835c0dd8c76077cdf45f59c23369ed290221c605bceb8decc0ca7c292bda63746689e4c662d6033d2e2551b8aadecc1f45b3f297a30483ba2c8d99a45e731cc9de2f93d2944f951af3125657b13333abbd81acc1ab70a4f5f3e3443c4bb6337d967d1869343256c74abb0c1fdec9c1da848841c1ccd1bc99056120cac8baccd80abeb2fc4f1d3d39ebc5a404999e0b36e956933703355e74fa382286c7b6ecc5f4abf664b78b601cab5b0a9a954c80fd2b02f63540bd76bb4dad1dbe509a16d5a61ec12b9d1a2c10c1f0d7439ffea2ae19591f99010df60e15f2aa338183a9119ba7e76bb6b5250e83ed53814d3d553a8bb88ed35b64a3984068c07491900ddd8ff3c79274943bce3dedcd3e569f01b570a375cd47aed79815fc5a", 0x191, 0x41c, 0x0, 0x0) 03:42:36 executing program 5: socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000100)={0xffffffffffffffff}) connect(r0, &(0x7f0000000140), 0xc) 03:42:36 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x0, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:36 executing program 4: socketpair(0x0, 0x0, 0x5, 0x0) 03:42:36 executing program 2: r0 = openat$tun(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f0000000000)={'hsr0\x00', 0x5}) ioctl$TUNSETCARRIER(0xffffffffffffffff, 0x400454e2, &(0x7f0000000080)) openat$cgroup_ro(0xffffffffffffffff, 0x0, 0x0, 0x0) ioctl$TUNSETVNETLE(r0, 0x400454dc, &(0x7f0000000240)=0x1) 03:42:37 executing program 5: socketpair$unix(0x1, 0x2, 0x0, &(0x7f0000000900)={0xffffffffffffffff, 0xffffffffffffffff}) sendmsg$sock(r0, &(0x7f0000000100)={0x0, 0x0, 0x0}, 0x4004040) 03:42:37 executing program 3: bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x3, 0x4, &(0x7f0000000900)=ANY=[@ANYBLOB="8500000022000000350000000000ba00850000007d00000095000000000000004cf1c09faf5d6806f81f06a9cf4ef5e1a1070024581835d8050864d2a51f7c8f32cb447f454698165b61a3cf5fc6dd8442230e7953f91136aa5f7035175135230163cf09494997cbe593f90a847687a1ef1f83dd6c1023158a1086f7d0f9dce43583554bc34eaff877007c01c28fcda2d839e797acd998ab696922c9e34f0a9c13ecee6156c599c7b297de0019b27de967bfb3fe241454a24080bf5e9ce021879c820f9b80fe2338a820db941148c40b313532b18ac144e64205a1014a8ad0c5d301d02c4004be5b11cc7bf16c8a1357c7e9f32c7a458f129a8d8bc9a5d905445b9add7a02477d4b056be3a93c2b02e2d9c3ef84ddd41323cbbbcdd0a88586dc2b4793ec81992ce9c95c40b0347999f95569c078ca27891fdd4f8bf75a3205e20e7f230961ef10fefa620e454652bb67ede3686c8795c4271f7c80615a3f2b4e1182c911db0200000055c274266a6c70b8d24faf36eb13977cfc5f7dda0d4a5f74241d9b2eb1ce4bb9063802ec1390abf2d4c933ba52935a3baf94c10c986148eec7532b735e60b343c380f1615a020051d946787f660ae058894c75a353c16100000000000000000067585c86f9ba8825a3606dd26208feb50da65397adb00cc13b990b2da45fd5e7bb0dc9000000000000c45e2a4537cf09"], &(0x7f0000000140)='GPL\x00', 0x0, 0x27, &(0x7f00000004c0)=""/153, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x15) 03:42:37 executing program 4: r0 = openat$tun(0xffffffffffffff9c, &(0x7f00000002c0), 0x0, 0x0) bpf$OBJ_GET_MAP(0x7, 0x0, 0x0) bpf$BPF_LINK_CREATE(0x1c, 0x0, 0x0) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f0000000200)={'rose0\x00', 0x112}) close(r0) 03:42:37 executing program 2: mkdir(&(0x7f0000000040)='./file0\x00', 0x88) 03:42:37 executing program 1: syz_open_procfs$namespace(0x0, &(0x7f0000000280)='ns/pid_for_children\x00') 03:42:37 executing program 3: bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000001180)={0x4, 0x4, &(0x7f00000000c0)=@framed={{}, [@alu]}, &(0x7f0000000080)='syzkaller\x00', 0x0, 0x9cffffff, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 03:42:37 executing program 5: r0 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000b80)={0x11, 0x3, &(0x7f0000000640)=@framed, &(0x7f00000006c0)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000500)={&(0x7f0000000240)='sys_exit\x00', r0}, 0x10) bpf$PROG_LOAD(0x5, &(0x7f00000003c0)={0x0, 0x2, &(0x7f0000000000)=@raw=[@initr0], &(0x7f0000000080)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 03:42:38 executing program 2: socketpair(0x24, 0x0, 0x0, &(0x7f0000000340)) 03:42:38 executing program 1: socketpair$tipc(0x1e, 0x1, 0x0, &(0x7f0000000000)={0xffffffffffffffff, 0xffffffffffffffff}) recvmsg(r0, &(0x7f0000000500)={0x0, 0x0, &(0x7f0000000100)=[{&(0x7f0000000400)=""/248, 0xf8}], 0x1}, 0x1f00) sendmsg$tipc(r1, &(0x7f0000000240)={0x0, 0x0, &(0x7f0000000200)=[{&(0x7f0000000140)="a2", 0xfffffdef}], 0x1}, 0x0) 03:42:38 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x0, 0x0) ioctl$EVIOCGPROP(0xffffffffffffffff, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:38 executing program 3: openat$tun(0xffffffffffffff9c, &(0x7f0000002000), 0x4ea00, 0x0) openat$tun(0xffffffffffffff9c, &(0x7f0000002040), 0x0, 0x0) 03:42:38 executing program 4: syz_clone(0x618c8300, &(0x7f0000000000)="721453124e3ef3ba9e1508200ef865013ffa6e4f611471", 0x17, &(0x7f0000000040), &(0x7f0000000080), &(0x7f00000000c0)="7d3661b646a4fa152991381e421c11deb43fedb91a78315e3bc65cad29aab8a06e2bfa32fd25aef690ae2176aa24d9d61cd8cd259e1360d97fc900105eb2b209192330d431c56a91ab18fc69ec66b65942b50d427747e94b372a400da21c6ade2a1149553311511318def49bcf2b889620b01ec63621c687932bb6396e54b36d4d01a82f8e95556dc2383e6e737b2d362e1cd7eadce8abc889c26a951dc8c646d7814cb95cac1339b3b655def6d892ee2916d5a58068a357c8abe35ccbc6f242a4b86d788a3c75ccbb8e22372e9316f074") 03:42:38 executing program 5: bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f00000002c0)={0x11, 0x1, &(0x7f0000000080)=@raw=[@alu={0x0, 0x0, 0x3}], &(0x7f00000000c0)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 03:42:38 executing program 2: r0 = openat$tun(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f0000000040)={'veth0_macvtap\x00', 0x8000}) 03:42:38 executing program 3: bpf$BPF_BTF_LOAD(0x12, 0x0, 0x0) bpf$BPF_BTF_GET_FD_BY_ID(0x13, 0x0, 0x0) 03:42:39 executing program 5: syz_clone(0x618c8300, &(0x7f0000000000)="721453124e3ef3ba9e1508200ef865013ffa6e4f611471", 0x17, &(0x7f0000000040), &(0x7f0000000080), &(0x7f00000000c0)="7d3661b646a4fa152991381e421c11deb43fedb91a78315e3bc65cad29aab8a06e2bfa32fd25aef690ae2176aa24d9d61cd8cd259e1360d97fc900105eb2b209192330d431c56a91ab18fc69ec66b65942b50d427747e94b372a400da21c6ade2a1149553311511318def4") 03:42:39 executing program 2: bpf$BPF_BTF_LOAD(0x12, &(0x7f00000001c0)={&(0x7f0000000000)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0xc, 0xc, 0x2, [@ptr]}}, &(0x7f00000000c0)=""/236, 0x1000000, 0xec, 0x1}, 0x20) 03:42:39 executing program 3: bpf$BPF_TASK_FD_QUERY(0x14, &(0x7f0000000080)={0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0}, 0x30) syz_clone(0x0, 0x0, 0x0, 0x0, 0x0, 0x0) ioctl$TUNGETIFF(0xffffffffffffffff, 0x800454d2, &(0x7f00000000c0)={'veth0_virt_wifi\x00'}) syz_clone(0x480f400, 0x0, 0x0, 0x0, 0x0, 0x0) 03:42:39 executing program 1: r0 = openat$tun(0xffffffffffffff9c, &(0x7f0000000100), 0x0, 0x0) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f0000000080)={'dvmrp1\x00', 0x2}) 03:42:40 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x0, 0x0) ioctl$EVIOCGPROP(0xffffffffffffffff, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:40 executing program 4: bpf$BPF_BTF_LOAD(0x12, &(0x7f0000000040)={&(0x7f0000000000)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0xc, 0xc, 0x4, [@func={0x2}]}, {0x0, [0x0, 0x61]}}, &(0x7f0000000100)=""/176, 0x28, 0xb0, 0x1}, 0x20) 03:42:40 executing program 3: socketpair$unix(0x1, 0x5, 0x0, &(0x7f0000000000)={0xffffffffffffffff}) sendmsg(r0, &(0x7f0000001b80)={0x0, 0x0, 0x0, 0x0, &(0x7f0000000680)=[{0x10}, {0x18, 0x1, 0x1, "9d"}], 0x28}, 0x0) 03:42:40 executing program 1: bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000240)={0x0, 0x2, &(0x7f0000000100)=@raw=[@map_val], &(0x7f0000000180)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) 03:42:40 executing program 5: syz_clone(0x689c0100, 0x0, 0xffffffffffffff55, 0x0, 0x0, 0x0) 03:42:40 executing program 3: bpf$BPF_MAP_LOOKUP_AND_DELETE_BATCH(0x19, &(0x7f0000001580)={0x0, 0x0, 0x0, 0x0}, 0x38) 03:42:40 executing program 4: r0 = openat$tun(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0) ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f0000000040)={'nr0\x00', 0x1}) 03:42:41 executing program 1: syz_clone(0x1080, 0x0, 0x0, &(0x7f00000001c0), 0x0, 0x0) 03:42:41 executing program 3: getpid() syz_clone(0x20000000, 0x0, 0x0, 0x0, 0x0, 0x0) syz_clone(0x0, 0x0, 0x0, 0x0, 0x0, 0x0) write$cgroup_pid(0xffffffffffffffff, 0x0, 0x0) 03:42:42 executing program 2: socketpair$tipc(0x1e, 0x2, 0x0, &(0x7f0000001340)={0xffffffffffffffff}) sendmsg$tipc(r0, &(0x7f00000028c0)={&(0x7f0000001380)=@nameseq={0x1e, 0x1, 0x0, {0x1, 0x0, 0x1}}, 0x10, &(0x7f0000001840)=[{&(0x7f00000013c0)='x', 0x1}, {&(0x7f0000001440)="af", 0x1}, {0x0}], 0x3, &(0x7f00000018c0)="8a4157ac554ec424c7dfd2dc45040162564d9efc0d41d7b2b278ea63a5e0d9c609bd83bed9", 0x25}, 0x0) 03:42:42 executing program 5: bpf$BPF_LINK_CREATE(0x1c, &(0x7f0000000080)={0xffffffffffffffff, 0xffffffffffffffff, 0x11}, 0x10) syz_clone(0x141009000, &(0x7f0000000440)="0e5e4a2953626d287f2598b548cd882ba50f2a8a776db1bd767b9cb520e0642211a6a3d21c369c82a88fe30ed8e7f6e1c4b7de35aef8148eaa02f921081bf49df305f19c9f4c4d30b91ee260dab58f31949092561130abb77acb563b3ba304ee9f63e1d04a14321b41e73638547381483d4581e9301dc891d7d83d075ceb79e19c075ddd1eaa8f1ad067d050b59fad8889f3037b8f7581bcd5725b27a2cf6841c5b2e6aec1916e193e75b66ceea80b5e8680009bfd767dca4bb684e138d90928f166cec3d862a487ab9d677230df78f115768b46d80bfbba72a67a83091fd51c8a902e6a26cb6649728fe40bb61ebe3c0324cf0dad792d60c492acb32fc4c8e0e88af7009f12b47d7d8e3efe5461331d0d3e64adae82350b29575229b7848492ceb2b1c0b2cd4387ab", 0x129, &(0x7f0000000100), &(0x7f0000000000), &(0x7f0000000180)="fb10a1bf80dc0b766d02beaaf150dd722375110613fe82b4c8afd6a3115da323e13513b70bc10df98d67c0db8a6c408c43f5e79c85488cf608ea99387185e800b9cae6acb0f38da3a95d7e464090e899b7f38761ca5f9cfa196f39e293fda76d0e84f6d854ce1d1b39e345bea8c77f5648cf67589111c30c7f5f6f9a0c8cf1abaa4b074e71bb04dc9587ac7a47752b8525f8afb9aab4612def34ba5e24c6e8e5468081f8a1cf6d68d21bf90e74d46d6d856b705228fb4b496522e30cf5fc7c762769f0ea621d990610e742738bd53ecc961a5978d6e7c9ad19d39bc1bef43f8f0ee0f222ebcca3a6b4e84ebbb3a27a") bpf$ITER_CREATE(0x21, &(0x7f0000000040), 0x8) 03:42:42 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x0, 0x0) ioctl$EVIOCGPROP(0xffffffffffffffff, 0x40047438, &(0x7f0000000180)=""/220) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:42 executing program 4: bpf$MAP_CREATE(0x0, &(0x7f0000000140)=@base={0x9, 0xe02, 0x1d, 0x2, 0x0, 0xffffffffffffffff, 0x0, '\x00', 0x0, 0xffffffffffffffff, 0x0, 0x5}, 0x48) bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, 0x0, 0x0) 03:42:42 executing program 1: syz_clone(0x0, &(0x7f00000060c0), 0x0, 0x0, 0x0, &(0x7f0000006180)='\t') 03:42:42 executing program 3: socketpair$tipc(0x1e, 0x5, 0x0, &(0x7f0000000040)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$SIOCSIFHWADDR(r0, 0x8912, &(0x7f0000000000)={'veth1_to_hsr\x00', @random="7ceb2964ef8f"}) 03:42:42 executing program 4: bpf$MAP_CREATE(0x0, &(0x7f0000000140)=@base={0x1, 0x101, 0x200, 0xa05}, 0x48) 03:42:42 executing program 1: bpf$PROG_LOAD(0x5, 0x0, 0x0) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, 0x0, 0x0) socketpair(0x1e, 0x80005, 0x0, &(0x7f0000000340)={0x0, 0x0}) setsockopt$sock_attach_bpf(r0, 0x10f, 0x87, 0x0, 0x0) 03:42:43 executing program 3: r0 = syz_clone(0x40002100, 0x0, 0x0, 0x0, 0x0, 0x0) bpf$BPF_TASK_FD_QUERY(0x14, &(0x7f0000000100)={r0, 0xffffffffffffffff, 0x0, 0x0, 0x0}, 0x30) 03:42:43 executing program 2: r0 = openat$tcp_congestion(0xffffffffffffff9c, &(0x7f0000006100), 0x1, 0x0) fcntl$getownex(r0, 0x40b, &(0x7f0000006140)) 03:42:43 executing program 4: symlinkat(&(0x7f0000000180)='./file0\x00', 0xffffffffffffffff, &(0x7f00000001c0)='./file1\x00') 03:42:43 executing program 1: openat$procfs(0xffffffffffffff9c, &(0x7f0000001080)='/proc/diskstats\x00', 0x0, 0x0) 03:42:43 executing program 2: chroot(&(0x7f0000000240)='./file0\x00') 03:42:47 executing program 5: renameat2(0xffffffffffffff9c, &(0x7f0000000040)='./file0\x00', 0xffffffffffffffff, 0x0, 0x0) 03:42:47 executing program 1: bpf$BPF_BTF_LOAD(0x12, &(0x7f00000001c0)={&(0x7f0000000080)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0x28, 0x28, 0x2, [@func_proto={0x0, 0x1, 0x0, 0xd, 0x0, [{0xc, 0x1}]}, @enum={0x0, 0x1, 0x0, 0x6, 0x4, [{0x6}]}]}}, &(0x7f0000000100)=""/146, 0x42, 0x92, 0x1}, 0x20) 03:42:47 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x0, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, 0x0) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:47 executing program 4: r0 = openat$procfs(0xffffffffffffff9c, &(0x7f0000000000)='/proc/tty/drivers\x00', 0x0, 0x0) read$FUSE(r0, 0x0, 0x0) 03:42:47 executing program 2: syz_clone(0xa80a0000, 0x0, 0x0, 0x0, 0x0, 0x0) 03:42:48 executing program 3: r0 = openat$tcp_congestion(0xffffffffffffff9c, &(0x7f0000006100), 0x1, 0x0) fcntl$getownex(r0, 0x5, &(0x7f0000006140)) 03:42:48 executing program 1: r0 = openat$6lowpan_enable(0xffffffffffffff9c, &(0x7f0000000000), 0x2, 0x0) ioctl$BTRFS_IOC_TREE_SEARCH_V2(r0, 0xc0709411, 0x0) r1 = creat(&(0x7f0000000100)='./file0\x00', 0x0) write$UHID_INPUT(r1, &(0x7f0000000140)={0x8, {"eedd6829fe589593f1e9ba682d8b6692b663fc48698759efe787998745cb851603e60ad88676d9a1e450f83466a8e48a42fe67a27d3929297fc83dc0a97c5e8edfff4960562332deee5054847d44bbc307eed276a975df6a4bd7c8377a9e77037ecfa2ff919a215303bfa347618ab2b1675900e657f4ec4e6114d1868d35eb81d71809db123e658e1e314eb28c86cb1d0ba94eaa1a40a1a236892a370860d62e7c4010c86874c3592649022fb15836829f1ae91bd5345ccdf7eb9a896beef8d21ba16dbd53b60966c7992f4d06bad055dd898d9dbd5cc46f96b5dea224d4f9f7897128240e0d7f2498e697bfb8fa8cd4bd2a2ad210e2f3f7e37f26fe5c7d06630f7deee6facfd9bb020177c92ac1606dd114a57879348a09a5e75982f6cbea854b2eaae09767c23155126b98927dbb96262072cd846830b439d9eb7975126ec4b67aa06510c0e88fd2452d23ffa5db151d275bf6fd82c3319626252a164e39b01a369062a3cdd5a6a78f5703eb0a4e375220707237474503562ea412ee51404088d306eb63cc0e165d3a55fa6478e0e85351de5865b597dc8d238586b5132ae456683a06c3e9aaa8ae76a46e52583d1717beff571f352b31cbd7a74fa3a780c3e0eae2fd89f8c58a11544ecab8b82afadbce4fc0de6e08a180f98213fcb668b55bed5df9075e82171b0bf576044f312ea9be9337ab3c8d01af6109fa61da49ebd4ee5cb54c0adc72948c1a6fd8a1f69e3dec2c624ba7d71c591e75f7e1473ff75c18e1f072d0c41518bcf306ac9a632a9a3d5354d0f76bd53cc82398989e6c80c077543e5b0bbeece83680ae795d6127e3944655eedec05d1e48b0cbf2d4cdc9f38650594e9316b41a508e53b57de1f013167ef9eafcbcbc2e41169cce7021511d5cf8f7e810e92a534f620bbad2db833fef7684258df58ddf9afaff77c306c0e89cb1347c9793852ce1a803cb70d632d228dee47ba253f67f76ae1f0dca5cbce7b9bd91f240882ef16e1e08da5658e81de0d03af27547279fe3dbdbffa43a0113e4a962ff43fd26d2ceab0f9ac7d3745fa997773aa900b9a14643fdd6db7dae6fb986fbab6f96b44bb191bb52975de806bd0a31e9a8d7d45e2e15855ed173113fabaa8019550e9eb6896b7bb1b19d1d80e9b59f4d36405bcaf75f17daa692ec9bc2626161501b04bbd487dc9224722aabeb4964204f03a16c0e35dd2c80c070a4d27b4024c79ac35e9611da8d53429ede98feca8ed89cbc9b74d3851ea0022c1fbdf61560ac2e12cf99d9a81a8a07477290297c6019c522033fc9d81e289792fedf5586440d1dc8d20dbdfaa552d924e84392afb73fc829ac520cbf520520f168638b82b25049fb86d77a992a5b01aedc572cf5d93843df5d95800c591b97e0bb23cc3407008ca461f4dd4053e08c8d53f13d0f1796208a4a58556122c5ab2add9aaf5a61e551ae2f45b4955514f3956c6e11a631d6a0618bf2013462d35a3dd2e9bb932aaf33e929adf8ce3e88cb4ee08f6c88ef21f68f98399c68311a66f80adde3bdfecf4e5c67c06d63660bd53baa2ff90d9eef51cb66c5cee8b7dc10461808a0966ffdc2972d867e0d7e221efe5dd135c7e8fce4f3e1d38df221cc4a9eb6c089719b53eeb5788e7a801f81ca9c6a7212c70ccc826bdbf3327146860bc7bfc6cf85871e05ad5984ed43367f507b2645354365056a3b1083d8afce721bccaa399de143cef4e37a3aa5c13c33f63407e75c767f6f0d773d9c7349094bac1f0bd44e1405c262972fc0a03bdf359fd6d032a8f1c1fc8e6b3e5bf454035aa175290426b9a7aa1c4c6bf35b21d1f9f77e53bb7e2bfcb5dcd125dd65c160b1d0da4f290003e6b90491cfaafbdc8abbbb771ea323ad0971d6d2cd0488f872788ade328af16bccec48c85d4348362f058ec6a1a1551e66fe88efa2aabd443fe4b944f4312aa47d34a49d7df781218014c5170423398a3e47d120c5430bdcdff2345eaa07524f1cf69b9a7c4d4e3ea3beeacb886c5fd6a8dbafb9acd7a65527b16e655eccd4731728d13d3f62d0c596b9b0b7b3082befd48abf71bc8e621ac3f7f0f54da2855a0bffc9c9d1215d66021110fa65a9032bbadf8a8f584ec0c4613e6015f2fefcbd22ad82dc1116458ed310931faf3451af2dcbe565d6f998be6477c79db625b8ecffdec56178fc5599a6dd7e89b8bcb4def970d3c89f77b2ad26f2eb5fe1de3e307b45b062a89f768f1c6260ac327b1ed93b2a99612650b655f7219b779bead72bae951537c7aa44dcd8ff05ddd06f990802ec769320b3a46bfcdb2f6b6051fcb603b8adb83557401358327a26b205d75c7a1d962f8f7f2ce4f4da519800bfb664397230facdbd124965ab4115ed16904170128533d319b580580ab6f4a96c2a5ea5f73716791a3b0d60fced199457da726269f437030e4b87a2a7ffc9bf539e9aed9621edf73a9ce13ce2f64dc783696e56eff3ab9c5e147f324db0c7baee1b9f7fa895031ed3cee0462cdaca8804c5098aa4195dd044888c14ded852e57ebad9cd32793eeac43ccf3eb4f2eee2eb691ef26a1ad6e451ab240bc2a929c2559ef7aced544e024539eee11d27f3463e54bea089bdedff1ce980dac9816b81818f249b9ec1c821c78b968b96f86ba943dc99273d015493bbff483779742fe2f72941b21e39e2867cd47665f35a8227df7cf86be089d2969a18a1c5290dc950b309be167fae65d98b5bb69fb0526f3b246dbfd51045fdff56b684c2f08a749fde825c2db9dbe3761c50e585e7d15896fe8a905c2ee6dac0375e7af21a40e14abffc57a70606712f852fcc9b67be04edf9dedde1beb7e73003177bd37140a05519d28665f18a70f8eb9db83d1d1938331ac5c37a2e6141dac428f692b49139975c77dd325be258c0a0091f45c5958b5b116e8e648da435cc4cdeffc62ea940906846751dbb33ebf742b7ae351cbd0ed3c68158d7377dac9cc2099b2d413319f143fb776c2266cf0444aabc916de931a0d330bdf0800398c1ba86ef0d5234ae916230db78ed9e7a50e955a525b6032cec96d523b186e6d85a382afb6950533b61660ff83e1c4232720d29350326d63f456f8c45e9afe1d5b690e153d83b28ed5a134f1c55eb480da843338e83c8cd5ae439e78449a34cfb971b874cc1b55231a992b48e490ae71c31014ab7ad6c40f3e7221b77743d3696f05b6924a7edffbfc3a35d184f12b885a5424d7d2615862eb6e55a4398eb255d8aae6bf6c3f411c3a45d786bbab244db5b16d289f27fcd269172cfda462692e5660b27abc7458f55dff9ab5b25867a9c70682e1be2bc7c71c3fad79c641166cf4a0cc1eafce5e377fdee6500006c3a9b7f6ba34fc7070cbb1db74d851b857f36138dd0bf9b6abfceaf5aacfdef69bfee5cfe8ac4a4ff41179afb80224692c383ccfc0e6068cedfc5828a8d821105d5e91d93260b1990439979b624b081fc09414e5b8d04ff849158c0d59327e3ab78039c42276cead1a6d13136ac7759573fdbc8a78b6b08f8f8b0510e7a99a28286d2786c91ed401b387911268b206ed3dd7db64aa210e0ba3690a6f1e132f723a310214b1209d5f95d3ae4316333289410b7dc5bc7106db189260c384288fc74cf9b7ada94f1dd944da8c12feed599a18d0512ba90c4a3336018e68ec976e04c97c16a96d8c31385497c4ebed78d19dc6daaa088e4028c225dd18a95803c8eee815fbbe7c4ff07151e1792c2b1e02f62ae1460a86135045941a31795957fe0fddd3fd61dac158531f61ae01ee9108a949e8b3b3afe50f34e3fd27fe0709edd797ebbc683aa447c25ddb28b04e264b98fb271ac272e534d4caa35dd752d90d2e8cb0e86f9181f71e8b5322bf19284a8e7433abd233234bf1e7f383461122464f8d18fc51e4db1210c25e44627312b20895ae00aa268fa3d935799df211fca3cb105508ae080a536b6fa7bff3237cae1d8f85aa1039eea44fde7b74d344db81e70a1b8fb0fea4bd83b0b6e5ff4bd8b2c486f66b6022755a62fc6f63a76bd38e080bdbe075d713e30e426483a02053eb417e2871cd4bb7fb112450d20abd6279fd26112eded050b17135013b7e4d81927b34c0b0e26dd87f419d8c3740b2d6c92743d0a2b323154b4d280d216e66fdba673e3444bfec9735b1486d6148b790e9605300ff46956e00d70bf03cc577dd4b04449c8c7876ea72a609ddaa1f005e3d0f32a31dd4f76f55b5907c7ec2afb4915511edf9b56b8b48931b7658dd7ef82ed67d6a03847e8d63400351a33b58458b6287b9d8bd37eb68001d1a76fd4a94331f573787331ae818a812dd14f04d1a1c646f254ac17e57f2ac80eba51935a1a765adb959cc86f88bbebcf18eef9aba70f5d4c6a60877bf243d0eb5d7cd98e600db21ae8d248ef6771dea9d71dc6972b0bbdfd7408a96d52f86675cd3a1b34fc62572704d32fdd90780e4c293e83defebcaf8a3d6db5fd72bca1395d4cfa6dd58df64fc7e6a217ba1c41c19af263e0c60d1f794fc4bbf6d48715ea6661df5d50283e354edb23c2dcf9a491d494eb1893ea03b0d097d96be3026a4149994d930cc332a304b08b8776bd48772f9c52d034457f088bda3e847b4f9dfd1f5d81aadb47f291f5fc486c3de57f4c978377e779168cf311db3698dc2574d3b5faa35361d234e341213618fbdb5db45dac523862d2e367209fa284fbce34b60a467d94a3899254784dc4365668dffa39ace3170302b99499b9cffc2fa73b23037a011e109fe1ed1288ad389cfe68b53184ae05aeea6892258a3b422cfac87889f83d90d3dc100d8755884fa309f2e275ff71e616d55bb1c8077219218e5fc59a5d8c3bfc6f5e68864d5700d6aec80f98510985991dfd5d06c90df8beeae238fc11af9bc047cbde80ac36fa27b9ad5d2469661e11680bc6512296a273ee3fb1b2806a13b7664c169dbe9de483f6537ef92e7266bbc0103eb12b8d137b90960cec3bc9be63a8838933bd0b92384dcf701306cd5d514f2a37dcf4c6bbc7526c556023fd857e7f479be77b3117a64ce4779f0c787804a51bfdabc990dd425b7937554db1350956fd15456f1698e055d5fca23541c6a9f5a871f0cf0679c087204588119b65056ad95acde0a1a53130dd5556b9fe5ad5381a7e79e60764b89ed01024062df136a45de1065638bccdad2899c78dc9df5619cf64b99f3a08796c18ad33095a8c5c70b0f04e9077fad50c5d78b49409334b5abcc8c80dc84a43a799258b72df6a934b38e5304eb875699c93ba56c2a8dba67e453fe72a1a88f38e2f7a97409d63816990109981ff271b813b69f0355f69cf67f18a8452bc10a12430b1cbf49c47f4b110d7245442482fbd5130fe4f1c90cc8322d34defb4e01a4e3735d1f3631e858f84781200b6a2b56ce441ea4c3c9170822f1832c0e71419118e2e10eca0853b364920ad3750069a8ad2a9d4a71ee67b885e89ef83f491e77d52f55a24e01d0e9c879e6d383b435f3fd3b8c9fff8157c915eeb3503797dcba5039250f90c602c091c5ca0b0fe033f16522dbc773e90c4190c7d81a8db348a026332e045216d69e86e48b27ed691715966525917215e8e160449a91d8da7a2113061f2b5b219d22c48ce5176466549ac5ccba939778e54fcde5e706b91e47032141db293527bb7b78bcd946f79be91e570a47a0926b438dc1b58180b9b21b57a47d6c77c715cd92dcf78d7dc5393be6933c803d57a3565f10f16a0324c013311f54e42aeebddd89761a37f83e9db99c7ab5c9f381275869155d69ba9a32991f41d96c1", 0x1000}}, 0x1006) 03:42:48 executing program 4: creat(&(0x7f0000000040)='./file0\x00', 0x0) mount$binder(0x0, &(0x7f0000000080)='./file0\x00', &(0x7f00000000c0), 0x0, 0x0) 03:42:48 executing program 5: r0 = openat$damon_mk_contexts(0xffffffffffffff9c, &(0x7f0000000040), 0x28901, 0x0) pwrite64(r0, 0x0, 0x0, 0x6e5) 03:42:48 executing program 2: bpf$PROG_LOAD_XDP(0x5, &(0x7f0000000680)={0x6, 0x3, &(0x7f0000000580)=@framed, &(0x7f00000005c0)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x25, 0xffffffffffffffff, 0x8, &(0x7f0000000600), 0x8, 0x10, 0x0}, 0x80) 03:42:48 executing program 3: r0 = creat(&(0x7f0000000100)='./file0\x00', 0x0) mount$fuse(0x0, &(0x7f00000000c0)='./file0\x00', &(0x7f0000001180), 0x0, &(0x7f00000011c0)={{'fd', 0x3d, r0}, 0x2c, {}, 0x2c, {}, 0x2c, {'group_id', 0x3d, 0xee00}}) 03:42:48 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x0, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, 0x0) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) 03:42:48 executing program 1: r0 = 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() write$RDMA_USER_CM_CMD_QUERY_ROUTE(0xffffffffffffffff, &(0x7f0000000080)={0x5, 0x10, 0xfa00, {&(0x7f0000000980), 0xffffffffffffffff, 0x2}}, 0x18) sync() sync() sync() sync() ioctl$EXT4_IOC_MIGRATE(r0, 0x6609) sync() r1 = open(0x0, 0x0, 0x0) ioctl$AUTOFS_DEV_IOCTL_EXPIRE(r1, 0xc018937c, &(0x7f00000000c0)={{0x1, 0x1, 0x18, r0}, './file0\x00'}) syz_mount_image$btrfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x1000000, 0x4f, &(0x7f0000000200)=[{&(0x7f0000010000)="d2eacf4f98a4345f0000000000000800000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a000001000000000001000000000000005f42485266535f4d08000000000000000060510000000000001010000000000000000000000000000000000000000000000000010000000000e0000000000000060000000000000001000000000000000010000000100000001000000010000061000000050000000000000000000000000000000300000000000000450300000000000001000000000100000000000000000000010000000000007200000000000010000000100000001000000000000000000000000000000000000000000000000000000000000000007981baa6901349f18e09e692cd2866218ff932b8f4e44b03aed6d7e5736fd60a00"/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) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) openat$dlm_control(0xffffffffffffff9c, 0x0, 0x400100, 0x0) r3 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000140)='memory.events\x00', 0x7a05, 0x1700) r4 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) write$cgroup_int(r3, &(0x7f0000000200), 0xf000) sendfile(r3, r4, 0x0, 0xf03b0000) sendfile(r3, r2, 0x0, 0x8000000000004) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000140)='memory.events\x00', 0x7a05, 0x1700) 03:42:49 executing program 4: creat(&(0x7f0000000100)='./file0\x00', 0x0) open(&(0x7f0000000000)='./file0\x00', 0x0, 0x0) 03:42:49 executing program 5: r0 = openat$damon_mk_contexts(0xffffffffffffff9c, &(0x7f0000000040), 0x28901, 0x0) pwrite64(r0, 0x0, 0x0, 0x6e5) 03:42:49 executing program 2: r0 = syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x80000, 0xf, &(0x7f0000000200)=[{&(0x7f0000010000)="200000000002000019000000600100000f000000000000000000000004000000000002000020000020000000ddf4655fddf4655f0100ffff53ef010001000000ddf4655f000000000000000001000000000000000b0000000001000008000000d24200001203", 0x66, 0x400}, {&(0x7f0000010100)="0000000000000000000000006856d49a00cc4371bd6a7c893f280045010040", 0x1f, 0x4e0}, {&(0x7f0000000080)="0300000004", 0x5, 0x640}, {&(0x7f0000010400)="03000000040000000500000016000f000300040000000000000000000f00698c", 0x20, 0x800}, {&(0x7f0000010e00)="ed41000000040000ddf4655fddf4655fddf4655f00000000000004002000000000000800050000000af301000400000000000000000000000100000010", 0x3d, 0x1500}, {&(0x7f0000011000)="8081000000180000ddf4655fddf4655fddf4655f00000000000001002000000010000800000000000af302000400000000000000000000000200000030000000020000000400000032", 0x49, 0x1600}, {&(0x7f0000011100)="8081000000180000ddf4655fddf4655fddf4655f00000000000001002000000010000800000000000af302000400000000000000000000000200000040000000020000000400000042", 0x49, 0x1700}, {&(0x7f0000011700)="ed8100000a000000ddf4655fddf4655fddf4655f00000000000001", 0x1b, 0x2200}, {&(0x7f0000000140)="020000000c0001022e000000020000000c0002022e2e00000b00000014000a026c6f73742b666f756e6400000c0001001000050266696c65300000000f0000001000050166696c6531", 0x49, 0x4000}, {&(0x7f0000012700)="111fc0d901000000803a0900803a09000000000006", 0x15, 0xc000}, {&(0x7f0000012d00)="2719c0d901000000803a0900803a09000000000006", 0x15, 0x10000}, {&(0x7f0000012e00)="02", 0x1, 0x10400}, {&(0x7f0000013000)="04", 0x1, 0x10c00}, {&(0x7f0000013100)="05", 0x1, 0x11000}, {&(0x7f0000000380)="0000000000000000010000000000000000000032ed2fbf000d000000000000000000000000000040000000000000000000000001000000000000000000000000c0010000000000000000000000000000000000000000000000000000000000bc000000", 0x63, 0x113fe}], 0x0, &(0x7f0000000380)=ANY=[], 0x0) r1 = fcntl$dupfd(r0, 0x406, r0) symlinkat(&(0x7f0000000040)='./file0\x00', r1, &(0x7f00000000c0)='./file0\x00') [ 877.250006][T10935] fuse: Invalid rootmode [ 877.498343][ T24] audit: type=1804 audit(1667965369.540:10): pid=10942 uid=0 auid=4294967295 ses=4294967295 subj=unconfined op=invalid_pcr cause=open_writers comm="syz-executor.4" name="/root/syzkaller-testdir2406668101/syzkaller.RZtFpg/489/file0" dev="sda1" ino=1177 res=1 errno=0 03:42:49 executing program 3: statx(0xffffffffffffffff, 0x0, 0x300, 0x0, 0x0) [ 877.637764][T10940] loop1: detected capacity change from 0 to 32768 03:42:49 executing program 4: r0 = creat(&(0x7f0000000100)='./file0\x00', 0x0) write$UHID_INPUT(r0, &(0x7f0000000140)={0x8, {"eedd6829fe589593f1e9ba682d8b6692b663fc48698759efe787998745cb851603e60ad88676d9a1e450f83466a8e48a42fe67a27d3929297fc83dc0a97c5e8edfff4960562332deee5054847d44bbc307eed276a975df6a4bd7c8377a9e77037ecfa2ff919a215303bfa347618ab2b1675900e657f4ec4e6114d1868d35eb81d71809db123e658e1e314eb28c86cb1d0ba94eaa1a40a1a236892a370860d62e7c4010c86874c3592649022fb15836829f1ae91bd5345ccdf7eb9a896beef8d21ba16dbd53b60966c7992f4d06bad055dd898d9dbd5cc46f96b5dea224d4f9f7897128240e0d7f2498e697bfb8fa8cd4bd2a2ad210e2f3f7e37f26fe5c7d06630f7deee6facfd9bb020177c92ac1606dd114a57879348a09a5e75982f6cbea854b2eaae09767c23155126b98927dbb96262072cd846830b439d9eb7975126ec4b67aa06510c0e88fd2452d23ffa5db151d275bf6fd82c3319626252a164e39b01a369062a3cdd5a6a78f5703eb0a4e375220707237474503562ea412ee51404088d306eb63cc0e165d3a55fa6478e0e85351de5865b597dc8d238586b5132ae456683a06c3e9aaa8ae76a46e52583d1717beff571f352b31cbd7a74fa3a780c3e0eae2fd89f8c58a11544ecab8b82afadbce4fc0de6e08a180f98213fcb668b55bed5df9075e82171b0bf576044f312ea9be9337ab3c8d01af6109fa61da49ebd4ee5cb54c0adc72948c1a6fd8a1f69e3dec2c624ba7d71c591e75f7e1473ff75c18e1f072d0c41518bcf306ac9a632a9a3d5354d0f76bd53cc82398989e6c80c077543e5b0bbeece83680ae795d6127e3944655eedec05d1e48b0cbf2d4cdc9f38650594e9316b41a508e53b57de1f013167ef9eafcbcbc2e41169cce7021511d5cf8f7e810e92a534f620bbad2db833fef7684258df58ddf9afaff77c306c0e89cb1347c9793852ce1a803cb70d632d228dee47ba253f67f76ae1f0dca5cbce7b9bd91f240882ef16e1e08da5658e81de0d03af27547279fe3dbdbffa43a0113e4a962ff43fd26d2ceab0f9ac7d3745fa997773aa900b9a14643fdd6db7dae6fb986fbab6f96b44bb191bb52975de806bd0a31e9a8d7d45e2e15855ed173113fabaa8019550e9eb6896b7bb1b19d1d80e9b59f4d36405bcaf75f17daa692ec9bc2626161501b04bbd487dc9224722aabeb4964204f03a16c0e35dd2c80c070a4d27b4024c79ac35e9611da8d53429ede98feca8ed89cbc9b74d3851ea0022c1fbdf61560ac2e12cf99d9a81a8a07477290297c6019c522033fc9d81e289792fedf5586440d1dc8d20dbdfaa552d924e84392afb73fc829ac520cbf520520f168638b82b25049fb86d77a992a5b01aedc572cf5d93843df5d95800c591b97e0bb23cc3407008ca461f4dd4053e08c8d53f13d0f1796208a4a58556122c5ab2add9aaf5a61e551ae2f45b4955514f3956c6e11a631d6a0618bf2013462d35a3dd2e9bb932aaf33e929adf8ce3e88cb4ee08f6c88ef21f68f98399c68311a66f80adde3bdfecf4e5c67c06d63660bd53baa2ff90d9eef51cb66c5cee8b7dc10461808a0966ffdc2972d867e0d7e221efe5dd135c7e8fce4f3e1d38df221cc4a9eb6c089719b53eeb5788e7a801f81ca9c6a7212c70ccc826bdbf3327146860bc7bfc6cf85871e05ad5984ed43367f507b2645354365056a3b1083d8afce721bccaa399de143cef4e37a3aa5c13c33f63407e75c767f6f0d773d9c7349094bac1f0bd44e1405c262972fc0a03bdf359fd6d032a8f1c1fc8e6b3e5bf454035aa175290426b9a7aa1c4c6bf35b21d1f9f77e53bb7e2bfcb5dcd125dd65c160b1d0da4f290003e6b90491cfaafbdc8abbbb771ea323ad0971d6d2cd0488f872788ade328af16bccec48c85d4348362f058ec6a1a1551e66fe88efa2aabd443fe4b944f4312aa47d34a49d7df781218014c5170423398a3e47d120c5430bdcdff2345eaa07524f1cf69b9a7c4d4e3ea3beeacb886c5fd6a8dbafb9acd7a65527b16e655eccd4731728d13d3f62d0c596b9b0b7b3082befd48abf71bc8e621ac3f7f0f54da2855a0bffc9c9d1215d66021110fa65a9032bbadf8a8f584ec0c4613e6015f2fefcbd22ad82dc1116458ed310931faf3451af2dcbe565d6f998be6477c79db625b8ecffdec56178fc5599a6dd7e89b8bcb4def970d3c89f77b2ad26f2eb5fe1de3e307b45b062a89f768f1c6260ac327b1ed93b2a99612650b655f7219b779bead72bae951537c7aa44dcd8ff05ddd06f990802ec769320b3a46bfcdb2f6b6051fcb603b8adb83557401358327a26b205d75c7a1d962f8f7f2ce4f4da519800bfb664397230facdbd124965ab4115ed16904170128533d319b580580ab6f4a96c2a5ea5f73716791a3b0d60fced199457da726269f437030e4b87a2a7ffc9bf539e9aed9621edf73a9ce13ce2f64dc783696e56eff3ab9c5e147f324db0c7baee1b9f7fa895031ed3cee0462cdaca8804c5098aa4195dd044888c14ded852e57ebad9cd32793eeac43ccf3eb4f2eee2eb691ef26a1ad6e451ab240bc2a929c2559ef7aced544e024539eee11d27f3463e54bea089bdedff1ce980dac9816b81818f249b9ec1c821c78b968b96f86ba943dc99273d015493bbff483779742fe2f72941b21e39e2867cd47665f35a8227df7cf86be089d2969a18a1c5290dc950b309be167fae65d98b5bb69fb0526f3b246dbfd51045fdff56b684c2f08a749fde825c2db9dbe3761c50e585e7d15896fe8a905c2ee6dac0375e7af21a40e14abffc57a70606712f852fcc9b67be04edf9dedde1beb7e73003177bd37140a05519d28665f18a70f8eb9db83d1d1938331ac5c37a2e6141dac428f692b49139975c77dd325be258c0a0091f45c5958b5b116e8e648da435cc4cdeffc62ea940906846751dbb33ebf742b7ae351cbd0ed3c68158d7377dac9cc2099b2d413319f143fb776c2266cf0444aabc916de931a0d330bdf0800398c1ba86ef0d5234ae916230db78ed9e7a50e955a525b6032cec96d523b186e6d85a382afb6950533b61660ff83e1c4232720d29350326d63f456f8c45e9afe1d5b690e153d83b28ed5a134f1c55eb480da843338e83c8cd5ae439e78449a34cfb971b874cc1b55231a992b48e490ae71c31014ab7ad6c40f3e7221b77743d3696f05b6924a7edffbfc3a35d184f12b885a5424d7d2615862eb6e55a4398eb255d8aae6bf6c3f411c3a45d786bbab244db5b16d289f27fcd269172cfda462692e5660b27abc7458f55dff9ab5b25867a9c70682e1be2bc7c71c3fad79c641166cf4a0cc1eafce5e377fdee6500006c3a9b7f6ba34fc7070cbb1db74d851b857f36138dd0bf9b6abfceaf5aacfdef69bfee5cfe8ac4a4ff41179afb80224692c383ccfc0e6068cedfc5828a8d821105d5e91d93260b1990439979b624b081fc09414e5b8d04ff849158c0d59327e3ab78039c42276cead1a6d13136ac7759573fdbc8a78b6b08f8f8b0510e7a99a28286d2786c91ed401b387911268b206ed3dd7db64aa210e0ba3690a6f1e132f723a310214b1209d5f95d3ae4316333289410b7dc5bc7106db189260c384288fc74cf9b7ada94f1dd944da8c12feed599a18d0512ba90c4a3336018e68ec976e04c97c16a96d8c31385497c4ebed78d19dc6daaa088e4028c225dd18a95803c8eee815fbbe7c4ff07151e1792c2b1e02f62ae1460a86135045941a31795957fe0fddd3fd61dac158531f61ae01ee9108a949e8b3b3afe50f34e3fd27fe0709edd797ebbc683aa447c25ddb28b04e264b98fb271ac272e534d4caa35dd752d90d2e8cb0e86f9181f71e8b5322bf19284a8e7433abd233234bf1e7f383461122464f8d18fc51e4db1210c25e44627312b20895ae00aa268fa3d935799df211fca3cb105508ae080a536b6fa7bff3237cae1d8f85aa1039eea44fde7b74d344db81e70a1b8fb0fea4bd83b0b6e5ff4bd8b2c486f66b6022755a62fc6f63a76bd38e080bdbe075d713e30e426483a02053eb417e2871cd4bb7fb112450d20abd6279fd26112eded050b17135013b7e4d81927b34c0b0e26dd87f419d8c3740b2d6c92743d0a2b323154b4d280d216e66fdba673e3444bfec9735b1486d6148b790e9605300ff46956e00d70bf03cc577dd4b04449c8c7876ea72a609ddaa1f005e3d0f32a31dd4f76f55b5907c7ec2afb4915511edf9b56b8b48931b7658dd7ef82ed67d6a03847e8d63400351a33b58458b6287b9d8bd37eb68001d1a76fd4a94331f573787331ae818a812dd14f04d1a1c646f254ac17e57f2ac80eba51935a1a765adb959cc86f88bbebcf18eef9aba70f5d4c6a60877bf243d0eb5d7cd98e600db21ae8d248ef6771dea9d71dc6972b0bbdfd7408a96d52f86675cd3a1b34fc62572704d32fdd90780e4c293e83defebcaf8a3d6db5fd72bca1395d4cfa6dd58df64fc7e6a217ba1c41c19af263e0c60d1f794fc4bbf6d48715ea6661df5d50283e354edb23c2dcf9a491d494eb1893ea03b0d097d96be3026a4149994d930cc332a304b08b8776bd48772f9c52d034457f088bda3e847b4f9dfd1f5d81aadb47f291f5fc486c3de57f4c978377e779168cf311db3698dc2574d3b5faa35361d234e341213618fbdb5db45dac523862d2e367209fa284fbce34b60a467d94a3899254784dc4365668dffa39ace3170302b99499b9cffc2fa73b23037a011e109fe1ed1288ad389cfe68b53184ae05aeea6892258a3b422cfac87889f83d90d3dc100d8755884fa309f2e275ff71e616d55bb1c8077219218e5fc59a5d8c3bfc6f5e68864d5700d6aec80f98510985991dfd5d06c90df8beeae238fc11af9bc047cbde80ac36fa27b9ad5d2469661e11680bc6512296a273ee3fb1b2806a13b7664c169dbe9de483f6537ef92e7266bbc0103eb12b8d137b90960cec3bc9be63a8838933bd0b92384dcf701306cd5d514f2a37dcf4c6bbc7526c556023fd857e7f479be77b3117a64ce4779f0c787804a51bfdabc990dd425b7937554db1350956fd15456f1698e055d5fca23541c6a9f5a871f0cf0679c087204588119b65056ad95acde0a1a53130dd5556b9fe5ad5381a7e79e60764b89ed01024062df136a45de1065638bccdad2899c78dc9df5619cf64b99f3a08796c18ad33095a8c5c70b0f04e9077fad50c5d78b49409334b5abcc8c80dc84a43a799258b72df6a934b38e5304eb875699c93ba56c2a8dba67e453fe72a1a88f38e2f7a97409d63816990109981ff271b813b69f0355f69cf67f18a8452bc10a12430b1cbf49c47f4b110d7245442482fbd5130fe4f1c90cc8322d34defb4e01a4e3735d1f3631e858f84781200b6a2b56ce441ea4c3c9170822f1832c0e71419118e2e10eca0853b364920ad3750069a8ad2a9d4a71ee67b885e89ef83f491e77d52f55a24e01d0e9c879e6d383b435f3fd3b8c9fff8157c915eeb3503797dcba5039250f90c602c091c5ca0b0fe033f16522dbc773e90c4190c7d81a8db348a026332e045216d69e86e48b27ed691715966525917215e8e160449a91d8da7a2113061f2b5b219d22c48ce5176466549ac5ccba939778e54fcde5e706b91e47032141db293527bb7b78bcd946f79be91e570a47a0926b438dc1b58180b9b21b57a47d6c77c715cd92dcf78d7dc5393be6933c803d57a3565f10f16a0324c013311f54e42aeebddd89761a37f83e9db99c7ab5c9f381275869155d69ba9a32991f41d96c1", 0x1000}}, 0x1006) open(&(0x7f0000000000)='./file0\x00', 0x0, 0x0) 03:42:49 executing program 5: r0 = openat$damon_mk_contexts(0xffffffffffffff9c, &(0x7f0000000040), 0x28901, 0x0) pwrite64(r0, 0x0, 0x0, 0x6e5) [ 877.810823][T10948] loop2: detected capacity change from 0 to 1024 [ 877.858891][T10940] BTRFS info (device loop1): using xxhash64 (xxhash64-generic) checksum algorithm [ 877.869620][T10940] BTRFS info (device loop1): using free space tree 03:42:50 executing program 0: ioctl$DRM_IOCTL_MODE_GETENCODER(0xffffffffffffffff, 0xc01464a6, 0x0) unshare(0x4a040000) r0 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000080)=0x3) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x80) r1 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000100), 0x0, 0x0) ioctl$EVIOCGPROP(r1, 0x40047438, 0x0) ioctl$PPPIOCGFLAGS1(r1, 0x4020744f, &(0x7f00000003c0)) r2 = openat$ppp(0xffffffffffffff9c, &(0x7f0000000040), 0x1a01, 0x0) ioctl$EVIOCGPROP(r2, 0x40047438, &(0x7f0000000180)=""/220) r3 = dup(r2) write$P9_RMKDIR(r3, &(0x7f00000000c0)={0x14}, 0x14) [ 877.987293][T10948] EXT4-fs (loop2): mounted filesystem without journal. Quota mode: writeback. 03:42:50 executing program 3: stat(&(0x7f0000000040)='./file0/file0\x00', 0x0) 03:42:50 executing program 2: r0 = openat$procfs(0xffffffffffffff9c, &(0x7f0000001080)='/proc/diskstats\x00', 0x0, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_INFO(r0, 0x81f8943c, 0x0) [ 878.282237][ T3512] EXT4-fs (loop2): unmounting filesystem. 03:42:50 executing program 3: r0 = openat$tcp_congestion(0xffffffffffffff9c, &(0x7f0000000000), 0x1, 0x0) readv(r0, 0x0, 0x0) [ 878.336256][ T24] audit: type=1804 audit(1667965370.380:11): pid=10969 uid=0 auid=4294967295 ses=4294967295 subj=unconfined op=invalid_pcr cause=open_writers comm="syz-executor.4" name="/root/syzkaller-testdir2406668101/syzkaller.RZtFpg/490/file0" dev="sda1" ino=1166 res=1 errno=0 03:42:50 executing program 4: r0 = creat(&(0x7f0000000100)='./file0\x00', 0x0) ioctl$FS_IOC_SETFLAGS(r0, 0x40086602, &(0x7f0000003380)=0x80000200) [ 878.492399][T10940] BTRFS info (device loop1): enabling ssd optimizations 03:42:51 executing program 1: r0 = 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() write$RDMA_USER_CM_CMD_QUERY_ROUTE(0xffffffffffffffff, &(0x7f0000000080)={0x5, 0x10, 0xfa00, {&(0x7f0000000980), 0xffffffffffffffff, 0x2}}, 0x18) sync() sync() sync() sync() ioctl$EXT4_IOC_MIGRATE(r0, 0x6609) sync() r1 = open(0x0, 0x0, 0x0) ioctl$AUTOFS_DEV_IOCTL_EXPIRE(r1, 0xc018937c, &(0x7f00000000c0)={{0x1, 0x1, 0x18, r0}, './file0\x00'}) syz_mount_image$btrfs(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x1000000, 0x4f, &(0x7f0000000200)=[{&(0x7f0000010000)="d2eacf4f98a4345f0000000000000800000000000000000000000000000000008ff932b8f4e44b03aed6d7e5736fd60a000001000000000001000000000000005f42485266535f4d08000000000000000060510000000000001010000000000000000000000000000000000000000000000000010000000000e0000000000000060000000000000001000000000000000010000000100000001000000010000061000000050000000000000000000000000000000300000000000000450300000000000001000000000100000000000000000000010000000000007200000000000010000000100000001000000000000000000000000000000000000000000000000000000000000000007981baa6901349f18e09e692cd2866218ff932b8f4e44b03aed6d7e5736fd60a00"/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) r2 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) openat$dlm_control(0xffffffffffffff9c, 0x0, 0x400100, 0x0) r3 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000140)='memory.events\x00', 0x7a05, 0x1700) r4 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000040)='memory.events\x00', 0x275a, 0x0) write$cgroup_int(r3, &(0x7f0000000200), 0xf000) sendfile(r3, r4, 0x0, 0xf03b0000) sendfile(r3, r2, 0x0, 0x8000000000004) openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000140)='memory.events\x00', 0x7a05, 0x1700) 03:42:51 executing program 5: r0 = creat(&(0x7f0000000100)='./file0\x00', 0x0) mmap(&(0x7f0000ffd000/0x1000)=nil, 0x1000, 0x2000007, 0x10, r0, 0x0) 03:42:51 executing program 3: syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x80000, 0xf, &(0x7f0000000200)=[{&(0x7f0000010000)="200000000002000019000000600100000f000000000000000000000004000000000002000020000020000000ddf4655fddf4655f0100ffff53ef010001000000ddf4655f000000000000000001000000000000000b0000000001000008000000d24200001203", 0x66, 0x400}, {&(0x7f0000010100)="0000000000000000000000006856d49a00cc4371bd6a7c893f280045010040", 0x1f, 0x4e0}, {&(0x7f0000000080)="0300000004", 0x5, 0x640}, {&(0x7f0000010400)="03000000040000000500000016000f000300040000000000000000000f00698c", 0x20, 0x800}, {&(0x7f0000010e00)="ed41000000040000ddf4655fddf4655fddf4655f00000000000004002000000000000800050000000af301000400000000000000000000000100000010", 0x3d, 0x1500}, {&(0x7f0000011000)="8081000000180000ddf4655fddf4655fddf4655f00000000000001002000000010000800000000000af302000400000000000000000000000200000030000000020000000400000032", 0x49, 0x1600}, {&(0x7f0000011100)="8081000000180000ddf4655fddf4655fddf4655f00000000000001002000000010000800000000000af302000400000000000000000000000200000040000000020000000400000042", 0x49, 0x1700}, {&(0x7f0000011700)="ed8100000a000000ddf4655fddf4655fddf4655f00000000000001", 0x1b, 0x2200}, {&(0x7f0000000140)="020000000c0001022e000000020000000c0002022e2e00000b00000014000a026c6f73742b666f756e6400000c0001001000050266696c65300000000f0000001000050166696c6531", 0x49, 0x4000}, {&(0x7f0000012700)="111fc0d901000000803a0900803a09000000000006", 0x15, 0xc000}, {&(0x7f0000012d00)="2719c0d901000000803a0900803a09000000000006", 0x15, 0x10000}, {&(0x7f0000012e00)="02", 0x1, 0x10400}, {&(0x7f0000013000)="04", 0x1, 0x10c00}, {&(0x7f0000013100)="05", 0x1, 0x11000}, {&(0x7f0000000380)="0000000000000000010000000000000000000032ed2fbf000d000000000000000000000000000040000000000000000000000001000000000000000000000000c0010000000000000000000000000000000000000000000000000000000000bc000000", 0x63, 0x113fe}], 0x0, &(0x7f0000000380)=ANY=[], 0x0) mount$fuse(0x0, 0x0, 0x0, 0x0, 0x0) read$FUSE(0xffffffffffffffff, 0x0, 0x0) fchownat(0xffffffffffffff9c, &(0x7f0000000100)='./file0\x00', 0x0, 0xee01, 0x0) write$FUSE_CREATE_OPEN(0xffffffffffffffff, 0x0, 0x0) mount$bind(0x0, &(0x7f00000001c0)='./file0\x00', 0x0, 0x104021, 0x0) ioctl$FS_IOC_SET_ENCRYPTION_POLICY(0xffffffffffffffff, 0x40086604, 0x0) poll(0x0, 0x0, 0x0) [ 879.084596][ T3519] ===================================================== [ 879.092342][ T3519] BUG: KMSAN: uninit-value in generic_bin_search+0x780/0xb80 [ 879.099927][ T3519] generic_bin_search+0x780/0xb80 [ 879.105382][ T3519] btrfs_search_slot+0x3794/0x4630 [ 879.110686][ T3519] btrfs_run_dev_stats+0x3d3/0x1510 [ 879.116288][ T3519] commit_cowonly_roots+0x2ac/0x1110 [ 879.121814][ T3519] btrfs_commit_transaction+0x2235/0x5650 [ 879.127828][ T3519] btrfs_commit_super+0x138/0x180 03:42:51 executing program 2: [ 879.139254][ T3519] close_ctree+0x3d6/0xa70 [ 879.144768][ T3519] btrfs_put_super+0x38/0x50 [ 879.149639][ T3519] generic_shutdown_super+0x18c/0x570 [ 879.155527][ T3519] kill_anon_super+0x39/0x70 [ 879.160267][ T3519] btrfs_kill_super+0x39/0x60 [ 879.165210][ T3519] deactivate_locked_super+0xb1/0x120 [ 879.170759][ T3519] deactivate_super+0x13a/0x150 [ 879.175849][ T3519] cleanup_mnt+0x6b5/0x730 [ 879.180463][ T3519] __cleanup_mnt+0x1e/0x30 [ 879.185115][ T3519] task_work_run+0x229/0x2c0 [ 879.190144][ T3519] exit_to_user_mode_loop+0x2a9/0x320 [ 879.195942][ T3519] exit_to_user_mode_prepare+0x16e/0x220 [ 879.201731][ T3519] syscall_exit_to_user_mode+0x23/0x40 [ 879.207526][ T3519] __do_fast_syscall_32+0xb1/0x100 [ 879.212879][ T3519] do_fast_syscall_32+0x33/0x70 [ 879.217870][ T3519] do_SYSENTER_32+0x1b/0x20 [ 879.222610][ T3519] entry_SYSENTER_compat_after_hwframe+0x70/0x82 [ 879.229241][ T3519] [ 879.231658][ T3519] Uninit was created at: [ 879.236306][ T3519] __alloc_pages+0x9f1/0xe80 [ 879.241084][ T3519] alloc_pages+0xaae/0xd80 [ 879.245866][ T3519] folio_alloc+0x3e/0x120 [ 879.250355][ T3519] __filemap_get_folio+0xe59/0x1b00 [ 879.255908][ T3519] pagecache_get_page+0x4a/0x2f0 [ 879.261094][ T3519] alloc_extent_buffer+0x731/0x2770 [ 879.266604][ T3519] btrfs_find_create_tree_block+0x42/0x50 [ 879.272628][ T3519] btrfs_alloc_tree_block+0x36d/0x1f70 [ 879.278275][ T3519] __btrfs_cow_block+0x580/0x1cf0 [ 879.283615][ T3519] btrfs_cow_block+0x7ca/0x9d0 [ 879.288555][ T3519] btrfs_search_slot+0x17b9/0x4630 [ 879.294009][ T3519] btrfs_run_dev_stats+0x3d3/0x1510 [ 879.299387][ T3519] commit_cowonly_roots+0x2ac/0x1110 [ 879.305015][ T3519] btrfs_commit_transaction+0x2235/0x5650 [ 879.310939][ T3519] btrfs_commit_super+0x138/0x180 [ 879.316288][ T3519] close_ctree+0x3d6/0xa70 [ 879.320860][ T3519] btrfs_put_super+0x38/0x50 [ 879.325708][ T3519] generic_shutdown_super+0x18c/0x570 [ 879.331333][ T3519] kill_anon_super+0x39/0x70 [ 879.337134][ T3519] btrfs_kill_super+0x39/0x60 [ 879.342070][ T3519] deactivate_locked_super+0xb1/0x120 [ 879.347603][ T3519] deactivate_super+0x13a/0x150 [ 879.352692][ T3519] cleanup_mnt+0x6b5/0x730 [ 879.357256][ T3519] __cleanup_mnt+0x1e/0x30 [ 879.361838][ T3519] task_work_run+0x229/0x2c0 [ 879.366694][ T3519] exit_to_user_mode_loop+0x2a9/0x320 [ 879.372317][ T3519] exit_to_user_mode_prepare+0x16e/0x220 [ 879.378110][ T3519] syscall_exit_to_user_mode+0x23/0x40 [ 879.383834][ T3519] __do_fast_syscall_32+0xb1/0x100 [ 879.389097][ T3519] do_fast_syscall_32+0x33/0x70 [ 879.394213][ T3519] do_SYSENTER_32+0x1b/0x20 [ 879.398865][ T3519] entry_SYSENTER_compat_after_hwframe+0x70/0x82 [ 879.405520][ T3519] [ 879.407921][ T3519] CPU: 0 PID: 3519 Comm: syz-executor.1 Not tainted 6.1.0-rc4-syzkaller-62818-gb1376a14297d #0 [ 879.418565][ T3519] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022 [ 879.428867][ T3519] ===================================================== [ 879.436058][ T3519] Disabling lock debugging due to kernel taint [ 879.442401][ T3519] Kernel panic - not syncing: kmsan.panic set ... [ 879.448922][ T3519] CPU: 0 PID: 3519 Comm: syz-executor.1 Tainted: G B 6.1.0-rc4-syzkaller-62818-gb1376a14297d #0 [ 879.460869][ T3519] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022 [ 879.471026][ T3519] Call Trace: [ 879.474380][ T3519] [ 879.477383][ T3519] dump_stack_lvl+0x1c8/0x256 [ 879.482214][ T3519] dump_stack+0x1a/0x1d [ 879.486588][ T3519] panic+0x4d3/0xc64 [ 879.490646][ T3519] ? add_taint+0x104/0x1a0 [ 879.495278][ T3519] kmsan_report+0x2ca/0x2d0 [ 879.499960][ T3519] ? __msan_warning+0x92/0x110 [ 879.504951][ T3519] ? generic_bin_search+0x780/0xb80 [ 879.510318][ T3519] ? btrfs_search_slot+0x3794/0x4630 [ 879.515756][ T3519] ? btrfs_run_dev_stats+0x3d3/0x1510 [ 879.521294][ T3519] ? commit_cowonly_roots+0x2ac/0x1110 [ 879.526918][ T3519] ? btrfs_commit_transaction+0x2235/0x5650 [ 879.532978][ T3519] ? btrfs_commit_super+0x138/0x180 [ 879.538323][ T3519] ? close_ctree+0x3d6/0xa70 [ 879.543064][ T3519] ? btrfs_put_super+0x38/0x50 [ 879.547981][ T3519] ? generic_shutdown_super+0x18c/0x570 [ 879.553668][ T3519] ? kill_anon_super+0x39/0x70 [ 879.558559][ T3519] ? btrfs_kill_super+0x39/0x60 [ 879.563556][ T3519] ? deactivate_locked_super+0xb1/0x120 [ 879.569323][ T3519] ? deactivate_super+0x13a/0x150 [ 879.574558][ T3519] ? cleanup_mnt+0x6b5/0x730 [ 879.579281][ T3519] ? __cleanup_mnt+0x1e/0x30 [ 879.583998][ T3519] ? task_work_run+0x229/0x2c0 [ 879.588923][ T3519] ? exit_to_user_mode_loop+0x2a9/0x320 [ 879.594608][ T3519] ? exit_to_user_mode_prepare+0x16e/0x220 [ 879.600553][ T3519] ? syscall_exit_to_user_mode+0x23/0x40 [ 879.606343][ T3519] ? __do_fast_syscall_32+0xb1/0x100 [ 879.611762][ T3519] ? do_fast_syscall_32+0x33/0x70 [ 879.616914][ T3519] ? do_SYSENTER_32+0x1b/0x20 [ 879.621717][ T3519] ? entry_SYSENTER_compat_after_hwframe+0x70/0x82 [ 879.628370][ T3519] ? kmsan_get_shadow_origin_ptr+0x49/0xa0 [ 879.634350][ T3519] ? generic_bin_search+0x256/0xb80 [ 879.639712][ T3519] ? filter_irq_stacks+0x5c/0x1a0 [ 879.644910][ T3519] ? __stack_depot_save+0x21/0x4b0 [ 879.650449][ T3519] ? kmsan_internal_set_shadow_origin+0x62/0xe0 [ 879.656944][ T3519] ? kmsan_get_shadow_origin_ptr+0x49/0xa0 [ 879.662932][ T3519] __msan_warning+0x92/0x110 [ 879.667683][ T3519] generic_bin_search+0x780/0xb80 [ 879.672902][ T3519] ? kmsan_get_shadow_origin_ptr+0x49/0xa0 [ 879.679002][ T3519] btrfs_search_slot+0x3794/0x4630 [ 879.684334][ T3519] btrfs_run_dev_stats+0x3d3/0x1510 [ 879.689709][ T3519] ? _raw_spin_unlock+0x25/0x40 [ 879.694776][ T3519] ? release_extent_buffer+0xc7/0x2c0 [ 879.700357][ T3519] commit_cowonly_roots+0x2ac/0x1110 [ 879.705957][ T3519] btrfs_commit_transaction+0x2235/0x5650 [ 879.711901][ T3519] btrfs_commit_super+0x138/0x180 [ 879.717087][ T3519] close_ctree+0x3d6/0xa70 [ 879.721664][ T3519] ? kmsan_get_shadow_origin_ptr+0x49/0xa0 [ 879.727732][ T3519] btrfs_put_super+0x38/0x50 [ 879.732469][ T3519] ? btrfs_fill_super+0x550/0x550 [ 879.737637][ T3519] generic_shutdown_super+0x18c/0x570 [ 879.743169][ T3519] kill_anon_super+0x39/0x70 [ 879.747900][ T3519] btrfs_kill_super+0x39/0x60 [ 879.752723][ T3519] ? btrfs_mount_root+0x1310/0x1310 [ 879.758095][ T3519] deactivate_locked_super+0xb1/0x120 [ 879.763631][ T3519] deactivate_super+0x13a/0x150 [ 879.768650][ T3519] cleanup_mnt+0x6b5/0x730 [ 879.773246][ T3519] ? unhash_mnt+0x500/0x500 [ 879.777885][ T3519] __cleanup_mnt+0x1e/0x30 [ 879.782442][ T3519] task_work_run+0x229/0x2c0 [ 879.787215][ T3519] exit_to_user_mode_loop+0x2a9/0x320 [ 879.792737][ T3519] exit_to_user_mode_prepare+0x16e/0x220 [ 879.798534][ T3519] syscall_exit_to_user_mode+0x23/0x40 [ 879.804173][ T3519] __do_fast_syscall_32+0xb1/0x100 [ 879.809427][ T3519] do_fast_syscall_32+0x33/0x70 [ 879.814412][ T3519] do_SYSENTER_32+0x1b/0x20 [ 879.819041][ T3519] entry_SYSENTER_compat_after_hwframe+0x70/0x82 [ 879.825537][ T3519] RIP: 0023:0xf7f3b549 [ 879.829719][ T3519] Code: 03 74 c0 01 10 05 03 74 b8 01 10 06 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 [ 879.849493][ T3519] RSP: 002b:00000000ffbec60c EFLAGS: 00000296 ORIG_RAX: 0000000000000034 [ 879.858042][ T3519] RAX: 0000000000000000 RBX: 00000000ffbec6b0 RCX: 000000000000000a [ 879.866117][ T3519] RDX: 00000000f734a000 RSI: 0000000000000000 RDI: 00000000f72a153f [ 879.874218][ T3519] RBP: 00000000ffbec6b0 R08: 0000000000000000 R09: 0000000000000000 [ 879.882313][ T3519] R10: 0000000000000000 R11: 0000000000000296 R12: 0000000000000000 [ 879.890390][ T3519] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 [ 879.898507][ T3519] [ 879.901771][ T3519] Kernel Offset: disabled [ 879.906152][ T3519] Rebooting in 86400 seconds..